# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ # Contains local system settings for Portage system # Please review 'man make.conf' for more information. # Build-time functionality # ======================== # # The USE variable is used to enable optional build-time functionality. For # example, quite a few packages have optional X, gtk or GNOME functionality # that can only be enabled or disabled at compile-time. Gentoo Linux has a # very extensive set of USE variables described in our USE variable HOWTO at # http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1 # # The available list of use flags with descriptions is in your portage tree. # Use 'less' to view them: --> less /usr/portage/profiles/use.desc <-- # # 'ufed' is an ncurses/dialog interface available in portage to make handling # useflags for you. 'emerge app-portage/ufed' # # Example: #USE="X gtk gnome -alsa" # Host and optimization settings # ============================== # # For optimal performance, enable a CFLAGS setting appropriate for your CPU. # # Please note that if you experience strange issues with a package, it may be # due to gcc's optimizations interacting in a strange way. Please test the # package (and in some cases the libraries it uses) at default optimizations # before reporting errors to developers. # # Please refer to the GCC manual for a list of possible values. # #CFLAGS="-O2 -pipe" # # If you set a CFLAGS above, then this line will set your default C++ flags to # the same settings. #CXXFLAGS="${CFLAGS}" # Advanced Masking # ================ # # Gentoo is using a new masking system to allow for easier stability testing # on packages. KEYWORDS are used in ebuilds to mask and unmask packages based # on the platform they are set for. A special form has been added that # indicates packages and revisions that are expected to work, but have not yet # been approved for the stable set. '~arch' is a superset of 'arch' which # includes the unstable, in testing, packages. Users of the 'x86' architecture # would add '~x86' to ACCEPT_KEYWORDS to enable unstable/testing packages. # '~ppc', '~sparc' are the unstable KEYWORDS for their respective platforms. # # Please note that this is not for development, alpha, beta, nor cvs release # packages. "Broken" packages will not be added to testing and should not be # requested to be added. Alternative routes are available to developers # for experimental packages, and it is at their discretion to use them. # # DO NOT PUT ANYTHING BUT YOUR SPECIFIC ~ARCHITECTURE IN THE LIST. # IF YOU ARE UNSURE OF YOUR ARCH, OR THE IMPLICATIONS, DO NOT MODIFY THIS. # #ACCEPT_KEYWORDS="~arch" # Portage Directories # =================== # # Each of these settings controls an aspect of portage's storage and file # system usage. If you change any of these, be sure it is available when # you try to use portage. *** DO NOT INCLUDE A TRAILING "/" *** # # PORTAGE_TMPDIR is the location portage will use for compilations and # temporary storage of data. This can get VERY large depending upon # the application being installed. #PORTAGE_TMPDIR=/var/tmp # # PORTDIR is the location of the portage tree. This is the repository # for all profile information as well as all ebuilds. If you change # this, you must update your /etc/make.profile symlink accordingly. # ***Warning*** # Data stored inside PORTDIR is in peril of being overwritten or deleted by # the emerge --sync command. The default value of PORTAGE_RSYNC_OPTS # will protect the default locations of DISTDIR and PKGDIR, but users are # warned that any other locations inside PORTDIR are not necessarily safe # for data storage. #PORTDIR=/usr/portage # # DISTDIR is where all of the source code tarballs will be placed for # emerges. After packages are built, it is safe to remove any and # all files from this directory since they will be automatically # fetched on demand for a given build. If you would like to # selectively prune obsolete files from this directory, see # eclean from the gentoolkit package. Note that locations under # /usr/portage are not necessarily safe for data storage. See the # PORTDIR documentation for more information. #DISTDIR=/usr/portage/distfiles # # PKGDIR is the location of binary packages that you can have created # with '--buildpkg' or '-b' while emerging a package. This can get # up to several hundred megs, or even a few gigs. Note that # locations under /usr/portage are not necessarily safe for data # storage. See the PORTDIR documentation for more information. #PKGDIR=/usr/portage/packages # # PORT_LOGDIR is the location where portage will store all the logs it # creates from each individual merge. They are stored as # ${CATEGORY}:${PF}:YYYYMMDD-HHMMSS.log in the directory specified. # If the direcory does not exist, it will be created automatically and # group permissions will be applied to it. If the directory already # exists, portage will not modify it's permissions. #PORT_LOGDIR="" # # PORTDIR_OVERLAY is a directory where local ebuilds may be stored without # concern that they will be deleted by rsync updates. Default is not # defined. #PORTDIR_OVERLAY=/usr/local/portage # Fetching files # ============== # # If you need to set a proxy for wget or lukemftp, add the appropriate "export # ftp_proxy=" and "export http_proxy=" lines to /etc/profile if # all users on your system should use them. # # Portage uses wget by default. Here are some settings for some alternate # downloaders -- note that you need to merge these programs first before they # will be available. # # Default fetch command (5 tries, passive ftp for firewall compatibility) #FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp \${URI} -P \${DISTDIR}" #RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp \${URI} -P \${DISTDIR}" # # Using wget, ratelimiting downloads #FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}" #RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}" # # Lukemftp (BSD ftp): #FETCHCOMMAND="/usr/bin/lukemftp -s -a -o \${DISTDIR}/\${FILE} \${URI}" #RESUMECOMMAND="/usr/bin/lukemftp -s -a -R -o \${DISTDIR}/\${FILE} \${URI}" # # Portage uses GENTOO_MIRRORS to specify mirrors to use for source retrieval. # The list is a space separated list which is read left to right. If you use # another mirror we highly recommend leaving the default mirror at the end of # the list so that portage will fall back to it if the files cannot be found # on your specified mirror. We _HIGHLY_ recommend that you change this setting # to a nearby mirror by merging and using the 'mirrorselect' tool. #GENTOO_MIRRORS=" http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo" # # Portage uses PORTAGE_BINHOST to specify mirrors for prebuilt-binary packages. # The list is a single entry specifying the full address of the directory # serving the tbz2's for your system. Running emerge with either '--getbinpkg' # or '--getbinpkgonly' will cause portage to retrieve the metadata from all # packages in the directory specified, and use that data to determine what will # be downloaded and merged. '-g' or '-gK' are the recommend parameters. Please # consult the man pages and 'emerge --help' for more information. For FTP, the # default connection is passive -- If you require an active connection, affix # an asterisk (*) to the end of the host:port string before the path. #PORTAGE_BINHOST="http://grp.mirror.site/gentoo/grp/1.4/i686/athlon-xp/" # This ftp connection is passive ftp. #PORTAGE_BINHOST="ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp/" # This ftp connection is active ftp. #PORTAGE_BINHOST="ftp://login:pass@grp.mirror.site:21*/pub/grp/i686/athlon-xp/" # Synchronizing Portage # ===================== # # Each of these settings affects how Gentoo synchronizes your Portage tree. # Synchronization is handled by rsync and these settings allow some control # over how it is done. # # SYNC is the server used by rsync to retrieve a localized rsync mirror # rotation. This allows you to select servers that are geographically # close to you, yet still distribute the load over a number of servers. # Please do not single out specific rsync mirrors. Doing so places undue # stress on particular mirrors. Instead you may use one of the following # continent specific rotations: # # Default: "rsync://rsync.gentoo.org/gentoo-portage" # North America: "rsync://rsync.namerica.gentoo.org/gentoo-portage" # South America: "rsync://rsync.samerica.gentoo.org/gentoo-portage" # Europe: "rsync://rsync.europe.gentoo.org/gentoo-portage" # Asia: "rsync://rsync.asia.gentoo.org/gentoo-portage" # Australia: "rsync://rsync.au.gentoo.org/gentoo-portage" # # If you have multiple Gentoo boxes, it is probably a good idea to have only # one of them sync from the rotations above. The other boxes can then rsync # from the local rsync server, reducing the load on the mirrors. # Instructions for setting up a local rsync server are available here: # http://www.gentoo.org/doc/en/rsync.xml # #SYNC="rsync://rsync.gentoo.org/gentoo-portage" # # PORTAGE_RSYNC_RETRIES sets the number of times portage will attempt to retrieve # a current portage tree before it exits with an error. This allows # for a more successful retrieval without user intervention most times. #PORTAGE_RSYNC_RETRIES="3" # # PORTAGE_RSYNC_EXTRA_OPTS can be used to feed additional options to the rsync # command used by `emerge --sync`. This will not change the default options # which are set by PORTAGE_RSYNC_OPTS (don't change those unless you know # exactly what you're doing). #PORTAGE_RSYNC_EXTRA_OPTS="" # # Advanced Features # ================= # # EMERGE_DEFAULT_OPTS allows emerge to act as if certain options are # specified on every run. Useful options include --ask, --verbose, # --usepkg and many others. Options that are not useful, such as --help, # are not filtered. #EMERGE_DEFAULT_OPTS="" # # INSTALL_MASK allows certain files to not be installed into your file system. # This is useful when you wish to filter out a certain set of files from # ever being installed, such as INSTALL.gz or TODO.gz #INSTALL_MASK="" # # MAKEOPTS provides extra options that may be passed to 'make' when a # program is compiled. Presently the only use is for specifying # the number of parallel makes (-j) to perform. The suggested number # for parallel makes is CPUs+1. #MAKEOPTS="-j2" # # PORTAGE_NICENESS provides a default increment to emerge's niceness level. # Note: This is an increment. Running emerge in a niced environment will # reduce it further. Default is unset. #PORTAGE_NICENESS=3 # # AUTOCLEAN enables portage to automatically clean out older or overlapping # packages from the system after every successful merge. This is the # same as running 'emerge -c' after every merge. Set with: "yes" or "no". # This does not affect the unpacked source. See 'noclean' below. # # Warning: AUTOCLEAN="no" can cause serious problems due to overlapping # packages. Do not use it unless absolutely necessary! #AUTOCLEAN="yes" # # FEATURES are settings that affect the functionality of portage. Most of # these settings are for developer use, but some are available to non- # developers as well. # # 'buildpkg' causes binary packages to be created of all packages that # are being merged. # 'buildsyspkg' only build binary packages for system packages. # 'ccache' enable support for the dev-util/ccache package, which can # noticably decrease the time needed to remerge previously built # packages. # 'collision-protect' # prevents packages from overwriting files that are owned by # another package or by no package at all. # 'distcc' enables distcc support via CC. # 'distlocks' enables distfiles locking using fcntl or hardlinks. This # is enabled by default. Tools exist to help clean the locks # after crashes: /usr/lib/portage/bin/clean_locks. # 'installsources' # Install source code into /usr/src/debug/${CATEGORY}/${PF} # (also see 'splitdebug'). This feature works only if debugedit # is installed and CFLAGS is set to include debug information # (such as with the -ggdb flag). # 'test' causes ebuilds to perform testing phases if they are capable # of it. Some packages support this automatically via makefiles. # 'metadata-transfer' # automatically perform a metadata transfer when `emerge --sync` # is run. # 'noauto' causes ebuild to perform only the action requested and # not any other required actions like clean or unpack -- for # debugging purposes only. # 'nostrip' prevents the stripping of binaries. # 'notitles' disables xterm titlebar updates (which contain status info). # 'parallel-fetch' # do fetching in parallel to compilation # 'preserve-libs' # keep libraries around that would normally removed by an upgrade, # but are still needed by other packages # 'sandbox' enables sandboxing when running emerge and ebuild. # 'splitdebug' Prior to stripping ELF etdyn and etexec files, the debugging # info is stored for later use by various debuggers. This # feature is disabled by 'nostrip'. For installation of source # code, see 'installsources'. # 'strict' causes portage to react strongly to conditions that are # potentially dangerous, like missing/incorrect Manifest files. # 'stricter' causes portage to react strongly to conditions that may # conflict with system security provisions (for example # textrels, executable stacks). # 'userfetch' when portage is run as root, drop privileges to # portage:portage during the fetching of package sources. # 'userpriv' allows portage to drop root privileges while it is compiling, # as a security measure. As a side effect this can remove # sandbox access violations for users. # 'usersandbox' enables sandboxing while portage is running under userpriv. #FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noauto" #FEATURES="sandbox ccache distcc distlocks" # CCACHE_SIZE and CCACHE_DIR are used to control the behavior of ccache, and # and are only used if "ccache" is in FEATURES. # # CCACHE_SIZE sets the space limitations for ccache. The default size is # "2G", or 2 gigabytes. Units are specified with 'G', 'M', or 'K'. # #CCACHE_SIZE="512M" # # CCACHE_DIR sets the ccache path. If not specified, portage will default # to "${PORTAGE_TMPDIR}/ccache". # # Note that to display ccache statistics outside of portage, you must # remember to give the correct path to the cache. # # $ CCACHE_DIR=/var/tmp/ccache ccache -s # #CCACHE_DIR="${PORTAGE_TMPDIR}/ccache" # DISTCC_DIR sets the temporary space used by distcc. #DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc" # logging related variables: # PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are: # info, warn, error, log, qa, * # Warning: commenting this will disable elog PORTAGE_ELOG_CLASSES="log warn error" # PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules # included in portage are (empty means logging is disabled): # echo (display messages again when emerge exits) # save (saves one log per package in $PORT_LOGDIR/elog, # /var/log/portage/elog if $PORT_LOGDIR is unset) # custom (passes all messages to $PORTAGE_ELOG_COMMAND) # syslog (sends all messages to syslog) # mail (send all messages to the mailserver defined # in $PORTAGE_ELOG_MAILURI) # save_summary (like "save" but merges all messages # in $PORT_LOGDIR/elog/summary.log, # /var/log/portage/elog/summary.log if # $PORT_LOGDIR is unset) # mail_summary (like "mail" but sends all messages in # a single mail when emerge exits) # To use elog you should enable at least one module # The module name may be followed by a colon and a comma # separated list of loglevels to override PORTAGE_ELOG_CLASSES # for this module (e.g. # PORTAGE_ELOG_SYSTEM="mail:warn,error syslog:* save") #PORTAGE_ELOG_SYSTEM="save mail" # PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command # to process log messages. Two variables are expanded: # ${PACKAGE} - expands to the cpv entry of the processed # package (see $PVR in ebuild(5)) # ${LOGFILE} - absolute path to the logfile # Both variables have to be quoted with single quotes #PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'" # PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail # module. In most cases listing the recipient address and # the receiving mailserver should be sufficient, but you can # also use advanced settings like authentication or TLS. The # full syntax is: # address [[user:passwd@]mailserver[:port]] # where # address: recipient address # user: username for smtp auth (defaults to none) # passwd: password for smtp auth (defaults to none) # mailserver: smtp server that should be used to deliver the mail (defaults to localhost) # alternatively this can also be a the path to a sendmail binary if you don't want to use smtp # port: port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000)) # Examples: #PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting) #PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain) #PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader exercise ;) # PORTAGE_ELOG_MAILFROM: you can set the from-address of logmails with this variable, # if unset mails are sent by "portage" (this default may fail # in some environments). #PORTAGE_ELOG_MAILFROM="portage@some.domain" # PORTAGE_ELOG_MAILSUBJECT: template string to be used as subject for logmails. The following # variables are expanded: # ${PACKAGE} - see description of PORTAGE_ELOG_COMMAND # ${HOST} - FQDN of the host portage is running on #PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for \${PACKAGE} on \${HOST}"