Raise StopIteration from _poll() if needed.
[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 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.
24
25 VARIABLES
26 =========
27
28 ACCEPT_KEYWORDS
29 ---------------
30
31 :suggest: |accept_keywords|
32 :valdesc: space delimited list of KEYWORDS
33
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.
37
38 CCACHE_DIR
39 ----------
40
41 :suggest: ${PORTAGE_TMPDIR}/ccache
42 :valdesc: path
43
44 Defines the location of the ccache working directory. See the ccache(1) man 
45 page for more information.
46
47 CCACHE_SIZE
48 -----------
49
50 :valdesc: size
51
52 This controls the space use limitations for ccache.  The default is 2 gigabytes 
53 ('2G').  Sizes are specified with 'G', 'M', or 'K'.
54
55 CFLAGS
56 ------
57
58 :suggest: |cflags|
59 :valdesc: valid gcc flags, see gcc manual
60
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.
66
67 CXXFLAGS
68 --------
69
70 :suggest: ${CFLAGS}
71 :valdesc: valid gcc flags, see gcc manual
72
73 `CFLAGS`_
74
75 CHOST
76 -----
77
78 :suggest: |chost|
79
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.
82
83 CLEAN_DELAY
84 -----------
85
86 :default: 5
87 :valdesc: integer
88
89 Determines how long the countdown delay will be for unmerge operations (including 
90 autoclean).
91
92 COLLISION_IGNORE
93 ----------------
94
95 :valdesc: space delimited list of files and/or directories
96
97 This variable allows the user to disable `collision-protect`_ for specific files 
98 and/or directories.
99
100 CONFIG_PROTECT
101 --------------
102
103 :default: /etc
104 :valdesc: space delimited list of files and/or directories
105
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`).
108
109 CONFIG_PROTECT_MASK
110 -------------------
111
112 :default: /etc/env.d
113 :valdesc: space delimited list of files and/or directories
114
115 All  files  and/or  directories  that are defined here will have "config file 
116 protection" disabled for them.
117
118 DISTCC_DIR
119 ----------
120
121 :suggest: ${PORTAGE_TMPDIR}/.distcc
122 :valdesc: path
123
124 Defines the location of the distcc working directory. See the distcc(1) man 
125 page for more information.
126
127 DISTDIR
128 -------
129
130 :default: |portdir|/distfiles
131 :valdesc: path
132
133 Defines the location of your local source file repository.
134
135 EBEEP_IGNORE
136 ------------
137
138 Defines whether or not to ignore audible beeps when displaying important 
139 informational messages.  This variable is unset by default.
140
141 EMERGE_DEFAULT_OPTS
142 -------------------
143
144 :valdesc: emerge options
145
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 
148 is specified.
149
150 EPAUSE_IGNORE
151 -------------
152
153 Defines whether or not to ignore short pauses that occur when displaying 
154 important informational messages.  This variable is unset by default.
155
156 FEATURES
157 --------
158
159 :default: sandbox distlocks metadata-transfer
160 :suggest: userpriv usersandbox
161 :valdesc: space separated list of feature flags
162
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
165 following flags:
166
167 _`assume-digests`
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 
171         feature is enabled).
172
173 _`buildpkg`
174         Binary packages will be created for all packages that are merged.
175
176 _`buildsyspkg`
177         Build binary packages for just packages in the system set.
178
179 _`ccache`
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.
183
184 _`collision-protect`
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.
187
188 _`digest`
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.
192
193 _`distcc`
194         Enable portage support for the distcc package.
195
196 _`distlocks`
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).
203
204 _`fixpackages`
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`_.
208
209 _`getbinpkg`
210         Force emerges to always try to fetch files from the `PORTAGE_BINHOST`_.
211
212 _`installsources`
213         Install source code into /usr/src/debug/${CATEGORY}/${PF} (also see
214         `splitdebug`_). This feature works only if debugedit is installed.
215
216 _`keeptemp`
217         Do not delete the temporary ebuild directory ${T} after the merge process.
218
219 _`keepwork`
220         Do not delete the build directory ${WORKDIR} after the merge process. This
221         may occupy a lot of diskspace.
222
223 _`metadata-transfer`
224         Automatically perform a metadata transfer when emerge --sync is run.
225
226 _`mirror`
227         This will cause `FETCHCOMMAND`_ to always be run even if the file already 
228         exists in `DISTDIR`_.
229
230 _`noauto`
231         When utilizing ebuild(1), only run the requested function.
232
233 _`noclean`
234         Do no delete the source and temporary files after the merge process.
235
236 _`nodoc`
237         Do not install documentation files in /usr/share/doc.
238
239 _`noinfo`
240         Do not install info pages.
241
242 _`noman`
243         Do not install manpages.
244
245 _`nostrip`
246         Prevents the stripping of binaries that are merged to the live filesystem.
247
248 _`notitles`
249         Disables xterm titlebar updates (which contains status info).
250
251 _`parallel-fetch`
252         Fetch in the background while compiling.
253
254 _`sandbox`
255         Use sys-apps/sandbox when building packages to protect the live filesystem.
256
257 _`sfperms`
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.
263
264 _`sign`
265         When commiting work to cvs with repoman(1), sign the Manifest with 
266         a GPG key. Read about the `PORTAGE_GPG_KEY`_ variable.
267
268 _`splitdebug`
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`_.
272
273 _`strict`
274         Have portage react strongly to conditions that have the potential to be 
275         dangerous (like missing or incorrect Manifests entries).
276
277 _`stricter`
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.
281
282 _`suidctl`
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.
285
286 _`test`
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).
290
291 _`userfetch`
292         When portage is run as root, drop privileges to portage:portage during the
293         fetching of package sources.
294
295 _`userpriv`
296         Allow portage to drop root privileges and compile packages as 
297         portage:portage without `sandbox`_ (unless `usersandbox`_ is also used).
298
299 _`usersandbox`
300         Enable the sandbox in the compile phase, when running without root privs 
301         (`userpriv`_).
302
303 FETCHCOMMAND
304 ------------
305
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}
308
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}.
312
313 GENTOO_MIRRORS
314 --------------
315
316 :default: http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo
317 :valdesc: space separated list of mirror locations
318
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.
322
323 INSTALL_MASK
324 ------------
325
326 :valdesc: space delimited list of file names
327
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
331 TODO.gz.
332
333 MAKEOPTS
334 --------
335
336 :suggest: -j2
337 :valdesc: make options
338
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).
343
344 NOCOLOR
345 -------
346
347 :default: false
348 :valdesc: true | false
349
350 Defines if color should be disabled (this is overridden by CLI options).
351
352 PKGDIR
353 ------
354
355 :default: |portdir|/packages
356 :valdesc: path
357
358 Defines the location where created .tbz2 binary packages will be stored.
359
360 PORT_LOGDIR
361 -----------
362
363 :suggest: /var/log/portage
364 :valdesc: path
365
366 This variable defines the directory in which per-ebuild logs are kept.
367 Logs are created only when this is set and writable.
368
369 PORTAGE_BINHOST
370 ---------------
371
372 :suggest: ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp
373 :valdesc: URI to a binary package server
374
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`_.
381
382 PORTAGE_ELOG_CLASSES
383 --------------------
384
385 :default: log warn error
386 :valdesc: space separated list of logging levels
387
388 This variable defines which ebuild messages should be logged by the elog 
389 subsystem. Possible values are info, log, warn and error.
390
391 PORTAGE_ELOG_SYSTEM
392 -------------------
393
394 :suggest: save mail
395 :valdesc: space separated list of elog handlers
396
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:
400
401 save
402         saves one logfile per package in ${PORT_LOGDIR}/elog, /var/log/portage/elog 
403         if `PORT_LOGDIR`_ is unset
404
405 custom
406         passes all messages to `PORTAGE_ELOG_COMMAND`_
407
408 syslog
409         sends all messages to syslog
410
411 mail
412         sends all messages to the address configured in `PORTAGE_ELOG_MAILURI`_
413
414 PORTAGE_ELOG_COMMAND
415 --------------------
416
417 :suggest: /path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'
418
419 Only used with the "custom" logging module. Specifies a command
420 to process log messages. Two variables are expanded:
421
422 ${PACKAGE}
423         expands to the cpv entry of the processed package (see PVR in ebuild(5))
424
425 ${LOGFILE}
426         absolute path to the logfile
427
428 Both variables have to be quoted with single quotes
429
430 PORTAGE_ELOG_MAILURI
431 --------------------
432
433 :default: root
434 :suggest: user@some.domain mail.some.domain
435
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 
439 syntax is:
440 ``address [[user:passwd@]mailserver[:port]]``
441 where
442
443 address
444         recipient address
445
446 user
447         username for smtp auth (defaults to none)
448
449 passwd
450         password for smtp auth (defaults to none)
451
452 mailserver
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).
456
457 port
458         port to use on the given SMTP server (defaults to 25, values > 100000 
459         indicate that starttls should be used on (port-100000))
460
461 PORTAGE_ELOG_MAILFROM
462 ---------------------
463
464 :default: portage
465 :suggest: portage@some.domain
466 :valdesc: sender address
467
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).
470
471 PORTAGE_ELOG_MAILSUBJECT
472 ------------------------
473
474 :default: [portage] ebuild log for \${PACKAGE} on \${HOST}
475 :suggest: package \${PACKAGE} merged on \${HOST} with notice
476 :valdesc: mail subject template
477
478 Template string to be used as subject for logmails. The following variables 
479 are exanded:
480
481 ${PACKAGE}
482         see description of `PORTAGE_ELOG_COMMAND`_
483
484 ${HOST}
485         FQDN of the host portage is running on
486
487 PORTAGE_GPG_KEY
488 ---------------
489
490 :valdesc: GPG key id
491
492 This variable tells repoman which GPG key to use for signing Manifests.
493
494 PORTAGE_NICENESS
495 ----------------
496
497 :suggest: 3
498 :valdesc: integer
499
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).
504
505 PORTAGE_RSYNC_EXTRA_OPTS
506 ------------------------
507
508 :suggest: --exclude=/etc/portage/rsync_exclude
509 :valdesc: rsync options
510
511 Additional rsync options to be used by emerge --sync.
512
513 PORTAGE_RSYNC_OPTS
514 ------------------
515
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
518
519 Default rsync options to be used by emerge --sync. **Don't change this unless
520 you know exactly what you're doing!**
521
522 PORTAGE_RSYNC_RETRIES
523 ---------------------
524
525 :default: -1
526 :valdesc: integer
527
528 The number of times rsync should retry on failed connections before giving up.
529
530 PORTAGE_TMPDIR
531 --------------
532
533 :default: /var/tmp
534 :valdesc: path
535
536 Defines the location of the temporary build directories.
537
538 PORTDIR
539 -------
540
541 :default: |portdir|
542 :valdesc: path
543
544 Defines the location of your Portage tree.
545
546 PORTDIR_OVERLAY
547 ---------------
548
549 :suggest: |portdir|/local
550 :valdesc: space separated list of overlay paths
551
552 Defines the directories in which user made ebuilds are be stored.
553
554 RESUMECOMMAND
555 -------------
556
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}
559
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
562 as `FETCHCOMMAND`_.
563
564 .. _QA_STRICT:
565
566 QA_STRICT_EXECSTACK
567 -------------------
568
569 :suggest: set
570
571 Set this to instruct portage to ignore any QA_EXECSTACK override settings from
572 ebuilds. See also ebuild(5).
573
574 QA_STRICT_WX_LOAD
575 -----------------
576
577 :suggest: set
578
579 Set this to instruct portage to ignore any QA_WX_LOAD override settings from
580 ebuilds. See also ebuild(5).
581
582 QA_STRICT_TEXTRELS
583 ------------------
584
585 :suggest: set
586
587 Set this to instruct portage to ignore any QA_TEXTRELS override settings from
588 ebuilds. See also ebuild(5).
589
590 ROOT
591 ----
592
593 :default: /
594 :valdesc: path
595
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.
602
603 RPMDIR
604 ------
605
606 :default: |portdir|/rpm
607 :valdesc: path
608
609 Defines the location where created RPM packages will be stored. Note that RPM 
610 support in portage is experimental at best.
611
612 SYNC
613 ----
614
615 :default: rsync://rsync.gentoo.org/gentoo-portage
616 :valdesc: URI to a portage tree server (rsync or cvs)
617
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 
620 specified.
621
622 USE
623 ---
624
625 :suggest: X gtk gnome -alsa
626 :valdesc: space delimited list of USE items
627
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.
631
632 USE_EXPAND
633 ----------
634
635 :suggest: LINGUAS VIDEO_CARDS
636 :valdesc: space separated list of variable names
637
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".
641
642 USE_EXPAND_HIDDEN
643 -----------------
644
645 :valdesc: space separated list of variable names
646
647 Names of `USE_EXPAND`_ variables that should not be shown in the verbose merge
648 list output of the emerge(1) command.
649
650 USE_ORDER
651 ---------
652
653 :default: env:pkg:conf:defaults:pkginternal
654 :valdesc: colon separated list of portage config layers
655
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:
660
661 env
662         USE from the current USE environment variable if it exists
663
664 pkg
665         Per-package USE from /etc/portage/package.use (see portage(5))
666
667 conf
668         USE from make.conf
669
670 defaults
671         USE from make.defaults and package.use in the profile (see portage(5))
672
673 pkginternal
674         USE from ebuild IUSE defaults (flags enabled via a + prefix; see ebuild(5))
675
676 REPORTING BUGS
677 ==============
678
679 Please report bugs via http://bugs.gentoo.org/
680
681 AUTHORS
682 =======
683
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>
689
690 FILES
691 =====
692
693 /etc/make.conf
694         Contains user-supplied variables and overwrites those in make.defaults.
695
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.
699
700 |portdir|/profiles/use.desc
701         Contains a list of all global USE flags with brief descriptions.
702
703 |portdir|/profiles/use.local.desc
704         Contains a list of all local USE variables with brief descriptions.
705
706 SEE ALSO
707 ========
708
709 - emerge(1)
710 - portage(5)
711 - ebuild(1)
712 - ebuild(5)
713
714 .. Substitutions:
715 .. |accept_keywords| replace:: ~x86
716 .. |cflags| replace:: -march=i686 -O2 -pipe
717 .. |chost| replace:: i686-gentoo-linux-gnu
718 .. |portdir| replace:: /usr/portage
719