summaryrefslogtreecommitdiff
blob: 4531ed859d0389b5309ecd4c52d5dd4d48bcd3bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
make.conf
*********

Available make.conf settings for portage

SYNOPSIS
========

/etc/make.conf

DESCRIPTION
===========

This file contains various variables that are used by Portage.
Portage will check the currently-defined environment variables
first for any settings.  If no environment settings are found,
Portage then checks /etc/make.conf.  If no setting is found
in /etc/make.conf, Portage checks the profile's default setting
from /etc/make.profile/make.defaults. If no setting is found there, 
it finally checks make.globals.
Please note that all user
settings should be made in the environment or in /etc/make.conf,
which is intended to be customized by the user.

VARIABLES
=========

ACCEPT_KEYWORDS
---------------

:suggest: |accept_keywords|
:valdesc: space delimited list of KEYWORDS

Enable testing of ebuilds that have not yet been deemed 'stable'.  Users
of the 'x86' architecture would set this to '~x86' while ppc users would
set this to '~ppc'.  This is an incremental variable.

CCACHE_DIR
----------

:suggest: ${PORTAGE_TMPDIR}/ccache
:valdesc: path

Defines the location of the ccache working directory. See the ccache(1) man 
page for more information.

CCACHE_SIZE
-----------

:valdesc: size

This controls the space use limitations for ccache.  The default is 2 gigabytes 
('2G').  Sizes are specified with 'G', 'M', or 'K'.

CFLAGS
------

:suggest: |cflags|
:valdesc: valid gcc flags, see gcc manual

Use these variables to set the desired optimization/CPU instruction settings
for applications that you compile.  Nearly all ebuild files will take advantage
of your custom settings, resulting in a Gentoo Linux that is fully customized
to your specifications.  Please use sane settings as some packages will fail to
compile/run if the optimizations are too extreme.

CXXFLAGS
--------

:suggest: ${CFLAGS}
:valdesc: valid gcc flags, see gcc manual

`CFLAGS`_

CHOST
-----

:suggest: |chost|

This variable is passed by the ebuild scripts to the configure step as 
--host=${CHOST}.  This way you can force the build-host.

CLEAN_DELAY
-----------

:default: 5
:valdesc: integer

Determines how long the countdown delay will be for unmerge operations (including 
autoclean).

COLLISION_IGNORE
----------------

:valdesc: space delimited list of files and/or directories

This variable allows the user to disable `collision-protect`_ for specific files 
and/or directories.

CONFIG_PROTECT
--------------

:default: /etc
:valdesc: space delimited list of files and/or directories

All  files  and/or  directories  that are defined here will have "config file 
protection" enabled for them (unless overridden by _`CONFIG_PROTECT_MASK`).

CONFIG_PROTECT_MASK
-------------------

:default: /etc/env.d
:valdesc: space delimited list of files and/or directories

All  files  and/or  directories  that are defined here will have "config file 
protection" disabled for them.

DISTCC_DIR
----------

:suggest: ${PORTAGE_TMPDIR}/.distcc
:valdesc: path

Defines the location of the distcc working directory. See the distcc(1) man 
page for more information.

DISTDIR
-------

:default: |portdir|/distfiles
:valdesc: path

Defines the location of your local source file repository.

EBEEP_IGNORE
------------

Defines whether or not to ignore audible beeps when displaying important 
informational messages.  This variable is unset by default.

EMERGE_DEFAULT_OPTS
-------------------

:valdesc: emerge options

Options  to append to the end of the emerge(1) command line on every invocation.
These options will not be appended to the command line if --ignore-default-opts 
is specified.

EPAUSE_IGNORE
-------------

Defines whether or not to ignore short pauses that occur when displaying 
important informational messages.  This variable is unset by default.

FEATURES
--------

:default: sandbox distlocks metadata-transfer
:suggest: userpriv usersandbox
:valdesc: space separated list of feature flags

Various settings affecting portage behavior. Don't disable the defaults without
a good reason. This is an incremental variable. It can take a combination of the
following flags:

_`assume-digests`
	When commiting work to cvs with repoman(1), assume that all existing SRC_URI 
	digests are correct.  This feature also affects digest generation via 
	ebuild(1) and emerge(1) (emerge generates digests only when the digest 
	feature is enabled).

_`buildpkg`
	Binary packages will be created for all packages that are merged.

_`buildsyspkg`
	Build binary packages for just packages in the system set.

_`ccache`
	Enable portage support for the ccache package.  If ${CCACHE_DIR} is not set 
	in the users environment, then  portage will default to ${PORTAGE_TMPDIR}/ccache 
	(with userpriv) and to /root/.ccache otherwise.

_`collision-protect`
	A QA-feature to ensure that a package doesn't overwrite files it doesn't own.
	The `COLLISION_IGNORE`_ variable can be used to selectively disable this feature.

_`digest`
	Autogenerate digests for packages when running the emerge(1) command. If
	the `assume-digests`_ feature is also enabled then existing SRC_URI digests
	will be reused whenever they are available.

_`distcc`
	Enable portage support for the distcc package.

_`distlocks`
	Portage uses lockfiles to ensure competing instances don't clobber
	each other's files. This feature is enabled by default but may cause
	heartache on less intelligent remote filesystems like NFSv2 and some
	strangely configured Samba server (oplocks off, NFS re\-export). A tool
	/usr/lib/portage/bin/clean_locks exists to help handle lock issues
	when a problem arises (normally due to a crash or disconnect).

_`fixpackages`
	Updates dependencies in binary packages to match the current tree, for 
	example after package moves. This can take a ot of time if you have many
	binary packages in `PKGDIR`_.

_`getbinpkg`
	Force emerges to always try to fetch files from the `PORTAGE_BINHOST`_.

_`installsources`
	Install source code into /usr/src/debug/${CATEGORY}/${PF} (also see
	`splitdebug`_). This feature works only if debugedit is installed.

_`keeptemp`
	Do not delete the temporary ebuild directory ${T} after the merge process.

_`keepwork`
	Do not delete the build directory ${WORKDIR} after the merge process. This
	may occupy a lot of diskspace.

_`metadata-transfer`
	Automatically perform a metadata transfer when emerge --sync is run.

_`mirror`
	This will cause `FETCHCOMMAND`_ to always be run even if the file already 
	exists in `DISTDIR`_.

_`noauto`
	When utilizing ebuild(1), only run the requested function.

_`noclean`
	Do no delete the source and temporary files after the merge process.

_`nodoc`
	Do not install documentation files in /usr/share/doc.

_`noinfo`
	Do not install info pages.

_`noman`
	Do not install manpages.

_`nostrip`
	Prevents the stripping of binaries that are merged to the live filesystem.

_`notitles`
	Disables xterm titlebar updates (which contains status info).

_`parallel-fetch`
	Fetch in the background while compiling.

_`sandbox`
	Use sys-apps/sandbox when building packages to protect the live filesystem.

_`sfperms`
	Stands for Smart Filesystem Permissions. Before merging packages to the
	live filesystem, automatically search for and set permissions on setuid
	and setgid files. Files that are setuid have the group and other read
	bits removed while files that are setgid have the other read bit removed.
	See also `suidctl`_ below.

_`sign`
	When commiting work to cvs with repoman(1), sign the Manifest with 
	a GPG key. Read about the `PORTAGE_GPG_KEY`_ variable.

_`splitdebug`
	Prior to stripping ELF etdyn and etexec files, the debugging info is 
	stored for later use by debuggers. This feature is disabled by
	`nostrip`_. For installation of source code, see `installsources`_.

_`strict`
	Have portage react strongly to conditions that have the potential to be 
	dangerous (like missing or incorrect Manifests entries).

_`stricter`
	Have portage react strongly to conditions that may conflict with system
	security provisions (for example textrels, executable stack). Read about
	the `QA_STRICT`_ variables below.

_`suidctl`
	Before merging packages to the live filesystem, automatically strip setuid 
	bits from any file that is not listed in /etc/portage/suidctl.conf.

_`test`
	Run package-specific tests during each merge to help make sure 
	the package compiled properly.  See *test* in ebuild(1) 
	and *src_test()* in ebuild(5).

_`userfetch`
	When portage is run as root, drop privileges to portage:portage during the
	fetching of package sources.

_`userpriv`
	Allow portage to drop root privileges and compile packages as 
	portage:portage without `sandbox`_ (unless `usersandbox`_ is also used).

_`usersandbox`
	Enable the sandbox in the compile phase, when running without root privs 
	(`userpriv`_).

FETCHCOMMAND
------------

:default: /usr/bin/wget -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
:suggest: /usr/bin/wget -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}

This variable contains the command used for fetching package sources from
the internet. It must contain the full path to the executable as well as the
place-holders \${DISTDIR} and \${URI}.

GENTOO_MIRRORS
--------------

:default: http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo
:valdesc: space separated list of mirror locations

Insert your space-seperated list of local mirrors here. These locations are 
used to download files before the ones listed in the ebuild scripts. Merging 
'app-portage/mirrorselect' can help to select an appropriate mirror.

INSTALL_MASK
------------

:valdesc: space delimited list of file names

Use this variable if you want to selectively prevent certain files from being
copied into your file system tree.  This does not work on symlinks, but only on
actual files.  Useful if you wish to filter out files like HACKING.gz and
TODO.gz.

MAKEOPTS
--------

:suggest: -j2
:valdesc: make options

Use this variable if you want to use parallel make. For example, if you
have a dual-processor system, set this variable to "-j2" or "-j3" for 
enhanced build performance with many packages. Suggested settings are
between CPUs+1 and 2*CPUs+1. For more information, see make(1).

NOCOLOR
-------

:default: false
:valdesc: true | false

Defines if color should be disabled (this is overridden by CLI options).

PKGDIR
------

:default: |portdir|/packages
:valdesc: path

Defines the location where created .tbz2 binary packages will be stored.

PORT_LOGDIR
-----------

:suggest: /var/log/portage
:valdesc: path

This variable defines the directory in which per-ebuild logs are kept.
Logs are created only when this is set and writable.

PORTAGE_BINHOST
---------------

:suggest: ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp
:valdesc: URI to a binary package server

This is the host from which portage will grab prebuilt-binary packages.
The list is a single entry specifying the full address of the directory 
serving the tbz2's for your system.  This is only used when running with 
the get binary pkg options are given to emerge.  Review emerge(1) 
for more information.  Note that it should point to the 'All' directory on 
the host that creates the binary packages and not to the root of the `PKGDIR`_.

PORTAGE_ELOG_CLASSES
--------------------

:default: log warn error
:valdesc: space separated list of logging levels

This variable defines which ebuild messages should be logged by the elog 
subsystem. Possible values are info, log, warn and error.

PORTAGE_ELOG_SYSTEM
-------------------

:suggest: save mail
:valdesc: space separated list of elog handlers

Selects which elog message handlers are invoked by portage to deliver messages
captured by elog. If no handler is specified logging is effectively disabled.
Default handlers (other packages may contain additional handlers) are:

save
	saves one logfile 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
	sends all messages to the address configured in `PORTAGE_ELOG_MAILURI`_

PORTAGE_ELOG_COMMAND
--------------------

:suggest: /path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'

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_MAILURI
--------------------

:default: root
:suggest: user@some.domain mail.some.domain

This variable holds all important settings for the mail module. In most cases 
listing the recipient address andthe 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 (e.g. if you only need local delivery to a mbox).

port
	port to use on the given SMTP server (defaults to 25, values > 100000 
	indicate that starttls should be used on (port-100000))

PORTAGE_ELOG_MAILFROM
---------------------

:default: portage
:suggest: portage@some.domain
:valdesc: sender address

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_MAILSUBJECT
------------------------

:default: [portage] ebuild log for \${PACKAGE} on \${HOST}
:suggest: package \${PACKAGE} merged on \${HOST} with notice
:valdesc: mail subject template

Template string to be used as subject for logmails. The following variables 
are exanded:

${PACKAGE}
	see description of `PORTAGE_ELOG_COMMAND`_

${HOST}
	FQDN of the host portage is running on

PORTAGE_GPG_KEY
---------------

:valdesc: GPG key id

This variable tells repoman which GPG key to use for signing Manifests.

PORTAGE_NICENESS
----------------

:suggest: 3
:valdesc: integer

The value of this variable will be added to the current nice level that 
emerge is running at. In other words, this will not set the nice level, 
it will increment it. For more information about nice levels and what 
are acceptable ranges, see nice(1).

PORTAGE_RSYNC_EXTRA_OPTS
------------------------

:suggest: --exclude=/etc/portage/rsync_exclude
:valdesc: rsync options

Additional rsync options to be used by emerge --sync.

PORTAGE_RSYNC_OPTS
------------------

:default: --recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages
:valdesc: rsync options

Default rsync options to be used by emerge --sync. **Don't change this unless
you know exactly what you're doing!**

PORTAGE_RSYNC_RETRIES
---------------------

:default: 3
:valdesc: integer

The number of times rsync should retry on failed connections before giving up.

PORTAGE_TMPDIR
--------------

:default: /var/tmp
:valdesc: path

Defines the location of the temporary build directories.

PORTDIR
-------

:default: |portdir|
:valdesc: path

Defines the location of your Portage tree.

PORTDIR_OVERLAY
---------------

:suggest: |portdir|/local
:valdesc: space separated list of overlay paths

Defines the directories in which user made ebuilds are be stored.

RESUMECOMMAND
-------------

:default: /usr/bin/wget -c -t 5 -T 60 --passive-ftp -P \${DISTDIR} \${URI}
:suggest: /usr/bin/wget -c -t 5 -T 60 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}

This variable contains the command used for resuming package sources that
have been partially downloaded. It should be defined using the same format
as `FETCHCOMMAND`_.

.. _QA_STRICT:

QA_STRICT_EXECSTACK
-------------------

:suggest: set

Set this to instruct portage to ignore any QA_EXECSTACK override settings from
ebuilds. See also ebuild(5).

QA_STRICT_WX_LOAD
-----------------

:suggest: set

Set this to instruct portage to ignore any QA_WX_LOAD override settings from
ebuilds. See also ebuild(5).

QA_STRICT_TEXTRELS
------------------

:suggest: set

Set this to instruct portage to ignore any QA_TEXTRELS override settings from
ebuilds. See also ebuild(5).

ROOT
----

:default: /
:valdesc: path

Use this variable to specify the target root filesystem to be used for merging 
packages or ebuilds. All RDEPEND and PDEPEND will be installed 
into ROOT while all DEPEND will be still be installed into /.  
Typically, you should set this setting in the environment rather than in 
/etc/make.conf itself. It's commonly used for creating new build 
images. Make sure you use an absolute path.

RPMDIR
------

:default: |portdir|/rpm
:valdesc: path

Defines the location where created RPM packages will be stored. Note that RPM 
support in portage is experimental at best.

SYNC
----

:default: rsync://rsync.gentoo.org/gentoo-portage
:valdesc: URI to a portage tree server (rsync or cvs)

Insert your preferred rsync mirror here.  This rsync server is used to sync 
the local portage tree when emerge --sync is run. Only one server can be 
specified.

USE
---

:suggest: X gtk gnome -alsa
:valdesc: space delimited list of USE items

This variable contains options that control the build behavior of several
packages.  More information in ebuild(5).  Possible USE values
can be found in |portdir|/profiles/use.desc and |portdir|/profiles/use.local.desc.

USE_EXPAND
----------

:suggest: LINGUAS VIDEO_CARDS
:valdesc: space separated list of variable names

Any variable listed here will be used to augment `USE`_ by inserting a new flag
for every value in that variable, so USE_EXPAND="FOO" and FOO="bar bla" results
in USE="foo_bar foo_bla".

USE_EXPAND_HIDDEN
-----------------

:valdesc: space separated list of variable names

Names of `USE_EXPAND`_ variables that should not be shown in the verbose merge
list output of the emerge(1) command.

USE_ORDER
---------

:default: env:pkg:conf:defaults:pkginternal
:valdesc: colon separated list of portage config layers

Determines the precedence of layers in the incremental stacking of the USE
variable. Precedence decreases from left to right such that env overrides
pkg, pkg overrides conf, and so forth. *Don't change this unless you know what 
you're doing!* Available layers are:

env
	USE from the current USE environment variable if it exists

pkg
	Per-package USE from /etc/portage/package.use (see portage(5))

conf
	USE from make.conf

defaults
	USE from make.defaults and package.use in the profile (see portage(5))

pkginternal
	USE from ebuild IUSE defaults (flags enabled via a + prefix; see ebuild(5))

REPORTING BUGS
==============

Please report bugs via http://bugs.gentoo.org/

AUTHORS
=======

- Daniel Robbins <drobbins@gentoo.org>
- Nicholas Jones <carpaski@gentoo.org>
- Mike Frysinger <vapier@gentoo.org>
- Saleem Abdulrasool <compnerd@gentoo.org>
- Marius Mauch <genone@gentoo.org>

FILES
=====

/etc/make.conf
	Contains user-supplied variables and overwrites those in make.defaults.

/usr/share/portage/config/make.globals
	Contains portage defaults for many variables listed here. Don't change this,
	edit /etc/make.conf instead.

|portdir|/profiles/use.desc
	Contains a list of all global USE flags with brief descriptions.

|portdir|/profiles/use.local.desc
	Contains a list of all local USE variables with brief descriptions.

SEE ALSO
========

- emerge(1)
- portage(5)
- ebuild(1)
- ebuild(5)

.. Substitutions:
.. |accept_keywords| replace:: ~x86
.. |cflags| replace:: -march=i686 -O2 -pipe
.. |chost| replace:: i686-gentoo-linux-gnu
.. |portdir| replace:: /usr/portage