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