# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

# Keep them sorted

3dfx - Enable support for Voodoo chipsets, also called as 3DFX and TDFX
X - Add support for X11
Xaw3d - Add support for the 3d athena widget set
a52 - Enable support for decoding ATSC A/52 streams used in DVD
aac - Enable support for MPEG-4 AAC Audio
aalib - Add support for media-libs/aalib (ASCII-Graphics Library)
accessibility - Add support for accessibility (eg 'at-spi' library)
acl - Add support for Access Control Lists
acpi - Add support for Advanced Configuration and Power Interface
adns - Add support for asynchronous DNS resolution
afs - Add OpenAFS support (distributed file system)
aim - Enable AIM IM protocol support
alsa - Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
altivec - Add support for optimizations for G4 and G5/ppc970 processors
ao - Use libao audio output library for sound playback
apache2 - Add Apache2 support
apm - Add APM (Advanced Power Management) support
aqua - Include support for the Mac OS X Aqua (Carbon/Cocoa) GUI
atm - Enable Asynchronous Transfer Mode protocol support
audiofile - Add support for libaudiofile where applicable
audit - Enable support for Linux audit subsystem using sys-process/audit
avahi - Add avahi/Zeroconf support
ayatana - Build in support for Ayatana notification using the libindicate or libappindicator plugin
bash-completion - Enable bash-completion support
bcmath - Add support for libbcmath
berkdb - Add support for sys-libs/db (Berkeley DB for MySQL)
bidi - Enable bidirectional language support
bindist - Flag to enable or disable options for prebuilt (GRP) packages (eg. due to licensing issues)
blas - Add support for the virtual/blas numerical library
bluetooth - Enable Bluetooth Support
bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during original system bootstrapping [make stage2]
boundschecking - Add the bounds checking patch by Haj Ten Brugge, this will DISABLE the hardened PIE+SSP patches
branding - Enable Gentoo specific branding
bsf - Enable support for Apache Bean Scripting Framework (dev-java/bsf)
build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1]
bzip2 - Use the bzlib compression library
cairo - Enable support for the cairo graphics library
calendar - Add support for calendars (not using mcal!)
canna - Add support for the Canna kana to kanji conversion engine
caps - Use Linux capabilities library to control privilege
cdb - Add support for the CDB database engine from the author of qmail
cdda - Add Compact Disk Digital Audio (Standard Audio CD) support
cddb - Access cddb servers to retrieve and submit information about compact disks
cdinstall - Copy files from the CD rather than asking the user to copy them, mostly used with games
cdparanoia - Enable cdparanoia (audio CD ripper) support
cdr - Add support for CD writer hardware
cgi - Add CGI script support
cjk - Add support for Multi-byte character languages (Chinese, Japanese, Korean)
clamav - Add support for Clam AntiVirus software (usually with a plugin)
connman - Add support for net-misc/connman
coreaudio - Build the CoreAudio driver on Mac OS X systems
cracklib - Support for cracklib strong password checking
crypt - Add support for encryption -- using mcrypt or gpg where applicable
cscope - Enable cscope interface -- in vim for example
css - Enable reading of encrypted DVDs
ctype - Enable ctype functions
cups - Add support for CUPS (Common Unix Printing System)
curl - Add support for client-side URL transfer library
curlwrappers - Add support for using curl in streams
custom-cflags - Build with user-specified CFLAGS (unsupported)
cvs - Enable CVS (Concurrent Versions System) integration
cxx - Build support for C++ (bindings, extra libraries, code generation, ...)
dbi - Enable dev-db/libdbi (database-independent abstraction layer) support
dbm - Add support for generic DBM databases
dbus - Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
debug - Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
dedicated - Add support for dedicated game servers (some packages do not provide clients and servers at the same time)
dga - Add DGA (Direct Graphic Access) support for X
directfb - Add support for DirectFB layer (library for FB devices)
djvu - Support DjVu, a PDF-like document format esp. suited for scanned documents
doc - Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
dri - Enable direct rendering: used for accelerated 3D and some 2D, like DMA
dts - Enable DTS Coherent Acoustics decoder support
dv - Enable support for a codec used by many camcorders
dvb - Add support for DVB (Digital Video Broadcasting)
dvd - Add support for DVDs
dvdr - Add support for DVD writer hardware (e.g. in xcdroast)
eds - Enable support for Evolution-Data-Server (EDS)
emacs - Add support for GNU Emacs
emboss - Add support for the European Molecular Biology Open Software Suite
encode - Add support for encoding of audio or video files
enscript - Add enscript support to colourize code stored in the repository
evo - Add support for mail-client/evolution
examples - Install examples, usually source code
exif - Add support for reading EXIF headers from JPEG and TIFF images
expat - Enable the use of dev-libs/expat for XML parsing
fam - Enable FAM (File Alteration Monitor) support
fastcgi - Add support for the FastCGI interface
fbcon - Add framebuffer support for the console, via the kernel
ffmpeg - Enable ffmpeg/libav-based audio/video codec support
fftw - Use FFTW library for computing Fourier transforms
filecaps - Use Linux file capabilities to control privilege rather than set*id (this is orthogonal to USE=caps which uses capabilities at runtime e.g. libcap)
firebird - Add support for the Firebird relational database
flac - Add support for FLAC: Free Lossless Audio Codec
flatfile - Add dbm support for flat files
fltk - Add support for the Fast Light Toolkit gui interface
fontconfig - Support for configuring and customizing font access via media-libs/fontconfig
foomaticdb - Add support for the foomatic printing driver database
fortran - Add support for fortran
freetds - Add support for the TDS protocol to connect to MSSQL/Sybase databases
freewnn - Add support for FreeWnn kana to kanji conversion engine
frontbase - Add support for the frontbase sql server
ftp - Add FTP (File Transfer Protocol) support
gcj - Enable building with gcj (The GNU Compiler for the Javatm Programming Language)
gd - Add support for media-libs/gd (to generate graphics on the fly)
gdbm - Add support for sys-libs/gdbm (GNU database libraries)
geoip - Add geoip support for country and city lookup based on IPs
ggi - Add support for media-libs/libggi (non-X video api/drivers)
gif - Add GIF image support
gimp - Build a plugin for the GIMP
git - Enable git (version control system) support
glut - Build an OpenGL plugin using the GLUT library
gmp - Add support for dev-libs/gmp (GNU MP library)
gnome - Add GNOME support
gnome-keyring - Enable support for storing passwords via gnome-keyring
gnuplot - Enable support for gnuplot (data and function plotting)
gnutls - Add support for net-libs/gnutls (TLS 1.0 and SSL 3.0 support)
gphoto2 - Add digital camera support
gpm - Add support for sys-libs/gpm (Console-based mouse driver)
gps - Add support for Global Positioning System
graphviz - Add support for the Graphviz library
gsl - Use the GNU scientific library for calculations
gsm - Add support for the gsm lossy speech compression codec
gstreamer - Add support for media-libs/gstreamer (Streaming media)
gtk - Add support for x11-libs/gtk+ (The GIMP Toolkit)
guile - Add support for the guile Scheme interpreter
gzip - Compress files with Lempel-Ziv coding (LZ77)
handbook - Enable handbooks generation for KDE4.
hardened - Activate default security enhancements for toolchain (gcc, glibc, binutils)
hddtemp - Enable monitoring of hdd temperature (app-admin/hddtemp)
hdf5 - Add support for the Hierarchical Data Format v5
hscolour - Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
ibm - Add support for IBM ppc64 specific systems
iconv - Enable support for the iconv character set conversion library
icq - Enable ICQ IM protocol support
icu - Enable ICU (Internationalization Components for Unicode) support, using dev-libs/icu
idn - Enable support for Internationalized Domain Names
ieee1394 - Enable FireWire/iLink IEEE1394 support (dv, camera, ...)
imagemagick - Enable support for Imagemagick (image converter)
imap - Add support for IMAP (Internet Mail Application Protocol)
imlib - Add support for imlib, an image loading and rendering library
infiniband - Enable Infiniband RDMA transport support
inifile - Add dbm support for .ini files
inotify - Enable inotify filesystem monitoring support
introspection - Add support for GObject based introspection
iodbc - Add support for iODBC library
ios - Enable support for Apple's iDevice with iOS operating system (iPad, iPhone, iPod, etc)
ipod - Enable support for iPod device access
ipv6 - Add support for IP version 6
iwmmxt - Add support for optimizations for ARM iwMMXt instructions
jack - Add support for the JACK Audio Connection Kit
java - Add support for Java
javascript - Enable javascript support
jbig - Enable jbig-kit support for tiff, Hylafax, ImageMagick, etc
jingle - Enable voice calls for jabber
jit - Enable just-in-time compilation for improved performance. May prevent use of some PaX memory protection features in Gentoo Hardened.
joystick - Add support for joysticks in all packages
jpeg - Add JPEG image support
jpeg2k - Support for JPEG 2000, a wavelet-based image compression format
kde - Add support for KDE (K Desktop Environment)
kerberos - Add kerberos support
kolab - Add support for the Kolab groupware server
kontact - Enable support for the KDE personal information manager (kde-base/kdepim*)
ladspa - Enable the ability to support ladspa plugins
lame - Prefer using LAME libraries for MP3 encoding support
lapack - Add support for the virtual/lapack numerical library
lash - Add LASH Audio Session Handler support
latex - Add support for LaTeX (typesetting package)
lcms - Add lcms support (color management engine)
ldap - Add LDAP support (Lightweight Directory Access Protocol)
libass - SRT/SSA/ASS (SubRip / SubStation Alpha) subtitle support
libav - Prefer libav over ffmpeg whenever both are supported
libcaca - Add support for colored ASCII-art graphics
libedit - Use the libedit library (replacement for readline)
libffi - Enable support for Foreign Function Interface library
libnotify - Enable desktop notification support
libressl - Use dev-libs/libressl as SSL provider (might need ssl USE flag), packages should not depend on this USE flag
libsamplerate - Build with support for converting sample rates using libsamplerate
libwww - Add libwww support (General purpose WEB API)
lirc - Add support for lirc (Linux's Infra-Red Remote Control)
livecd - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used during livecd building
lm_sensors - Add linux lm_sensors (hardware sensors) support
lua - Enable Lua scripting support
lzma - Support for LZMA (de)compression algorithm
lzo - Enable support for lzo compression
m17n-lib - Enable m17n-lib support
mad - Add support for mad (high-quality mp3 decoder library and cli frontend)
maildir - Add support for maildir (~/.maildir) style mail spools
matroska - Add support for the matroska container format (extensions .mkv, .mka and .mks)
matrox - Add Matrox MGA support to mplayer
mbox - Add support for mbox (/var/spool/mail) style mail spools
memlimit - Add memory usage limiting in supporting programs
mhash - Add support for the mhash library
migemo - Enable migemo support for Japanese
mikmod - Add libmikmod support to allow playing of SoundTracker-style music files
milter - Add sendmail mail filter (milter) support
mime - Add MIME support
minimal - Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)
mmap - Add mmap (memory map) support
mms - Support for Microsoft Media Server (MMS) streams
mng - Add support for libmng (MNG images)
modplug - Add libmodplug support for playing SoundTracker-style music files
modules - Build the kernel modules
mono - Build Mono bindings to support dotnet type stuff
motif - Add support for the Motif toolkit
mozilla - Add support for the Mozilla web-browser
mp3 - Add support for reading mp3 files
mp4 - Support for MP4 container format
mpeg - Add libmpeg3 support to various packages
mpi - Add MPI (Message Passing Interface) layer to the apps that support it
mplayer - Enable mplayer support for playback or encoding
msn - Enable MSN Messenger IM protocol support
mssql - Add support for Microsoft SQL Server database
mtp - Enable support for Media Transfer Protocol
mule - Add multi-language support to XEmacs
multilib - On 64bit systems, if you want to be able to compile 32bit and 64bit binaries
musepack - Enable support for the musepack audio codec
musicbrainz - Lookup audio metadata using MusicBrainz community service (musicbrainz.org)
mysql - Add mySQL Database support
mysqli - Add support for the improved mySQL libraries
nas - Add support for network audio sound
ncurses - Add ncurses support (console display library)
neXt - Enable neXt toolkit
neon - Enable optimization support for ARM NEON processors
netboot - Enable network booting
netcdf - Enable NetCDF data format support
networkmanager - Enable net-misc/networkmanager support
nis - Support for NIS/YP services
nls - Add Native Language Support (using gettext - GNU locale utilities)
nntp - Add support for newsgroups (Network News Transfer Protocol)
nocd - Install all files required to run the application without a CD mounted
nptl - Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)
nsplugin - Build plugin for browsers supporting the Netscape plugin architecture (that is almost any modern browser)
ocaml - Add support/bindings for the Ocaml language
ocamlopt - Enable ocamlopt support (ocaml native code compiler) -- Produces faster programs (Warning: you have to disable/enable it at a global scale)
oci8 - Add Oracle 8 Database Support
oci8-instant-client - Use dev-db/oracle-instantclient-basic as Oracle provider instead of requiring a full Oracle server install
odbc - Add ODBC Support (Open DataBase Connectivity)
offensive - Enable potentially offensive items in packages
ofx - Enable support for importing (and exporting) OFX (Open Financial eXchange) data files
ogg - Add support for the Ogg container format (commonly used by Vorbis, Theora and flac)
openal - Add support for the Open Audio Library
openexr - Support for the OpenEXR graphics file format
opengl - Add support for OpenGL (3D graphics)
openmp - Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp"
oracle - Enable Oracle Database support
orc - Use dev-lang/orc for just-in-time optimization of array operations
osc - Enable support for Open Sound Control
oscar - Enable Oscar (AIM/ICQ) IM protocol support
oss - Add support for OSS (Open Sound System)
pam - Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
pch - Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only)
pcmcia - Add support for PCMCIA slots/devices found on laptop computers
pcntl - Add support for process creation functions
pcre - Add support for Perl Compatible Regular Expressions
pda - Add support for portable devices
pdf - Add general support for PDF (Portable Document Format), this replaces the pdflib and cpdflib flags
perl - Add optional support/bindings for the Perl language
php - Include support for the PHP language
pie - Build programs as Position Independent Executables (a security hardening technique)
plasma - Build optional KDE plasma addons
plotutils - Add support for plotutils (library for 2-D vector graphics)
png - Add support for libpng (PNG images)
policykit - Enable PolicyKit authentication support
portaudio - Add support for the crossplatform portaudio audio API
posix - Add support for POSIX-compatible functions
postgres - Add support for the postgresql database
postscript - Enable support for the PostScript language (often with ghostscript-gpl or libspectre)
ppds - Add support for automatically generated ppd (printing driver) files
prefix - Defines if a Gentoo Prefix offset installation is used
prelude - Add support/bindings for the Prelude Intrusion Detection System
profile - Add support for software performance analysis (will likely vary from ebuild to ebuild)
pulseaudio - Add support for PulseAudio sound server
python - Add optional support/bindings for the Python language
qdbm - Add support for the qdbm (Quick Database Manager) library
qmail-spp - Add support for qmail SMTP plugins
qt4 - Add support for the Qt GUI/Application Toolkit version 4.x
qt5 - Add support for the Qt 5 application and UI framework
quicktime - Add support for OpenQuickTime
radius - Add support for RADIUS authentication
raw - Add support for raw image formats
rdesktop - Add support for the remote desktop protocol, usually used to connect to Windows servers
readline - Enable support for libreadline, a GNU line-editing library that almost everyone wants
recode - Enable support for the GNU recode library
rss - Enable support for RSS feeds
ruby - Add support/bindings for the Ruby language
samba - Add support for SAMBA (Windows File and Printer sharing)
sasl - Add support for the Simple Authentication and Security Layer
savedconfig - Use this to restore your config from /etc/portage/savedconfig ${CATEGORY}/${PN}. Make sure your USE flags allow for appropriate dependencies
scanner - Add support for scanner hardware (e.g. build the sane frontend in kdegraphics)
sdl - Add support for Simple Direct Layer (media library)
seamonkey - Add support for the Seamonkey web-browser
seccomp - Enable seccomp (secure computing mode) to perform system call filtering at runtime to increase security of programs
selinux - !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
semantic-desktop - Cross-KDE support for semantic search and information retrieval
session - Add persistent session support
sharedmem - Add support for shared memory use
shorten - Add support for the shorten audio compressor
simplexml - Support for SimpleXML
skey - Enable S/Key (Single use password) authentication support
slang - Add support for the slang text display library (it's like ncurses, but different)
slp - Add Service Locator Protocol support
smartcard - Enable smartcard support
smp - Enable support for multiprocessors or multicore systems
sndfile - Add support for libsndfile
snmp - Add support for the Simple Network Management Protocol if available
soap - Add support for SOAP (Simple Object Access Protocol)
sockets - Add support for tcp/ip sockets
socks5 - Add support for the socks5 proxy
sound - Enable sound support
source - Zip the sources and install them
sox - Add support for Sound eXchange (SoX)
speex - Add support for the speex audio codec (used for speech)
spell - Add dictionary support
sqlite - Add support for sqlite - embedded sql database
ssl - Add support for Secure Socket Layer connections
startup-notification - Enable application startup event feedback mechanism
static - !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically
static-libs - Build static versions of dynamic libraries as well
subversion - Enable subversion (version control system) support
suid - Enable setuid root program, with potential security risks
svg - Add support for SVG (Scalable Vector Graphics)
svga - Add support for SVGAlib (graphics library)
sybase - Add support for the Sybase SQL Database Server
sybase-ct - Add support for Sybase-CT
symlink - Force kernel ebuilds to automatically update the /usr/src/linux symlink
syslog - Enable support for syslog
systemd - Enable use of systemd-specific libraries and features like socket activation or session tracking
sysvipc - Support for System V-compatible inter-process communication
szip - Use the szip compression library
taglib - Enable tagging support with taglib
tcl - Add support the Tcl language
tcmalloc - Use the dev-util/google-perftools libraries to replace the malloc() implementation with a possibly faster one
tcpd - Add support for TCP wrappers
test - Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore
theora - Add support for the Theora Video Compression Codec
threads - Add threads support for various packages. Usually pthreads
tidy - Add support for HTML Tidy
tiff - Add support for the TIFF image format
timidity - Build with Timidity++ (MIDI sequencer) support
tk - Add support for Tk GUI toolkit
tokenizer - Add support for the PHP file parser
truetype - Add support for FreeType and/or FreeType2 fonts
uclibc - Enable uclibc specific patches and build or link uclibc
udev - Enable virtual/udev integration (device discovery, power and storage device support, etc)
udisks - Enable storage management support (automounting, volume monitoring, etc)
unicode - Add support for Unicode
upnp - Enable UPnP port mapping support
upnp-av - Enable UPnP audio/video streaming support
upower - Enable power management support
usb - Add USB support to applications that have optional USB support (e.g. cups)
v4l - Enable support for video4linux (using linux-headers or userspace libv4l libraries)
vaapi - Enable Video Acceleration API for hardware decoding
vala - Enable bindings for dev-lang/vala
vanilla - Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
vcd - Video CD support
vdpau - Enable the Video Decode and Presentation API for Unix acceleration interface
vhosts - Add support for installing web-based applications into a virtual-hosting environment
videos - Install optional video files (used in some games)
vim-syntax - Pulls in related vim syntax scripts
vnc - Enable VNC (remote desktop viewer) support
vorbis - Add support for the OggVorbis audio codec
wayland - Enable dev-libs/wayland backend
wavpack - Add support for wavpack audio compression tools
wddx - Add support for Web Distributed Data eXchange
webkit - Add support for the WebKit HTML rendering/layout engine
wifi - Enable wireless network functions
wmf - Add support for the Windows Metafile vector image format
wxwidgets - Add support for wxWidgets/wxGTK GUI toolkit
x264 - Enable h264 encoding using x264
xattr - Add support for extended attributes (filesystem-stored metadata)
xcb - Support the X C-language Binding, a replacement for Xlib
xcomposite - Enable support for the Xorg composite extension
xemacs - Add support for XEmacs
xface - Add xface support used to allow a small image of xface format to be included in an email via the header 'X-Face'
xft - Build with support for XFT font renderer (x11-libs/libXft)
xine - Add support for the XINE movie libraries
xinerama - Add support for the xinerama X11 extension, which is mandatory if you work in multiple monitors setup
xinetd - Add support for the xinetd super-server
xml - Add support for XML files
xmlrpc - Support for xml-rpc library
xmp - Enable support for Extensible Metadata Platform (Adobe XMP)
xmpp - Enable support for Extensible Messaging and Presence Protocol (XMPP) formerly known as Jabber
xosd - Sends display using the X On Screen Display library
xpm - Add support for XPM graphics format
xscreensaver - Add support for XScreenSaver extension
xv - Add in optional support for the Xvideo extension (an X API for video playback)
xvid - Add support for xvid.org's open-source mpeg-4 codec
yahoo - Enable Yahoo Messenger IM protocol support
yaz - Add in optional support for the Z39.50 Protocol for Information Retrieval (YAZ)
zeroconf - Support for DNS Service Discovery (DNS-SD)
zlib - Add support for zlib (de)compression
zsh-completion - Enable zsh completion support
