# Copyright 1999-2013 Gentoo Foundation.
# Distributed under the terms of the GNU General Public License, v2
# $Header: /var/cvsroot/gentoo-x86/profiles/default/bsd/use.mask,v 1.26 2013/05/19 16:28:01 aballier Exp $

# Mart Raudsepp <leio@gentoo.org>
# net-misc/networkmanager not keyworded
networkmanager

# ulm told me to do it!
m17n-lib

# Linux-dependant flags
selinux
nptl
alsa
v4l
libv4l
fbcon
directfb
gpm
lirc
multilib
lm_sensors
caps
filecaps
vidix
madwifi
3dfx
nvidia
xvmc
xfs
udev
systemd
inotify
aio

# This usually refers just to linux-dvb
dvb

# Hardened doesn't work on Gentoo/*BSD for now
hardened
pax_kernel

# This requires a kernel module that's Linux specific right now
ifp

# This requires a usb-eject command
ipod

# Mask extraneous elibc/kernel combinations
-userland_BSD
elibc_glibc
kernel_linux
userland_GNU

# mask linux touch screen access lib.
tslib

# Mask Xorg-modular drivers that are Linux-specific
input_devices_aiptek
input_devices_evdev
input_devices_tslib
input_devices_linuxwacom
input_devices_synaptics
input_devices_ur98
input_devices_vmmouse
video_cards_newport
video_cards_sisusb
video_cards_v4l
video_cards_vmware
video_cards_nvidia
video_cards_nouveau

# Linux only sane backends
sane_backends_qcam

# Diego E. Pettenò <flameeyes@gentoo.org> (19 oct 2010)
# unmasking flags that only apply to FreeBSD
-kqueue
