4 Available make.conf settings for portage
14 This file contains various variables that are used by Portage.
15 Portage will check the currently-defined environment variables
16 first for any settings. If no environment settings are found,
17 Portage then checks /etc/make.conf. If no setting is found
18 in /etc/make.conf, Portage checks the profile's default setting
19 from /etc/make.profile/make.defaults. If no setting is found there,
20 it finally checks make.globals.
21 Please note that all user
22 settings should be made in the environment or in /etc/make.conf,
23 which is intended to be customized by the user.
31 :suggest: |accept_keywords|
32 :valdesc: space delimited list of KEYWORDS
34 Enable testing of ebuilds that have not yet been deemed 'stable'. Users
35 of the 'x86' architecture would set this to '~x86' while ppc users would
36 set this to '~ppc'. This is an incremental variable.
41 :suggest: ${PORTAGE_TMPDIR}/ccache
44 Defines the location of the ccache working directory. See the ccache(1) man
45 page for more information.
52 This controls the space use limitations for ccache. The default is 2 gigabytes
53 ('2G'). Sizes are specified with 'G', 'M', or 'K'.
59 :valdesc: valid gcc flags, see gcc manual
61 Use these variables to set the desired optimization/CPU instruction settings
62 for applications that you compile. Nearly all ebuild files will take advantage
63 of your custom settings, resulting in a Gentoo Linux that is fully customized
64 to your specifications. Please use sane settings as some packages will fail to
65 compile/run if the optimizations are too extreme.
71 :valdesc: valid gcc flags, see gcc manual
80 This variable is passed by the ebuild scripts to the configure step as
81 --host=${CHOST}. This way you can force the build-host.
89 Determines how long the countdown delay will be for unmerge operations (including
95 :valdesc: space delimited list of files and/or directories
97 This variable allows the user to disable `collision-protect`_ for specific files
104 :valdesc: space delimited list of files and/or directories
106 All files and/or directories that are defined here will have "config file
107 protection" enabled for them (unless overridden by _`CONFIG_PROTECT_MASK`).
113 :valdesc: space delimited list of files and/or directories
115 All files and/or directories that are defined here will have "config file
116 protection" disabled for them.
121 :suggest: ${PORTAGE_TMPDIR}/.distcc
124 Defines the location of the distcc working directory. See the distcc(1) man
125 page for more information.
130 :default: |portdir|/distfiles
133 Defines the location of your local source file repository.
138 Defines whether or not to ignore audible beeps when displaying important
139 informational messages. This variable is unset by default.
144 :valdesc: emerge options
146 Options to append to the end of the emerge(1) command line on every invocation.
147 These options will not be appended to the command line if --ignore-default-opts
153 Defines whether or not to ignore short pauses that occur when displaying
154 important informational messages. This variable is unset by default.
159 :default: sandbox distlocks metadata-transfer
160 :suggest: userpriv usersandbox
161 :valdesc: space separated list of feature flags
163 Various settings affecting portage behavior. Don't disable the defaults without
164 a good reason. This is an incremental variable. It can take a combination of the
168 When commiting work to cvs with repoman(1), assume that all existing SRC_URI
169 digests are correct. This feature also affects digest generation via
170 ebuild(1) and emerge(1) (emerge generates digests only when the digest
174 Binary packages will be created for all packages that are merged.
177 Build binary packages for just packages in the system set.
180 Enable portage support for the ccache package. If ${CCACHE_DIR} is not set
181 in the users environment, then portage will default to ${PORTAGE_TMPDIR}/ccache
182 (with userpriv) and to /root/.ccache otherwise.
185 A QA-feature to ensure that a package doesn't overwrite files it doesn't own.
186 The `COLLISION_IGNORE`_ variable can be used to selectively disable this feature.
189 Autogenerate digests for packages when running the emerge(1) command. If
190 the `assume-digests`_ feature is also enabled then existing SRC_URI digests
191 will be reused whenever they are available.
194 Enable portage support for the distcc package.
197 Portage uses lockfiles to ensure competing instances don't clobber
198 each other's files. This feature is enabled by default but may cause
199 heartache on less intelligent remote filesystems like NFSv2 and some
200 strangely configured Samba server (oplocks off, NFS re\-export). A tool
201 /usr/lib/portage/bin/clean_locks exists to help handle lock issues
202 when a problem arises (normally due to a crash or disconnect).
205 Updates dependencies in binary packages to match the current tree, for
206 example after package moves. This can take a ot of time if you have many
207 binary packages in `PKGDIR`_.
210 Force emerges to always try to fetch files from the `PORTAGE_BINHOST`_.
213 Install source code into /usr/src/debug/${CATEGORY}/${PF} (also see
214 `splitdebug`_). This feature works only if debugedit is installed.
217 Do not delete the temporary ebuild directory ${T} after the merge process.
220 Do not delete the build directory ${WORKDIR} after the merge process. This
221 may occupy a lot of diskspace.
224 Automatically perform a metadata transfer when emerge --sync is run.
227 This will cause `FETCHCOMMAND`_ to always be run even if the file already
228 exists in `DISTDIR`_.
231 When utilizing ebuild(1), only run the requested function.
234 Do no delete the source and temporary files after the merge process.
237 Do not install documentation files in /usr/share/doc.
240 Do not install info pages.
243 Do not install manpages.
246 Prevents the stripping of binaries that are merged to the live filesystem.
249 Disables xterm titlebar updates (which contains status info).
252 Fetch in the background while compiling.
255 Use sys-apps/sandbox when building packages to protect the live filesystem.
258 Stands for Smart Filesystem Permissions. Before merging packages to the
259 live filesystem, automatically search for and set permissions on setuid
260 and setgid files. Files that are setuid have the group and other read
261 bits removed while files that are setgid have the other read bit removed.
262 See also `suidctl`_ below.
265 When commiting work to cvs with repoman(1), sign the Manifest with
266 a GPG key. Read about the `PORTAGE_GPG_KEY`_ variable.
269 Prior to stripping ELF etdyn and etexec files, the debugging info is
270 stored for later use by debuggers. This feature is disabled by
271 `nostrip`_. For installation of source code, see `installsources`_.
274 Have portage react strongly to conditions that have the potential to be
275 dangerous (like missing or incorrect Manifests entries).
278 Have portage react strongly to conditions that may conflict with system
279 security provisions (for example textrels, executable stack). Read about
280 the `QA_STRICT`_ variables below.
283 Before merging packages to the live filesystem, automatically strip setuid
284 bits from any file that is not listed in /etc/portage/suidctl.conf.
287 Run package-specific tests during each merge to help make sure
288 the package compiled properly. See *test* in ebuild(1)
289 and *src_test()* in ebuild(5).
292 When portage is run as root, drop privileges to portage:portage during the
293 fetching of package sources.
296 Allow portage to drop root privileges and compile packages as
297 portage:portage without `sandbox`_ (unless `usersandbox`_ is also used).
300 Enable the sandbox in the compile phase, when running without root privs
306 :default: /usr/bin/wget -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
307 :suggest: /usr/bin/wget -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}
309 This variable contains the command used for fetching package sources from
310 the internet. It must contain the full path to the executable as well as the
311 place-holders \${DISTDIR} and \${URI}.
316 :default: http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo
317 :valdesc: space separated list of mirror locations
319 Insert your space-seperated list of local mirrors here. These locations are
320 used to download files before the ones listed in the ebuild scripts. Merging
321 'app-portage/mirrorselect' can help to select an appropriate mirror.
326 :valdesc: space delimited list of file names
328 Use this variable if you want to selectively prevent certain files from being
329 copied into your file system tree. This does not work on symlinks, but only on
330 actual files. Useful if you wish to filter out files like HACKING.gz and
337 :valdesc: make options
339 Use this variable if you want to use parallel make. For example, if you
340 have a dual-processor system, set this variable to "-j2" or "-j3" for
341 enhanced build performance with many packages. Suggested settings are
342 between CPUs+1 and 2*CPUs+1. For more information, see make(1).
348 :valdesc: true | false
350 Defines if color should be disabled (this is overridden by CLI options).
355 :default: |portdir|/packages
358 Defines the location where created .tbz2 binary packages will be stored.
363 :suggest: /var/log/portage
366 This variable defines the directory in which per-ebuild logs are kept.
367 Logs are created only when this is set and writable.
372 :suggest: ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp
373 :valdesc: URI to a binary package server
375 This is the host from which portage will grab prebuilt-binary packages.
376 The list is a single entry specifying the full address of the directory
377 serving the tbz2's for your system. This is only used when running with
378 the get binary pkg options are given to emerge. Review emerge(1)
379 for more information. Note that it should point to the 'All' directory on
380 the host that creates the binary packages and not to the root of the `PKGDIR`_.
385 :default: log warn error
386 :valdesc: space separated list of logging levels
388 This variable defines which ebuild messages should be logged by the elog
389 subsystem. Possible values are info, log, warn and error.
395 :valdesc: space separated list of elog handlers
397 Selects which elog message handlers are invoked by portage to deliver messages
398 captured by elog. If no handler is specified logging is effectively disabled.
399 Default handlers (other packages may contain additional handlers) are:
402 saves one logfile per package in ${PORT_LOGDIR}/elog, /var/log/portage/elog
403 if `PORT_LOGDIR`_ is unset
406 passes all messages to `PORTAGE_ELOG_COMMAND`_
409 sends all messages to syslog
412 sends all messages to the address configured in `PORTAGE_ELOG_MAILURI`_
417 :suggest: /path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'
419 Only used with the "custom" logging module. Specifies a command
420 to process log messages. Two variables are expanded:
423 expands to the cpv entry of the processed package (see PVR in ebuild(5))
426 absolute path to the logfile
428 Both variables have to be quoted with single quotes
434 :suggest: user@some.domain mail.some.domain
436 This variable holds all important settings for the mail module. In most cases
437 listing the recipient address andthe receiving mailserver should be sufficient,
438 but you can also use advanced settings like authentication or TLS. The full
440 ``address [[user:passwd@]mailserver[:port]]``
447 username for smtp auth (defaults to none)
450 password for smtp auth (defaults to none)
453 SMTP server that should be used to deliver the mail (defaults to localhost).
454 Alternatively this can also be a the path to a sendmail binary if you don't
455 want to use SMTP (e.g. if you only need local delivery to a mbox).
458 port to use on the given SMTP server (defaults to 25, values > 100000
459 indicate that starttls should be used on (port-100000))
461 PORTAGE_ELOG_MAILFROM
462 ---------------------
465 :suggest: portage@some.domain
466 :valdesc: sender address
468 You can set the from-address of logmails with this variable, if unset mails
469 are sent by "portage" (this default may fail in some environments).
471 PORTAGE_ELOG_MAILSUBJECT
472 ------------------------
474 :default: [portage] ebuild log for \${PACKAGE} on \${HOST}
475 :suggest: package \${PACKAGE} merged on \${HOST} with notice
476 :valdesc: mail subject template
478 Template string to be used as subject for logmails. The following variables
482 see description of `PORTAGE_ELOG_COMMAND`_
485 FQDN of the host portage is running on
492 This variable tells repoman which GPG key to use for signing Manifests.
500 The value of this variable will be added to the current nice level that
501 emerge is running at. In other words, this will not set the nice level,
502 it will increment it. For more information about nice levels and what
503 are acceptable ranges, see nice(1).
505 PORTAGE_RSYNC_EXTRA_OPTS
506 ------------------------
508 :suggest: --exclude=/etc/portage/rsync_exclude
509 :valdesc: rsync options
511 Additional rsync options to be used by emerge --sync.
516 :default: --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages
517 :valdesc: rsync options
519 Default rsync options to be used by emerge --sync. **Don't change this unless
520 you know exactly what you're doing!**
522 PORTAGE_RSYNC_RETRIES
523 ---------------------
528 The number of times rsync should retry on failed connections before giving up.
536 Defines the location of the temporary build directories.
544 Defines the location of your Portage tree.
549 :suggest: |portdir|/local
550 :valdesc: space separated list of overlay paths
552 Defines the directories in which user made ebuilds are be stored.
557 :default: /usr/bin/wget -c -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
558 :suggest: /usr/bin/wget -c -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}
560 This variable contains the command used for resuming package sources that
561 have been partially downloaded. It should be defined using the same format
571 Set this to instruct portage to ignore any QA_EXECSTACK override settings from
572 ebuilds. See also ebuild(5).
579 Set this to instruct portage to ignore any QA_WX_LOAD override settings from
580 ebuilds. See also ebuild(5).
587 Set this to instruct portage to ignore any QA_TEXTRELS override settings from
588 ebuilds. See also ebuild(5).
596 Use this variable to specify the target root filesystem to be used for merging
597 packages or ebuilds. All RDEPEND and PDEPEND will be installed
598 into ROOT while all DEPEND will be still be installed into /.
599 Typically, you should set this setting in the environment rather than in
600 /etc/make.conf itself. It's commonly used for creating new build
601 images. Make sure you use an absolute path.
606 :default: |portdir|/rpm
609 Defines the location where created RPM packages will be stored. Note that RPM
610 support in portage is experimental at best.
615 :default: rsync://rsync.gentoo.org/gentoo-portage
616 :valdesc: URI to a portage tree server (rsync or cvs)
618 Insert your preferred rsync mirror here. This rsync server is used to sync
619 the local portage tree when emerge --sync is run. Only one server can be
625 :suggest: X gtk gnome -alsa
626 :valdesc: space delimited list of USE items
628 This variable contains options that control the build behavior of several
629 packages. More information in ebuild(5). Possible USE values
630 can be found in |portdir|/profiles/use.desc and |portdir|/profiles/use.local.desc.
635 :suggest: LINGUAS VIDEO_CARDS
636 :valdesc: space separated list of variable names
638 Any variable listed here will be used to augment `USE`_ by inserting a new flag
639 for every value in that variable, so USE_EXPAND="FOO" and FOO="bar bla" results
640 in USE="foo_bar foo_bla".
645 :valdesc: space separated list of variable names
647 Names of `USE_EXPAND`_ variables that should not be shown in the verbose merge
648 list output of the emerge(1) command.
653 :default: env:pkg:conf:defaults:pkginternal
654 :valdesc: colon separated list of portage config layers
656 Determines the precedence of layers in the incremental stacking of the USE
657 variable. Precedence decreases from left to right such that env overrides
658 pkg, pkg overrides conf, and so forth. *Don't change this unless you know what
659 you're doing!* Available layers are:
662 USE from the current USE environment variable if it exists
665 Per-package USE from /etc/portage/package.use (see portage(5))
671 USE from make.defaults and package.use in the profile (see portage(5))
674 USE from ebuild IUSE defaults (flags enabled via a + prefix; see ebuild(5))
679 Please report bugs via http://bugs.gentoo.org/
684 - Daniel Robbins <drobbins@gentoo.org>
685 - Nicholas Jones <carpaski@gentoo.org>
686 - Mike Frysinger <vapier@gentoo.org>
687 - Saleem Abdulrasool <compnerd@gentoo.org>
688 - Marius Mauch <genone@gentoo.org>
694 Contains user-supplied variables and overwrites those in make.defaults.
696 /usr/share/portage/config/make.globals
697 Contains portage defaults for many variables listed here. Don't change this,
698 edit /etc/make.conf instead.
700 |portdir|/profiles/use.desc
701 Contains a list of all global USE flags with brief descriptions.
703 |portdir|/profiles/use.local.desc
704 Contains a list of all local USE variables with brief descriptions.
715 .. |accept_keywords| replace:: ~x86
716 .. |cflags| replace:: -march=i686 -O2 -pipe
717 .. |chost| replace:: i686-gentoo-linux-gnu
718 .. |portdir| replace:: /usr/portage