# Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

app-accessibility/brltty	-beeper -contracted-braille -doc -fm -gpm -java -learn-mode -midi -ncurses -ocaml -pcm -speech -tcl -X
app-admin/rsyslog	-ssl -zlib
app-benchmarks/i7z	-X
app-crypt/tpm-tools	pkcs11
app-i18n/zinnia		-perl
app-editors/nano	-unicode
app-editors/qemacs	-X
app-editors/vim		-X minimal
# We don't use network functionality in bash, and since we ship it in a release
# image, we'd prefer that attack surface simply not exist.
app-shells/bash		-net
dev-cpp/glog		gflags
# flashrom's libraries must be static
dev-embedded/libftdi	static-libs
dev-lang/python		-berkdb gdbm -sqlite
dev-libs/dbus-glib	tools
dev-libs/elfutils	-utils
dev-libs/expat		-unicode
dev-libs/glib		-doc
dev-libs/leveldb	-tcmalloc
dev-libs/nss		-utils
dev-libs/opencryptoki	tpmtok
dev-libs/opensc		ssl -pcsc-lite
dev-libs/openssl	pkcs11 -tls-heartbeat
# flashrom's libraries must be static
dev-libs/libusb		static-libs
dev-python/pyudev	pygobject
dev-util/dialog		-unicode minimal
dev-util/perf		-audit -doc -demangle -tui -ncurses -perl -python -slang -unwind
chromeos-base/chromeos-chrome   build_tests
>=chromeos-base/chromeos-chrome-42.0.2297.0_rc-r1		v4l2_codec
# crbug.com/611631: mDNS resolution conflicts with non-standard .local TLD usage
chromeos-base/nsswitch	-zeroconf
chromeos-base/vboot_reference minimal
media-gfx/imagemagick	png
media-gfx/zbar		-gtk -imagemagick jpeg python -qt4 threads -v4l -X -xv
media-libs/freeimage	png
media-libs/libdvdread	-css
media-libs/libpng	pnm2png
media-libs/libsndfile	minimal
# disabled in profiles/default/linux/package.use
media-libs/mesa		llvm gallium classic
media-libs/opencv	-gtk python png jpeg -tiff v4l
media-sound/sox		alsa ogg
media-video/mplayer	cpudetection fbcon -encode -ass -a52 -cdio -dirac -dts -dv -dvd -dvdnav -enca -faac -faad -live -quicktime -mp3 -rar -real -speex -schroedinger -theora -tremor -toolame -twolame -vorbis -xscreensaver -x264 -xv -xvid
net-analyzer/tcpdump	-chroot ipv6
net-dns/avahi-daemon	zeroconf
net-dns/dnsmasq		script
net-firewall/iptables	ipv6
# C++ library of gnutls uses exceptions, which breaks with -fno-exceptions flag.
# Clients don't need the C++ library anyway, so disabling it...
net-libs/gnutls	-cxx
# We want HTTPS support in web server based on libmicrohttpd.
# Also |messages| is for enabling POST processor in the library.
net-libs/libmicrohttpd	ssl messages
net-libs/libpcap	ipv6
net-libs/libsoup	-ssl
# for curl-7.19.6 turning on ipv6 use flag will turn off ares
net-misc/curl		ares
net-misc/dhcpcd		crash
net-misc/dhcp		ipv6
net-misc/iperf		threads
# arping is used by some wifi autotests.
# tracepath is exposed to the user via crosh.
net-misc/iputils	ipv6 arping tracepath
net-misc/ntp		caps
net-misc/openssh	-X
net-misc/openvpn	pkcs11
net-misc/strongswan	cisco nat-transport
net-nds/openldap	minimal
net-print/cups		zeroconf
net-print/cups-filters	zeroconf -postscript
net-proxy/tsocks	tordns
net-wireless/wpa_supplicant	dbus debug -readline smartcard ssl
sci-geosciences/gpsd	-python -ntp -X dbus garmin minimal ocean tntc usb -sockets
sys-apps/busybox	-pam -selinux
sys-apps/baselayout	-auto_seed_etc_files
sys-apps/coreutils	multicall
# flashrom's libraries must be static
sys-apps/dtc		static-libs
sys-apps/dbus		-X
sys-apps/hwids		-net
sys-apps/iproute2	ipv6
# mosys: crosbug.com/p/11630
sys-apps/mosys		static
sys-apps/flashrom	static
sys-apps/smartmontools	minimal
sys-apps/util-linux     -unicode
# pam_unix: empty password is not OK
sys-auth/pambase	-nullok
sys-block/fio		aio
sys-block/parted	device-mapper
sys-devel/clang		-multitarget
sys-devel/llvm		-multitarget
sys-fs/avfs		-extfs
sys-fs/lvm2		-lvm1 -readline -static device-mapper-only -thin
sys-fs/mtools		-X
sys-fs/ntfs3g		-crypt -external-fuse ntfsprogs suid
sys-fs/udev		-devfs-compat -rule_generator hwdb acl
sys-libs/gdbm		-berkdb
sys-libs/ncurses	-cxx -unicode minimal
sys-libs/pam		-berkdb
sys-libs/zlib		static-libs
sys-power/powertop	-unicode
sys-process/procps	-unicode
x11-apps/intel-gpu-tools	-python
x11-apps/xinit		minimal
x11-base/xorg-server	-suid
x11-libs/libdrm		libkms
x11-libs/libdrm-tests	libkms
x11-libs/cairo		-opengl
# Need png for color font support. bzip2 is not used. It's only for X11 *pcf.bz2
# that we don't have.
media-libs/freetype	png -bzip2
# The installer package statically links the libs it uses.
dev-cpp/gmock		static-libs
dev-cpp/gtest		static-libs
