# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/hppa/use.mask,v 1.77 2013/11/10 22:53:56 chithanh Exp $
# DON'T TOUCH THIS FILE. Instead, file a bug and assign it to <hppa@gentoo.org>.

# Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> (10 Nov 2013)
# sys-devel/llvm is not keyworded, bug #320221
llvm

# Jeroen Roovers <jer@gentoo.org> (22 Aug 2013)
# No known OpenCL providers (bug #482096)
opencl

# Jeroen Roovers <jer@gentoo.org> (19 Jun 2013)
# media-libs/x264 works
-x264

# Samuli Suominen <ssuominen@gentoo.org> (12 Mar 2013)
# NVIDIA Cg toolkit for binary drivers
cg

# Jeroen Roovers <jer@gentoo.org> (13 Nov 2012)
# media-libs/fdk-aac is not supported on HPPA (bug #442806)
fdk

# Jeroen Roovers <jer@gentoo.org> (15 Oct 2012)
# sys-auth/consolekit does not work without CONFIG_AUDITSYSCALL,
# which is not supported on HPPA (bug #438368)
colord
consolekit
policykit
realtime

# Jeroen Roovers <jer@gentoo.org> (23 May 2012)
# sys-apps/gptfdisk creates partition tables incompatible with the HPPA
# bootloader (bug #412801).
gptfdisk

# Jeroen Roovers <jer@gentoo.org> (25 Apr 2012)
# sys-apps/systemd is not tested
systemd

# Jeroen Roovers <jer@gentoo.org> (4 Apr 2012)
# media-video/vlc is not tested
vlc

# Jeroen Roovers <jer@gentoo.org> (27 Mar 2012)
# app-i18n/ibus is not tested
ibus

# Jeroen Roovers <jer@gentoo.org> (8 Mar 2012)
# The crash reporting facility in www-client/firefox does not compile
crashreporter

# Jeroen Roovers <jer@gentoo.org> (4 Jan 2012)
# dvb is untested on HPPA
dvb

# Jeroen Roovers <jer@gentoo.org> (4 Jan 2012)
# No support for Blu-ray (bug #397531).
bluray

# Jeroen Roovers <jer@gentoo.org> (15 Sep 2011)
# Prelude has not been tested on HPPA.
prelude

# Jeroen Roovers <jer@gentoo.org> (9 Jun 2011)
# Lots of untested dependencies (bug #365451)
facedetect

# Jeroen Roovers <jer@gentoo.org> (2 May 2011)
# No support for CUDA on HPPA
cuda

# Samuli Suominen <ssuominen@gentoo.org> (25 Dec 2010)
# This will need stable gnome-base/gvfs.
thunar

# Jeroen Roovers <jer@gentoo.org> (29 Oct 2010)
# Webkit does not work on HPPA right now.
webkit

# Jeroen Roovers <jer@gentoo.org> (25 Oct 2010)
# FFI does not work: "Unknown cpu type" (bug #337956)
ffi

# Jeroen Roovers <jer@gentoo.org> (20 Jul 2010)
# Mask USE=gnome entirely (bug #324511)
glade
libnotify
gconf
gnome
gnome-keyring

# Jeroen Roovers <jer@gentoo.org> (19 Jul 2010)
# Masked because of missing gnome-base/gnome-panel
# dependency (bug #324511)
applet

# Jeroen Roovers <jer@gentoo.org> (10 Jul 2010)
# No known hardware support for video decoding
vaapi
vdpau

# Jeroen Roovers <jer@gentoo.org> (1 Jul 2010)
# Drop support for ghc and darcs
darcs

# Jeroen Roovers <jer@gentoo.org> (5 Apr 2010)
# Mask USE=kde (bug #304363).
kde

# Jeroen Roovers <jer@gentoo.org> (28 Feb 2010)
# app-accessibility/flite does not work (bug #307241)
flite

# Jeroen Roovers <jer@gentoo.org> (4 Aug 2009)
# net-misc/wicd and sys-power/pm-utils are currently not supported (bug #280312)
wicd
pm-utils

# Unmask the flag which corresponds to ARCH.
-hppa

# Jeroen Roovers <jer@gentoo.org> (7 Jun 2008)
# # dev-util/valgrind has not been ported to HPPA.
valgrind

# Jeroen Roovers <jer@gentoo.org> (4 Jan 2008)
# Masked until someone turns up with a PA-RISC laptop:
laptop

# Jeroen Roovers <jer@gentoo.org> (4 Jan 2008)
# Bug 179895: HPPA's gcc cannot build native code / lacking upstream support
ocamlopt

# 2007/05/17 Jeroen Roovers <jer@gentoo.org>
# sys-devel/gcc fails to build with USE=d (bug #178896).
d

# 2007/05/02 Jeroen Roovers <jer@gentoo.org>
# Lack of user/dev support for WiFi (bug #176517)
networkmanager

# 2007/04/27 Jeroen Roovers <jer@gentoo.org>
# To my knowledge, no PA hardware supports variable CPU frequencies
cpufreq

# 2007/04/07 Jeroen Roovers <jer@gentoo.org>
# gnustep-make needs gcc with USE=gcj
gnustep

# 2007/04/07 Jeroen Roovers <jer@gentoo.org>
# libffi has not been ported to hppa, therefore gcc fails to build with USE=gcj
gcj

# 2007/03/21 Steve Dibb <beandog@gentoo.org>
# mplayer local keywords
ivtv

# 2007/03/02 Samuli Suominen <drac@gentoo.org>
# See http://bugs.gentoo.org/show_bug.cgi?id=157881#c3
battery

# 2006/12/01 Gustavo Zacarias <gustavoz@gentoo.org>
# glitz basically unusable since we lack hardware GL see #155544
glitz

# 2006/08/18 Saleem Abdulrasool <compnerd@gentoo.org>
# dvdr hardware not available - masking with permission from GMsoft
dvdr

# 2006/05/25 Jeroen Roovers <jer@gentoo.org>
# libemf is not ported to hppa
emf

# 2006/05/25 Guy Martin <gmsoft@gentoo.org>
# libaio is not ported on hppa
aio

# 2006/05/14 Tobias Scherbaum <dertobi123@gentoo.org>
# media-video/totem
nvtv

# 2006/05/12 Tobias Scherbaum <dertobi123@gentoo.org>
# gnome-extra/nautilus et al: Masking as mono is still not supported on hppa
beagle

# 2006/04/26 Saleem Abdulrasool <compnerd@gentoo.org>
# sys-apps/dmidecode: masking with vapier's blessings
dmi

# 2006/03/07 Donnie Berkholz <dberkholz@gentoo.org>
# Modular X: mask for architectures lacking direct rendering      
dri

# 2006/02/05 Donnie Berkholz <dberkholz@gentoo.org>
# Modular X: mask for architectures on which they aren't available
video_cards_apm
video_cards_ark
video_cards_ast
video_cards_chips
video_cards_cirrus
video_cards_cyrix
video_cards_glint
video_cards_i128
video_cards_i740
video_cards_i915
video_cards_i965
video_cards_ilo
video_cards_intel
video_cards_mach64
video_cards_mga
video_cards_neomagic
video_cards_newport
video_cards_nouveau
video_cards_nsc
video_cards_nv
video_cards_r100
video_cards_r128
video_cards_r200
video_cards_r300
video_cards_r600
video_cards_radeon
video_cards_radeonsi
video_cards_rendition
video_cards_s3
video_cards_s3virge
video_cards_savage
video_cards_siliconmotion
video_cards_sis
video_cards_sisusb
video_cards_svga
video_cards_tdfx
video_cards_tga
video_cards_trident
video_cards_tseng
video_cards_v4l
video_cards_vesa
video_cards_vmware
video_cards_voodoo

# 25 Jul 2005 Guy Martin <gmsoft@gentoo.org>
# lm_sensors not supported on hppa and ieee1394 not tested
lm_sensors
iec61883
ieee1394

# 25 Jun 2005 Guy Martin <gmsoft@gentoo.org>
# mono is not yet supported on hppa
mono

# 18 Feb 2005 Guy Martin <gmsoft@gentoo.org>
# No emboss support on hppa for now
emboss

# 08 Aug 2004 Guy Martin <gmsoft@gentoo.org>
# Wifi stuff not test yet because of lack of hardware
wifi

# 26 Feb 2003 Guy Martin <gmsoft@gentoo.org>
# No lirc support on hppa
lirc

# 22 Jul 2003 Guy Martin <gmsoft@gentoo.org>
# Scanner and gphoto2 not yet tested
gphoto2
scanner

# 17 Jul 2003 Guy Martin <gmsoft@gentoo.org>
# Avi support is far from 'supported'
avi

# 13 Apr 2003 Guy Martin <gmsoft@gentoo.org>
# Selinux patches not tested on hppa and no kernel sources are emergeables with this patch.
selinux

# 20 Mar 2003 Guy Martin <gmsoft@gentoo.org>
# Many java apps need java => 1.3 and hppa has only 1.1 right now
java

# 5 Jan 2005 Ciaran McCreesh <ciaranm@gentoo.org>
# No reliable java, no netbeans. bug 66762
netbeans

# 14 Mar 2003 Guy Martin <gmsoft@gentoo.org>
# USE flags not related to hppa
acpi
apm
afs
pcmcia
pda
trusted

# see email to gentoo-dev with subject "use.mask and PHP5's crazy IUSE"
# Dated Sat, 31 Jul 2004 14:49:28 -0700, from robbat2@gentoo.org
# all of these are binary-only, and not presently available on this
# architecture.
ibm
djbfft

# Added because of xmms-plugin.eclass.  Please test out
# media-sound/beep-media-player and remove if   
bmp
freetts
3dfx
pike

# Adding h323 to mask. For more information see bug #115798
h323

# Diego Pettenò <flameeyes@gentoo.org> (6 Dec 2006)
# Unmask specific HPPA ALSA drivers
-alsa_cards_harmony

# Doug Goldstein <cardoe@gentoo.org> (27 Apr 2007)
# Dell does not ship or sell HPPA systems
dell

# Matt Turner <mattst88@gentoo.org) (10 Feb 2012)
# mask d3d since we don't have wine
d3d

# Matt Turner <mattst88@gentoo.org) (10 Feb 2012)
# mask wayland since dev-libs/wayland isn't keyworded
wayland

# DON'T TOUCH THIS FILE. Instead, file a bug and assign it to <hppa@gentoo.org>.
