Allow --verbose to trigger a merge list even without --pretend, --ask, or --tree...
[portage.git] / make.conf.txt
1 make.conf
2 *********
3
4 Available make.conf settings for portage
5
6 SYNOPSIS
7 ========
8
9 /etc/make.conf
10
11 DESCRIPTION
12 ===========
13
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 /etc/make.globals. Please note that all user
21 settings should be made in the environment or in /etc/make.conf,
22 which is intended to be customized by the user.
23
24 VARIABLES
25 =========
26
27 ACCEPT_KEYWORDS
28 ---------------
29
30 :suggest: |accept_keywords|
31 :valdesc: space delimited list of KEYWORDS
32
33 Enable testing of ebuilds that have not yet been deemed 'stable'.  Users
34 of the 'x86' architecture would set this to '~x86' while ppc users would
35 set this to '~ppc'.  This is an incremental variable.
36
37 CCACHE_DIR
38 ----------
39
40 :suggest: ${PORTAGE_TMPDIR}/ccache
41 :valdesc: path
42
43 Defines the location of the ccache working directory. See the ccache(1) man 
44 page for more information.
45
46 CCACHE_SIZE
47 -----------
48
49 :valdesc: size
50
51 This controls the space use limitations for ccache.  The default is 2 gigabytes 
52 ('2G').  Sizes are specified with 'G', 'M', or 'K'.
53
54 CFLAGS
55 ------
56
57 :suggest: |cflags|
58 :valdesc: valid gcc flags, see gcc manual
59
60 Use these variables to set the desired optimization/CPU instruction settings
61 for applications that you compile.  Nearly all ebuild files will take advantage
62 of your custom settings, resulting in a Gentoo Linux that is fully customized
63 to your specifications.  Please use sane settings as some packages will fail to
64 compile/run if the optimizations are too extreme.
65
66 CXXFLAGS
67 --------
68
69 :suggest: ${CFLAGS}
70 :valdesc: valid gcc flags, see gcc manual
71
72 `CFLAGS`_
73
74 CHOST
75 -----
76
77 :suggest: |chost|
78
79 This variable is passed by the ebuild scripts to the configure step as 
80 --host=${CHOST}.  This way you can force the build-host.
81
82 CLEAN_DELAY
83 -----------
84
85 :default: 5
86 :valdesc: integer
87
88 Determines how long the countdown delay will be for unmerge operations (including 
89 autoclean).
90
91 COLLISION_IGNORE
92 ----------------
93
94 :valdesc: space delimited list of files and/or directories
95
96 This variable allows the user to disable `collision-protect`_ for specific files 
97 and/or directories.
98
99 CONFIG_PROTECT
100 --------------
101
102 :default: /etc
103 :valdesc: space delimited list of files and/or directories
104
105 All  files  and/or  directories  that are defined here will have "config file 
106 protection" enabled for them (unless overridden by _`CONFIG_PROTECT_MASK`).
107
108 CONFIG_PROTECT_MASK
109 -------------------
110
111 :default: /etc/env.d
112 :valdesc: space delimited list of files and/or directories
113
114 All  files  and/or  directories  that are defined here will have "config file 
115 protection" disabled for them.
116
117 DISTCC_DIR
118 ----------
119
120 :suggest: ${PORTAGE_TMPDIR}/.distcc
121 :valdesc: path
122
123 Defines the location of the distcc working directory. See the distcc(1) man 
124 page for more information.
125
126 DISTDIR
127 -------
128
129 :default: |portdir|/distfiles
130 :valdesc: path
131
132 Defines the location of your local source file repository.
133
134 EBEEP_IGNORE
135 ------------
136
137 Defines whether or not to ignore audible beeps when displaying important 
138 informational messages.  This variable is unset by default.
139
140 EMERGE_DEFAULT_OPTS
141 -------------------
142
143 :valdesc: emerge options
144
145 Options  to append to the end of the emerge(1) command line on every invocation.
146 These options will not be appended to the command line if --ignore-default-opts 
147 is specified.
148
149 EPAUSE_IGNORE
150 -------------
151
152 Defines whether or not to ignore short pauses that occur when displaying 
153 important informational messages.  This variable is unset by default.
154
155 FEATURES
156 --------
157
158 :default: sandbox distlocks metadata-transfer
159 :suggest: userpriv usersandbox
160 :valdesc: space separated list of feature flags
161
162 Various settings affecting portage behavior. Don't disable the defaults without
163 a good reason. This is an incremental variable. It can take a combination of the
164 following flags:
165
166 _`assume-digests`
167         When commiting work to cvs with repoman(1), assume that all existing SRC_URI 
168         digests are correct.  This feature also affects digest generation via 
169         ebuild(1) and emerge(1) (emerge generates digests only when the digest 
170         feature is enabled).
171
172 _`buildpkg`
173         Binary packages will be created for all packages that are merged.
174
175 _`buildsyspkg`
176         Build binary packages for just packages in the system set.
177
178 _`ccache`
179         Enable portage support for the ccache package.  If ${CCACHE_DIR} is not set 
180         in the users environment, then  portage will default to ${PORTAGE_TMPDIR}/ccache 
181         (with userpriv) and to /root/.ccache otherwise.
182
183 _`confcache`
184         Enable  confcache support; global configure caching, speeds up autotool based 
185         configure calls via the econf helper function. See ebuild(5) for more information.
186
187 _`collision-protect`
188         A QA-feature to ensure that a package doesn't overwrite files it doesn't own.
189         The `COLLISION_IGNORE`_ variable can be used to selectively disable this feature.
190
191 _`digest`
192         Autogenerate digests for packages when running the emerge(1) command. If
193         the `assume-digests`_ feature is also enabled then existing SRC_URI digests
194         will be reused whenever they are available.
195
196 _`distcc`
197         Enable portage support for the distcc package.
198
199 _`distlocks`
200         Portage uses lockfiles to ensure competing instances don't clobber
201         each other's files. This feature is enabled by default but may cause
202         heartache on less intelligent remote filesystems like NFSv2 and some
203         strangely configured Samba server (oplocks off, NFS re\-export). A tool
204         /usr/lib/portage/bin/clean_locks exists to help handle lock issues
205         when a problem arises (normally due to a crash or disconnect).
206
207 _`fixpackages`
208         Updates dependencies in binary packages to match the current tree, for 
209         example after package moves. This can take a ot of time if you have many
210         binary packages in `PKGDIR`_.
211
212 _`getbinpkg`
213         Force emerges to always try to fetch files from the `PORTAGE_BINHOST`_.
214
215 _`installsources`
216         Install source code into /usr/src/debug/${CATEGORY}/${PF} (also see
217         `splitdebug`_). This feature works only if debugedit is installed.
218
219 _`keeptemp`
220         Do not delete the temporary ebuild directory ${T} after the merge process.
221
222 _`keepwork`
223         Do not delete the build directory ${WORKDIR} after the merge process. This
224         may occupy a lot of diskspace.
225
226 _`metadata-transfer`
227         Automatically perform a metadata transfer when emerge --sync is run.
228
229 _`mirror`
230         This will cause `FETCHCOMMAND`_ to always be run even if the file already 
231         exists in `DISTDIR`_.
232
233 _`noauto`
234         When utilizing ebuild(1), only run the requested function.
235
236 _`noclean`
237         Do no delete the source and temporary files after the merge process.
238
239 _`nodoc`
240         Do not install documentation files in /usr/share/doc.
241
242 _`noinfo`
243         Do not install info pages.
244
245 _`noman`
246         Do not install manpages.
247
248 _`nostrip`
249         Prevents the stripping of binaries that are merged to the live filesystem.
250
251 _`notitles`
252         Disables xterm titlebar updates (which contains status info).
253
254 _`parallel-fetch`
255         Fetch in the background while compiling.
256
257 _`sandbox`
258         Use sys-apps/sandbox when building packages to protect the live filesystem.
259
260 _`sfperms`
261         Stands for Smart Filesystem Permissions. Before merging packages to the
262         live filesystem, automatically search for and set permissions on setuid
263         and setgid files. Files that are setuid have the group and other read
264         bits removed while files that are setgid have the other read bit removed.
265         See also `suidctl`_ below.
266
267 _`sign`
268         When commiting work to cvs with repoman(1), sign the Manifest with 
269         a GPG key. Read about the `PORTAGE_GPG_KEY`_ variable.
270
271 _`splitdebug`
272         Prior to stripping ELF etdyn and etexec files, the debugging info is 
273         stored for later use by debuggers. This feature is disabled by
274         `nostrip`_. For installation of source code, see `installsources`_.
275
276 _`strict`
277         Have portage react strongly to conditions that have the potential to be 
278         dangerous (like missing or incorrect Manifests entries).
279
280 _`stricter`
281         Have portage react strongly to conditions that may conflict with system
282         security provisions (for example textrels, executable stack). Read about
283         the `QA_STRICT`_ variables below.
284
285 _`suidctl`
286         Before merging packages to the live filesystem, automatically strip setuid 
287         bits from any file that is not listed in /etc/portage/suidctl.conf.
288
289 _`test`
290         Run package-specific tests during each merge to help make sure 
291         the package compiled properly.  See *test* in ebuild(1) 
292         and *src_test()* in ebuild(5).
293
294 _`userfetch`
295         When portage is run as root, drop privileges to portage:portage during the
296         fetching of package sources.
297
298 _`userpriv`
299         Allow portage to drop root privileges and compile packages as 
300         portage:portage without `sandbox`_ (unless `usersandbox`_ is also used).
301
302 _`usersandbox`
303         Enable the sandbox in the compile phase, when running without root privs 
304         (`userpriv`_).
305
306 FETCHCOMMAND
307 ------------
308
309 :default: /usr/bin/wget -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
310 :suggest: /usr/bin/wget -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}
311
312 This variable contains the command used for fetching package sources from
313 the internet. It must contain the full path to the executable as well as the
314 place-holders \${DISTDIR} and \${URI}.
315
316 GENTOO_MIRRORS
317 --------------
318
319 :default: http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo
320 :valdesc: space separated list of mirror locations
321
322 Insert your space-seperated list of local mirrors here. These locations are 
323 used to download files before the ones listed in the ebuild scripts. Merging 
324 'app-portage/mirrorselect' can help to select an appropriate mirror.
325
326 INSTALL_MASK
327 ------------
328
329 :valdesc: space delimited list of file names
330
331 Use this variable if you want to selectively prevent certain files from being
332 copied into your file system tree.  This does not work on symlinks, but only on
333 actual files.  Useful if you wish to filter out files like HACKING.gz and
334 TODO.gz.
335
336 MAKEOPTS
337 --------
338
339 :suggest: -j2
340 :valdesc: make options
341
342 Use this variable if you want to use parallel make. For example, if you
343 have a dual-processor system, set this variable to "-j2" or "-j3" for 
344 enhanced build performance with many packages. Suggested settings are
345 between CPUs+1 and 2*CPUs+1. For more information, see make(1).
346
347 NOCOLOR
348 -------
349
350 :default: false
351 :valdesc: true | false
352
353 Defines if color should be disabled (this is overridden by CLI options).
354
355 PKGDIR
356 ------
357
358 :default: |portdir|/packages
359 :valdesc: path
360
361 Defines the location where created .tbz2 binary packages will be stored.
362
363 PORT_LOGDIR
364 -----------
365
366 :suggest: /var/log/portage
367 :valdesc: path
368
369 This variable defines the directory in which per-ebuild logs are kept.
370 Logs are created only when this is set and writable.
371
372 PORTAGE_BINHOST
373 ---------------
374
375 :suggest: ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp
376 :valdesc: URI to a binary package server
377
378 This is the host from which portage will grab prebuilt-binary packages.
379 The list is a single entry specifying the full address of the directory 
380 serving the tbz2's for your system.  This is only used when running with 
381 the get binary pkg options are given to emerge.  Review emerge(1) 
382 for more information.  Note that it should point to the 'All' directory on 
383 the host that creates the binary packages and not to the root of the `PKGDIR`_.
384
385 PORTAGE_ELOG_CLASSES
386 --------------------
387
388 :default: log warn error
389 :valdesc: space separated list of logging levels
390
391 This variable defines which ebuild messages should be logged by the elog 
392 subsystem. Possible values are info, log, warn and error.
393
394 PORTAGE_ELOG_SYSTEM
395 -------------------
396
397 :suggest: save mail
398 :valdesc: space separated list of elog handlers
399
400 Selects which elog message handlers are invoked by portage to deliver messages
401 captured by elog. If no handler is specified logging is effectively disabled.
402 Default handlers (other packages may contain additional handlers) are:
403
404 save
405         saves one logfile per package in ${PORT_LOGDIR}/elog, /var/log/portage/elog 
406         if `PORT_LOGDIR`_ is unset
407
408 custom
409         passes all messages to `PORTAGE_ELOG_COMMAND`_
410
411 syslog
412         sends all messages to syslog
413
414 mail
415         sends all messages to the address configured in `PORTAGE_ELOG_MAILURI`_
416
417 PORTAGE_ELOG_COMMAND
418 --------------------
419
420 :suggest: /path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'
421
422 Only used with the "custom" logging module. Specifies a command
423 to process log messages. Two variables are expanded:
424
425 ${PACKAGE}
426         expands to the cpv entry of the processed package (see PVR in ebuild(5))
427
428 ${LOGFILE}
429         absolute path to the logfile
430
431 Both variables have to be quoted with single quotes
432
433 PORTAGE_ELOG_MAILURI
434 --------------------
435
436 :default: root
437 :suggest: user@some.domain mail.some.domain
438
439 This variable holds all important settings for the mail module. In most cases 
440 listing the recipient address andthe receiving mailserver should be sufficient,
441 but you can also use advanced settings like authentication or TLS. The full 
442 syntax is:
443 ``address [[user:passwd@]mailserver[:port]]``
444 where
445
446 address
447         recipient address
448
449 user
450         username for smtp auth (defaults to none)
451
452 passwd
453         password for smtp auth (defaults to none)
454
455 mailserver
456         SMTP server that should be used to deliver the mail (defaults to localhost).
457         Alternatively this can also be a the path to a sendmail binary if you don't
458         want to use SMTP (e.g. if you only need local delivery to a mbox).
459
460 port
461         port to use on the given SMTP server (defaults to 25, values > 100000 
462         indicate that starttls should be used on (port-100000))
463
464 PORTAGE_ELOG_MAILFROM
465 ---------------------
466
467 :default: portage
468 :suggest: portage@some.domain
469 :valdesc: sender address
470
471 You can set the from-address of logmails with this variable, if unset mails 
472 are sent by "portage" (this default may fail in some environments).
473
474 PORTAGE_ELOG_MAILSUBJECT
475 ------------------------
476
477 :default: [portage] ebuild log for \${PACKAGE} on \${HOST}
478 :suggest: package \${PACKAGE} merged on \${HOST} with notice
479 :valdesc: mail subject template
480
481 Template string to be used as subject for logmails. The following variables 
482 are exanded:
483
484 ${PACKAGE}
485         see description of `PORTAGE_ELOG_COMMAND`_
486
487 ${HOST}
488         FQDN of the host portage is running on
489
490 PORTAGE_GPG_KEY
491 ---------------
492
493 :valdesc: GPG key id
494
495 This variable tells repoman which GPG key to use for signing Manifests.
496
497 PORTAGE_NICENESS
498 ----------------
499
500 :suggest: 3
501 :valdesc: integer
502
503 The value of this variable will be added to the current nice level that 
504 emerge is running at. In other words, this will not set the nice level, 
505 it will increment it. For more information about nice levels and what 
506 are acceptable ranges, see nice(1).
507
508 PORTAGE_RSYNC_EXTRA_OPTS
509 ------------------------
510
511 :suggest: --exclude=/etc/portage/rsync_exclude
512 :valdesc: rsync options
513
514 Additional rsync options to be used by emerge --sync.
515
516 PORTAGE_RSYNC_OPTS
517 ------------------
518
519 :default: --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages
520 :valdesc: rsync options
521
522 Default rsync options to be used by emerge --sync. **Don't change this unless
523 you know exactly what you're doing!**
524
525 PORTAGE_RSYNC_RETRIES
526 ---------------------
527
528 :default: 3
529 :valdesc: integer
530
531 The number of times rsync should retry on failed connections before giving up.
532
533 PORTAGE_TMPDIR
534 --------------
535
536 :default: /var/tmp
537 :valdesc: path
538
539 Defines the location of the temporary build directories.
540
541 PORTDIR
542 -------
543
544 :default: |portdir|
545 :valdesc: path
546
547 Defines the location of your Portage tree.
548
549 PORTDIR_OVERLAY
550 ---------------
551
552 :suggest: |portdir|/local
553 :valdesc: space separated list of overlay paths
554
555 Defines the directories in which user made ebuilds are be stored.
556
557 RESUMECOMMAND
558 -------------
559
560 :default: /usr/bin/wget -c -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
561 :suggest: /usr/bin/wget -c -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}
562
563 This variable contains the command used for resuming package sources that
564 have been partially downloaded. It should be defined using the same format
565 as `FETCHCOMMAND`_.
566
567 .. _QA_STRICT:
568
569 QA_STRICT_EXECSTACK
570 -------------------
571
572 :suggest: set
573
574 Set this to instruct portage to ignore any QA_EXECSTACK override settings from
575 ebuilds. See also ebuild(5).
576
577 QA_STRICT_WX_LOAD
578 -----------------
579
580 :suggest: set
581
582 Set this to instruct portage to ignore any QA_WX_LOAD override settings from
583 ebuilds. See also ebuild(5).
584
585 QA_STRICT_TEXTRELS
586 ------------------
587
588 :suggest: set
589
590 Set this to instruct portage to ignore any QA_TEXTRELS override settings from
591 ebuilds. See also ebuild(5).
592
593 ROOT
594 ----
595
596 :default: /
597 :valdesc: path
598
599 Use this variable to specify the target root filesystem to be used for merging 
600 packages or ebuilds. All RDEPEND and PDEPEND will be installed 
601 into ROOT while all DEPEND will be still be installed into /.  
602 Typically, you should set this setting in the environment rather than in 
603 /etc/make.conf itself. It's commonly used for creating new build 
604 images. Make sure you use an absolute path.
605
606 RPMDIR
607 ------
608
609 :default: |portdir|/rpm
610 :valdesc: path
611
612 Defines the location where created RPM packages will be stored. Note that RPM 
613 support in portage is experimental at best.
614
615 SYNC
616 ----
617
618 :default: rsync://rsync.gentoo.org/gentoo-portage
619 :valdesc: URI to a portage tree server (rsync or cvs)
620
621 Insert your preferred rsync mirror here.  This rsync server is used to sync 
622 the local portage tree when emerge --sync is run. Only one server can be 
623 specified.
624
625 USE
626 ---
627
628 :suggest: X gtk gnome -alsa
629 :valdesc: space delimited list of USE items
630
631 This variable contains options that control the build behavior of several
632 packages.  More information in ebuild(5).  Possible USE values
633 can be found in |portdir|/profiles/use.desc and |portdir|/profiles/use.local.desc.
634
635 USE_EXPAND
636 ----------
637
638 :suggest: LINGUAS VIDEO_CARDS
639 :valdesc: space separated list of variable names
640
641 Any variable listed here will be used to augment `USE`_ by inserting a new flag
642 for every value in that variable, so USE_EXPAND="FOO" and FOO="bar bla" results
643 in USE="foo_bar foo_bla".
644
645 USE_EXPAND_HIDDEN
646 -----------------
647
648 :valdesc: space separated list of variable names
649
650 Names of `USE_EXPAND`_ variables that should not be shown in the verbose merge
651 list output of the emerge(1) command.
652
653 USE_ORDER
654 ---------
655
656 :default: env:pkg:conf:defaults:pkginternal
657 :valdesc: colon separated list of portage config layers
658
659 Determines the precedence of layers in the incremental stacking of the USE
660 variable. Precedence decreases from left to right such that env overrides
661 pkg, pkg overrides conf, and so forth. *Don't change this unless you know what 
662 you're doing!* Available layers are:
663
664 env
665         USE from the current USE environment variable if it exists
666
667 pkg
668         Per-package USE from /etc/portage/package.use (see portage(5))
669
670 conf
671         USE from make.conf
672
673 defaults
674         USE from make.defaults and package.use in the profile (see portage(5))
675
676 pkginternal
677         USE from ebuild IUSE defaults (flags enabled via a + prefix; see ebuild(5))
678
679 REPORTING BUGS
680 ==============
681
682 Please report bugs via http://bugs.gentoo.org/
683
684 AUTHORS
685 =======
686
687 - Daniel Robbins <drobbins@gentoo.org>
688 - Nicholas Jones <carpaski@gentoo.org>
689 - Mike Frysinger <vapier@gentoo.org>
690 - Saleem Abdulrasool <compnerd@gentoo.org>
691 - Marius Mauch <genone@gentoo.org>
692
693 FILES
694 =====
695
696 /etc/make.conf
697         Contains user-supplied variables and overwrites those in make.defaults.
698
699 /etc/make.globals
700         Contains portage defaults for many variables listed here. Don't change this,
701         edit /etc/make.conf instead.
702
703 |portdir|/profiles/use.desc
704         Contains a list of all global USE flags with brief descriptions.
705
706 |portdir|/profiles/use.local.desc
707         Contains a list of all local USE variables with brief descriptions.
708
709 SEE ALSO
710 ========
711
712 - emerge(1)
713 - portage(5)
714 - ebuild(1)
715 - ebuild(5)
716
717 .. Substitutions:
718 .. |accept_keywords| replace:: ~x86
719 .. |cflags| replace:: -march=i686 -O2 -pipe
720 .. |chost| replace:: i686-gentoo-linux-gnu
721 .. |portdir| replace:: /usr/portage
722