ebuild: fetch: Flatten conditionals in _get_fetch_resume_size
[portage.git] / man / portage.5
1 .TH "PORTAGE" "5" "Jan 2014" "Portage VERSION" "Portage"
2 .SH NAME
3 portage \- the heart of Gentoo
4 .SH "DESCRIPTION"
5 The current portage code uses many different configuration files, most of which
6 are unknown to users and normal developers.  Here we will try to collect all
7 the odds and ends so as to help users more effectively utilize portage.  This
8 is a reference only for files which do not already have a man page.
9
10 All files in the make.profile directory may be tweaked via parent profiles
11 when using cascading profiles.  For more info, please see
12 http://www.gentoo.org/proj/en/releng/docs/cascading-profiles.xml
13 .IP Note:
14 If you are looking for information on how to emerge something, please see
15 .BR emerge (1).
16 .SH "SYNOPSIS"
17 .TP
18 \fB/etc/portage/make.profile/\fR or \fB/etc/make.profile/\fR
19 site\-specific overrides go in \fB/etc/portage/profile/\fR
20 .nf
21 deprecated
22 eapi
23 make.defaults
24 packages
25 packages.build
26 package.accept_keywords
27 package.keywords
28 package.mask
29 package.provided
30 package.unmask
31 package.use
32 package.use.force
33 package.use.mask
34 package.use.stable.force
35 package.use.stable.mask
36 parent
37 profile.bashrc
38 use.force
39 use.mask
40 use.stable.mask
41 use.stable.force
42 virtuals
43 .fi
44 .TP
45 .BR /etc/portage/
46 .nf
47 bashrc
48 categories
49 color.map
50 license_groups
51 .BR make.conf (5)
52 mirrors
53 modules
54 package.accept_keywords
55 package.accept_restrict
56 package.env
57 package.keywords
58 package.license
59 package.mask
60 package.properties
61 package.unmask
62 package.use
63 repos.conf
64 .fi
65 .TP
66 .BR /etc/portage/env/
67 package-specific bashrc files
68 .TP
69 .BR /etc/portage/profile/
70 site-specific overrides of \fB/etc/portage/make.profile/\fR
71 .TP
72 .BR /etc/portage/sets/
73 user\-defined package sets
74 .TP
75 .BR /usr/portage/metadata/
76 .nf
77 layout.conf
78 .fi
79 .TP
80 .BR /usr/portage/profiles/
81 .nf
82 arch.list
83 categories
84 info_pkgs
85 info_vars
86 license_groups
87 make.defaults
88 package.mask
89 package.unmask
90 package.use
91 package.use.force
92 package.use.mask
93 package.use.stable.force
94 package.use.stable.mask
95 profiles.desc
96 repo_name
97 thirdpartymirrors
98 use.desc
99 use.force
100 use.local.desc
101 use.mask
102 use.stable.mask
103 use.stable.force
104 .fi
105 .TP
106 .BR /usr/share/portage/config/
107 .nf
108 make.globals
109 repos.conf
110 .fi
111 .TP
112 .BR /var/cache/edb/
113 misc internal cache files
114 .TP
115 .BR /var/db/pkg/
116 database to track installed packages
117 .TP
118 .BR /var/lib/portage/
119 .nf
120 config
121 world
122 world_sets
123 .fi
124 .SH "GLOSSARY"
125 In the following sections, some terminology may be foreign to you or used
126 with meaning specific to Portage.  Please see the referenced manpages for
127 more detailed explanations.
128 .RS
129 .TP
130 .B DEPEND atom
131 An atom is either of the form category/package or consists of an operator
132 followed by category/package followed by a hyphen and a version specification.
133 An atom might be suffixed by a slot specification.
134 .br
135 More reading:
136 .BR ebuild (5)
137
138 .B Extended Atom Syntax
139 .br
140 The following atom syntax extensions are only supported in user
141 configuration files and command line arguments for programs such as
142 \fBemerge(1)\fR:
143 .RS
144 .TP
145 .B Repository Constraints
146 Atoms with repository constraints have a '::' separator appended to the
147 right side, followed by a repository name. Each repository name should
148 correspond to the value of a \fBrepo_name\fR entry from one of the
149 repositories that is configured in \fBrepos.conf\fR file.
150
151 .I Examples:
152 .nf
153 # match sed from the 'gentoo' repository
154 sys\-apps/sed::gentoo
155 # match kdelibs from the 'kde\-testing' repository
156 kde\-base/kdelibs::kde\-testing
157 # match empathy from the 'gnome' repository
158 net\-im/empathy::gnome
159 .fi
160 .TP
161 .B Wildcard Patterns
162 Atoms containing wildcard patterns are of the form category/package, where
163 the special '*' wildcard character substitutes for an arbitrary number
164 of normal characters. More than one '*' character is allowed, but not two
165 next to each other.
166
167 .I Examples:
168 .nf
169 # match anything with a version containing 9999, which can be used in
170 # package.mask to prevent emerge --autounmask from selecting live ebuilds
171 =*/*-*9999*
172 # match anything with a version containing _beta
173 =*/*-*_beta*
174 # match anything from the 'sys\-apps' category
175 sys\-apps/*
176 # match packages named 'zlib' from any category
177 */zlib
178 # match any package from a category that begins with 'net\-'
179 net\-*/*
180 # match any package name from any category
181 */*
182 # match any package from the 'gentoo' repository
183 */*::gentoo
184 .fi
185 .RE
186 .TP
187 .B KEYWORD
188 Each architecture has a unique KEYWORD.
189 .br
190 More reading:
191 .BR ebuild (5)
192 .TP
193 .B virtual
194 A DEPEND atom that is part of the "virtual" category.  They are used
195 when different packages can satisfy a dependency and only one of them is
196 needed.
197 .br
198 More reading:
199 .BR ebuild (5)
200 .RE
201 .SH "SPECIFIC FILE DESCRIPTIONS"
202 .TP
203 \fB/etc/portage/make.profile/\fR or \fB/etc/make.profile/\fR
204 This is usually just a symlink to the correct profile in
205 \fB/usr/portage/profiles/\fR.  Since it is part of the portage tree, it
206 may easily be updated/regenerated by running `emerge \-\-sync`.  It defines
207 what a profile is (usually arch specific stuff).  If you need a custom
208 profile, then you should make your own \fBmake.profile\fR
209 directory and populate it.  However, if you just wish to override some
210 settings, use \fB/etc/portage/profile/\fR (it supports all of the same file
211 types that \fBmake.profile\fR does, except parent). Do NOT edit the
212 settings in \fBmake.profile\fR because they WILL be lost with the next
213 `emerge \-\-sync`. If both \fB/etc/portage/make.profile/\fR and
214 \fB/etc/make.profile/\fR exist, then \fB/etc/portage/make.profile/\fR
215 will be preferred.
216
217 Any file in this directory, directories of other profiles or top-level
218 "profiles" directory that begins with "package." or "use." can be more than
219 just a flat file.  If it is a directory, then all the files in that directory
220 will be sorted in ascending alphabetical order by file name and summed together
221 as if it were a single file. Note that this behavior is only supported since
222 portage-2.1.6.7, and it is not included in PMS at this time.
223
224 .I Example:
225 .nf
226 ${repository_location}/profiles/package.mask/removals
227 ${repository_location}/profiles/package.mask/testing
228 .fi
229 .RS
230 .TP
231 .BR deprecated
232 The existence of this file marks a profile as deprecated, meaning it is
233 not supported by Gentoo anymore.  The first line must be the profile to which
234 users are encouraged to upgrade, optionally followed by some instructions
235 explaining how they can upgrade.
236
237 .I Example:
238 .nf
239 default-linux/x86/2005.0
240 # emerge -n '>=sys-apps/portage-2.0.51'
241 # rm -f /etc/portage/make.profile
242 # ln -s /usr/portage/profiles/default-linux/alpha/2005.0 \
243 /etc/portage/make.profile
244 .fi
245 .TP
246 .BR eapi
247 The first line of this file specifies the \fBEAPI\fR to which files in the
248 same directory conform. See \fBebuild\fR(5) for information about \fBEAPI\fR
249 and related features. Beginning with \fBEAPI 5\fR, new USE
250 configuration files are supported: use.stable.mask,
251 use.stable.force, package.use.stable.mask and
252 package.use.stable.force. These files behave similarly to
253 previously supported USE configuration files, except that they
254 only influence packages that are merged due to a stable keyword.
255 .TP
256 .BR make.defaults
257 The profile default settings for Portage.  The general format is described
258 in \fBmake.conf\fR(5).  The \fImake.defaults\fR for your profile defines a
259 few specific variables too:
260
261 .PD 0
262 .RS
263 .TP
264 .BR ARCH
265 Architecture type (x86/ppc/hppa/etc...).
266 .TP
267 \fBIUSE_IMPLICIT\fR = \fI[space delimited list of USE flags]\fR
268 Defines implicit \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or
269 later. Flags that come from \fBUSE_EXPAND\fR or
270 \fBUSE_EXPAND_UNPREFIXED\fR variables do not belong in
271 \fBIUSE_IMPLICIT\fR, since \fBUSE_EXPAND_VALUES_*\fR variables
272 are used to define implicit \fBIUSE\fR for those flags. See
273 \fBebuild\fR(5) for more information about \fBIUSE\fR.
274 .TP
275 .B USERLAND = \fI"GNU"\fR
276 Support BSD/cygwin/etc...
277 .TP
278 \fBUSE_EXPAND\fR = \fI[space delimited list of variable names]\fR
279 Any variable listed here will be used to augment USE by inserting a new flag
280 for every value in that variable, so USE_EXPAND="FOO" and FOO="bar bla" results
281 in USE="foo_bar foo_bla".
282 .TP
283 \fBUSE_EXPAND_HIDDEN\fR = \fI[space delimited list of variable names]\fR
284 Names of \fBUSE_EXPAND\fR variables that should not be shown in the verbose
285 merge list output of the \fBemerge\fR(1) command.
286 .TP
287 \fBUSE_EXPAND_IMPLICIT\fR = \fI[space delimited list of variable names]\fR
288 Defines \fBUSE_EXPAND\fR and \fBUSE_EXPAND_UNPREFIXED\fR
289 variables for which the corresponding USE flags may have
290 implicit \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or later.
291 .TP
292 \fBUSE_EXPAND_UNPREFIXED\fR = \fI[space delimited list of variable names]\fR
293 Any variable listed here will be used to augment USE by
294 inserting a new flag for every value in that variable, so
295 USE_EXPAND_UNPREFIXED="FOO" and FOO="bar bla" results in
296 USE="bar bla".
297 .TP
298 \fBUSE_EXPAND_VALUES_ARCH\fR = \fI[space delimited list of ARCH values]\fR
299 Defines ARCH values used to generate implicit
300 \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or later.
301 .TP
302 \fBUSE_EXPAND_VALUES_ELIBC\fR = \fI[space delimited list of ELIBC values]\fR
303 Defines ELIBC values used to generate implicit
304 \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or later.
305 .TP
306 \fBUSE_EXPAND_VALUES_KERNEL\fR = \fI[space delimited list of KERNEL values]\fR
307 Defines KERNEL values used to generate implicit
308 \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or later.
309 .TP
310 \fBUSE_EXPAND_VALUES_USERLAND\fR = \fI[space delimited list of USERLAND \
311 values]\fR
312 Defines USERLAND values used to generate implicit
313 \fBIUSE\fR for ebuilds using \fBEAPI 5\fR or later.
314 .TP
315 .B ELIBC = \fI"glibc"\fR
316 Support uClibc/BSD libc/etc...
317 .TP
318 .B PROFILE_ONLY_VARIABLES = \fI"ARCH"\fR
319 Prevent critical variables from being changed by the user in make.conf
320 or the env.
321 .TP
322 .BR PROFILE_ARCH
323 Distinguish machines classes that have the same \fBARCH\fR.  All sparc
324 machines have ARCH=sparc but set this to either 'sparc32' or 'sparc64'.
325 .TP
326 .BR BOOTSTRAP_USE
327 Special USE flags which may be needed when bootstrapping from stage1 to stage2.
328 .RE
329 .PD 1
330 .TP
331 .BR packages
332 Provides the list of packages that compose the special \fIsystem\fR set.
333
334 .I Format:
335 .nf
336 \- comments begin with # (no inline comments)
337 \- one DEPEND atom per line
338 \- packages to be added to the system set begin with a *
339 \- atoms without * only appear for legacy reasons
340 .fi
341 .I Note:
342 In a cascading profile setup, you can remove packages in children
343 profiles which were added by parent profiles by prefixing the atom with
344 a '\-'.
345
346 .I Example:
347 .nf
348 # i am a comment !
349 # pull in a version of glibc less than 2.3
350 *<sys\-libs/glibc\-2.3
351 # pull in any version of bash
352 *app\-shells/bash
353 # pull in a version of readline earlier than 4.2
354 *<sys\-libs/readline\-4.2
355 .fi
356 .TP
357 .BR packages.build
358 A list of packages (one per line) that make up a stage1 tarball.  Really only
359 useful for stage builders.
360 .TP
361 .BR package.provided
362 A list of packages (one per line) that portage should assume have been
363 provided.  Useful for porting to non-Linux systems. Basically, it's a
364 list that replaces the \fBemerge \-\-inject\fR syntax.
365
366 For example, if you manage your own copy of a 2.6 kernel, then you can
367 tell portage that 'sys-kernel/development-sources-2.6.7' is already taken
368 care of and it should get off your back about it.
369
370 Portage will not attempt to update a package that is listed here unless
371 another package explicitly requires a version that is newer than what
372 has been listed. Dependencies that are satisfied by package.provided
373 entries may cause installed packages satisfying equivalent dependencies
374 to be removed by \fBemerge\fR(1) \fB\-\-depclean\fR actions (see the
375 \fBACTIONS\fR section of the \fBemerge\fR(1) man page for more information).
376
377 Virtual packages (virtual/*) should not be specified in package.provided,
378 since virtual packages themselves do not provide any files, and
379 package.provided is intended to represent packages that do provide files.
380 Depending on the type of virtual, it may be necessary to add an entry to the
381 virtuals file and/or add a package that satisfies a virtual to
382 package.provided.
383
384 .I Format:
385 .nf
386 \- comments begin with # (no inline comments)
387 \- one DEPEND atom per line
388 \- relational operators are not allowed
389 \- must include a version
390 .fi
391
392 .I Example:
393 .nf
394 # you take care of the kernel
395 sys-kernel/development-sources-2.6.7
396
397 # you installed your own special copy of QT
398 x11-libs/qt-3.3.0
399
400 # you have modular X but packages want monolithic
401 x11-base/xorg-x11-6.8
402 .fi
403 .TP
404 \fBpackage.use.force\fR and \fBpackage.use.stable.force\fR
405 Per\-package USE flag forcing.
406
407 .I Note:
408 In a cascading profile setup, you can remove USE flags in children
409 profiles which were added by parent profiles by prefixing the flag with
410 a '\-'.
411
412 .I Format:
413 .nf
414 \- comments begin with # (no inline comments)
415 \- one DEPEND atom per line with space-delimited USE flags
416 .fi
417
418 .I Example:
419 .nf
420 # force docs for GTK 2.x
421 =x11\-libs/gtk+\-2* doc
422 # unforce mysql support for QT
423 x11\-libs/qt \-mysql
424 .fi
425 .TP
426 \fBpackage.use.mask\fR and \fBpackage.use.stable.mask\fR
427 Per\-package USE flag masks.
428
429 .I Note:
430 In a cascading profile setup, you can remove USE flags in children
431 profiles which were added by parent profiles by prefixing the flag with
432 a '\-'.
433
434 .I Format:
435 .nf
436 \- comments begin with # (no inline comments)
437 \- one DEPEND atom per line with space-delimited USE flags
438 .fi
439
440 .I Example:
441 .nf
442 # mask docs for GTK 2.x
443 =x11\-libs/gtk+\-2* doc
444 # unmask mysql support for QT
445 x11\-libs/qt \-mysql
446 .fi
447 .TP
448 .BR parent
449 This contains paths to the parent profiles (one per line).  They may be either
450 relative (to the location of the profile) or absolute.  Most commonly this file
451 contains '..' to indicate the directory above.  Utilized only in cascading
452 profiles.
453
454 When multiple parent profiles are specified, they are inherited in order from
455 the first line to the last.
456
457 If \fBlayout.conf\fR is new enough, you can also use the <repo>:<path>
458 syntax.  The <repo> is the same string as is stored in the \fBrepo_name\fR
459 file (or omitted to refer to the current repo), and <path> is a subdir starting
460 at profiles/.
461 .TP
462 .BR profile.bashrc
463 If needed, this file can be used to set up a special environment for ebuilds,
464 different from the standard root environment.  The syntax is the same as for
465 any other bash script.
466 .TP
467 \fBuse.force\fR and \fBuse.stable.force\fR
468 Some USE flags don't make sense to disable under certain conditions.  Here we
469 list forced flags.
470
471 .I Note:
472 In a cascading profile setup, you can remove USE flags in children
473 profiles which were added by parent profiles by prefixing the flag with
474 a '\-'.
475
476 .I Format:
477 .nf
478 \- comments begin with # (no inline comments)
479 \- one USE flag per line
480 .fi
481 .TP
482 \fBuse.mask\fR and \fBuse.stable.mask\fR
483 Some USE flags don't make sense on some archs (for example altivec on
484 non\-ppc or mmx on non\-x86), or haven't yet been tested.  Here we list
485 the masked ones.
486
487 .I Note:
488 In a cascading profile setup, you can remove USE flags in children
489 profiles which were added by parent profiles by prefixing the flag with
490 a '\-'.
491
492 .I Format:
493 .nf
494 \- comments begin with # (no inline comments)
495 \- one USE flag per line
496 .fi
497
498 .I Example:
499 .nf
500 # mask doc
501 doc
502 # unmask mysql
503 \-mysql
504 .fi
505 .TP
506 .BR virtuals
507 The virtuals file controls default preferences for virtuals that
508 are defined via the \fBPROVIDE\fR ebuild variable (see
509 \fBebuild\fR(5)). Since Gentoo now uses \fBGLEP 37\fR virtuals
510 instead of \fBPROVIDE\fR virtuals, the virtuals file is
511 irrelevant for all Gentoo ebuilds. However, it is still possible
512 for third\-parties to distribute ebuilds that make use of
513 \fBPROVIDE\fR.
514
515 .I Format:
516 .nf
517 \- comments begin with # (no inline comments)
518 \- one virtual and DEPEND atom base pair per line
519 .fi
520
521 .I Example:
522 .nf
523 # use net\-mail/ssmtp as the default mta
524 virtual/mta           net\-mail/ssmtp
525 # use app\-dicts/aspell\-en as the default dictionary
526 virtual/aspell\-dict   app\-dicts/aspell\-en
527 .fi
528 .RE
529 .TP
530 .BR /etc/portage/
531 Any file in this directory that begins with "package." or is repos.conf can be
532 more than just a flat file.  If it is a directory, then all the files in that
533 directory will be sorted in ascending alphabetical order by file name and summed
534 together as if it were a single file.
535
536 .I Example:
537 .nf
538 /etc/portage/package.accept_keywords/common
539 /etc/portage/package.accept_keywords/e17
540 /etc/portage/package.accept_keywords/kde
541 .fi
542 .RS
543 .TP
544 .BR bashrc
545 If needed, this file can be used to set up a special environment for ebuilds,
546 different from the standard root environment.  The syntax is the same as for
547 any other bash script.
548
549 Additional package-specific bashrc files can be created in /etc/portage/env.
550 .TP
551 .BR categories
552 A simple list of valid categories that may be used in repositories and PKGDIR
553 (see \fBmake.conf\fR(5)). This allows for custom categories to be created.
554
555 .I Format:
556 .nf
557 \- one category per line
558 .fi
559
560 .I Example:
561 .nf
562 app\-hackers
563 media\-other
564 .fi
565 .TP
566 .BR color.map
567 Contains variables customizing colors. See \fBcolor.map\fR(5).
568 .TP
569 .BR make.conf
570 The global custom settings for Portage. See \fBmake.conf\fR(5).
571 .TP
572 .BR mirrors
573 Whenever portage encounters a mirror:// style URI it will look up the actual
574 hosts here.  If the mirror set is not found here, it will check the global
575 mirrors file at /usr/portage/profiles/thirdpartymirrors.  You may also set a
576 special mirror type called "local".  This list of mirrors will be checked
577 before GENTOO_MIRRORS and will be used even if the package has
578 RESTRICT="mirror" or RESTRICT="fetch".
579
580 .I Format:
581 .nf
582 \- comments begin with # (no inline comments)
583 \- mirror type followed by a list of hosts
584 .fi
585
586 .I Example:
587 .nf
588 # local private mirrors used only by my company
589 local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles
590
591 # people in japan would want to use the japanese mirror first
592 sourceforge http://keihanna.dl.sourceforge.net/sourceforge
593
594 # people in tawain would want to use the local gnu mirror first
595 gnu ftp://ftp.nctu.edu.tw/UNIX/gnu/
596 .fi
597 .TP
598 .BR modules
599 This file can be used to override the metadata cache implementation.  In
600 practice, portdbapi.auxdbmodule is the only variable that the user will want to
601 override.
602
603 .I Example:
604 .nf
605 portdbapi.auxdbmodule = portage.cache.sqlite.database
606 .fi
607
608 After changing the portdbapi.auxdbmodule setting, it may be necessary to
609 transfer or regenerate metadata cache. Users of the rsync tree need to
610 run `emerge \-\-metadata` if they have enabled FEATURES="metadata-transfer"
611 in \fBmake.conf\fR(5). In order to regenerate metadata for repositories
612 not distributing pregenerated metadata cache, run `emerge \-\-regen`
613 (see \fBemerge\fR(1)). If you use something like the sqlite module and want
614 to keep all metadata in that format alone (useful for querying), enable
615 FEATURES="metadata-transfer" in \fBmake.conf\fR(5).
616 .TP
617 \fBpackage.accept_keywords\fR and \fBpackage.keywords\fR
618 Per\-package ACCEPT_KEYWORDS.  Useful for mixing unstable packages in with a
619 normally stable system or vice versa.  This will allow ACCEPT_KEYWORDS to be
620 augmented for a single package. If both \fBpackage.accept_keywords\fR and
621 \fBpackage.keywords\fR are present, both of them will be used, and values
622 from \fBpackage.accept_keywords\fR will override values from
623 \fBpackage.keywords\fR. The \fBpackage.accept_keywords\fR file is
624 intended to replace the \fBpackage.keywords\fR file, since
625 profiles support a different form of \fBpackage.keywords\fR which
626 modifies effective KEYWORDS (rather than ACCEPT_KEYWORDS).
627
628 .I Format:
629 .nf
630 \- comment lines begin with # (no inline comments)
631 \- one DEPEND atom per line followed by additional KEYWORDS
632 \- lines without any KEYWORDS imply unstable host arch
633
634 .I Example:
635 # always use unstable libgd
636 media\-libs/libgd ~x86
637 # only use stable mplayer
638 media\-video/mplayer \-~x86
639 # always use unstable netcat
640 net-analyzer/netcat
641 .fi
642
643 .I Note:
644 .fi
645 In addition to the normal values from ACCEPT_KEYWORDS package.keywords supports
646 three special tokens:
647
648 .nf
649 \fB*\fR  package is visible if it is stable on any architecture
650 \fB~*\fR package is visible if it is in testing on any architecture
651 \fB**\fR package is always visible (KEYWORDS are ignored completely)
652 .fi
653
654 .I Additional Note:
655 If you encounter the \fB-*\fR KEYWORD, this indicates that the package is known
656 to be broken on all systems which are not otherwise listed in KEYWORDS.  For
657 example, a binary only package which is built for x86 will look like:
658
659 games-fps/quake3-demo-1.11.ebuild:KEYWORDS="-* x86"
660
661 If you wish to accept this package anyways, then use one of the other keywords
662 in your package.accept_keywords like this:
663
664 games-fps/quake3-demo x86
665
666 .TP
667 .BR package.accept_restrict
668 This will allow ACCEPT_RESTRICT (see \fBmake.conf\fR(5)) to be augmented for a
669 single package.
670
671 .I Format:
672 .nf
673 \- comment lines begin with # (no inline comments)
674 \- one DEPEND atom per line followed by additional RESTRICT tokens
675 .fi
676 .TP
677 .BR package.env
678 Per\-package environment variable settings. Entries refer to
679 environment files that are placed in the \fB/etc/portage/env/\fR
680 directory and have the same format as \fBmake.conf\fR(5). Note that these
681 files are interpreted much earlier than the package\-specific \fIbashrc\fR
682 files which are described in a later section about \fB/etc/portage/env/\fR.
683 Beginners should be careful to recognize the difference between these two types
684 of files. When environment variable settings are all that's needed,
685 \fBpackage.env\fR is the recommended approach to use.
686
687 .I Format:
688 .nf
689 \- comment lines begin with # (no inline comments)
690 \- one DEPEND atom per line followed by name(s) of environment file(s)
691 .fi
692
693 .I Example:
694 .nf
695 # use environment variables from /etc/portage/env/glibc.conf for the glibc \
696 package
697 sys\-libs/glibc glibc.conf
698 .fi
699
700 .TP
701 .BR package.license
702 This will allow ACCEPT_LICENSE (see \fBmake.conf\fR(5)) to be augmented for a
703 single package.
704
705 .I Format:
706 .nf
707 \- comment lines begin with # (no inline comments)
708 \- one DEPEND atom per line followed by additional licenses or groups
709 .fi
710 .TP
711 .BR package.mask
712 A list of package atoms to mask.  Useful if specific versions of packages do
713 not work well for you.  For example, you swear by the Nvidia drivers, but only
714 versions earlier than 1.0.4496.  No problem!
715
716 .I Format:
717 .nf
718 \- comment lines begin with # (no inline comments)
719 \- one DEPEND atom per line
720 .fi
721
722 .I Example:
723 .nf
724 # mask out versions 1.0.4496 of the nvidia
725 # drivers and later
726 >=media\-video/nvidia\-kernel\-1.0.4496
727 >=media\-video/nvidia\-glx\-1.0.4496
728 .fi
729 .TP
730 .BR package.properties
731 This will allow ACCEPT_PROPERTIES (see \fBmake.conf\fR(5)) to be augmented for
732 a single package.
733
734 .I Format:
735 .nf
736 \- comment lines begin with # (no inline comments)
737 \- one DEPEND atom per line followed by additional properties
738 .fi
739 .TP
740 .BR package.unmask
741 Just like package.mask above, except here you list packages you want to
742 unmask.  Useful for overriding the global package.mask file (see
743 above).  Note that this does not override packages that are masked via
744 KEYWORDS.
745 .TP
746 .BR package.use
747 Per\-package USE flags.  Useful for tracking local USE flags or for
748 enabling USE flags for certain packages only.  Perhaps you develop GTK
749 and thus you want documentation for it, but you don't want
750 documentation for QT.  Easy as pie my friend!
751
752 .I Format:
753 .nf
754 \- comments begin with # (no inline comments)
755 \- one DEPEND atom per line with space-delimited USE flags
756 .fi
757
758 .I Example:
759 .nf
760 # turn on docs for GTK 2.x
761 =x11\-libs/gtk+\-2* doc
762 # disable mysql support for QT
763 x11\-libs/qt \-mysql
764 .fi
765 .TP
766 .BR repos.conf
767 Specifies \fIsite\-specific\fR repository configuration information.
768 .br
769 Configuration specified in \fBrepos.conf\fR can be overriden by \fBPORTAGE_REPOSITORIES\fR
770 environmental variable, which has the same format as \fBrepos.conf\fR.
771
772 .I Format:
773 .nf
774 \- comments begin with # (no inline comments)
775 \- configuration of each repository is specified in a section starting with \
776 "[${repository_name}]"
777 \- attributes are specified in "${attribute} = ${value}" format
778 .fi
779
780 .I Attributes supported in DEFAULT section:
781 .RS
782 .RS
783 .TP
784 .B main\-repo
785 Specifies main repository.
786 .TP
787 .B eclass\-overrides
788 Makes all repositories inherit eclasses from specified repositories.
789 .br
790 Setting this attribute is generally not recommended since resulting changes
791 in eclass inheritance may trigger performance issues due to invalidation
792 of metadata cache.
793 .br
794 When 'force = eclass\-overrides' attribute is not set, \fBegencache\fR(1),
795 \fBemirrordist\fR(1) and \fBrepoman\fR(1) ignore this attribute,
796 since operations performed by these tools are inherently
797 \fBnot\fR \fIsite\-specific\fR.
798 .TP
799 .B force
800 Specifies names of attributes, which should be forcefully respected by
801 \fBegencache\fR(1), \fBemirrordist\fR(1) and \fBrepoman\fR(1).
802 .br
803 Valid values: aliases, eclass\-masters, eclass\-overrides, masters,
804 package.mask\-masters, use.aliases\-masters, use.force\-masters,
805 use.mask\-masters
806 .RE
807
808 .I Attributes supported in sections of repositories:
809 .RS
810 .TP
811 .B aliases
812 Specifies aliases of given repository.
813 .br
814 Setting this attribute is generally not recommended since resulting changes
815 in eclass inheritance may trigger performance issues due to invalidation
816 of metadata cache.
817 .br
818 When 'force = aliases' attribute is not set, \fBegencache\fR(1),
819 \fBemirrordist\fR(1) and \fBrepoman\fR(1) ignore this attribute,
820 since operations performed by these tools are inherently
821 \fBnot\fR \fIsite\-specific\fR.
822 .TP
823 .B eclass\-overrides
824 Makes given repository inherit eclasses from specified repositories.
825 .br
826 Setting this attribute is generally not recommended since resulting changes
827 in eclass inheritance may trigger performance issues due to invalidation
828 of metadata cache.
829 .br
830 When 'force = eclass\-overrides' attribute is not set, \fBegencache\fR(1),
831 \fBemirrordist\fR(1) and \fBrepoman\fR(1) ignore this attribute,
832 since operations performed by these tools are inherently
833 \fBnot\fR \fIsite\-specific\fR.
834 .TP
835 .B force
836 Specifies names of attributes, which should be forcefully respected by
837 \fBegencache\fR(1), \fBemirrordist\fR(1) and \fBrepoman\fR(1).
838 .br
839 Valid values: aliases, eclass\-masters, eclass\-overrides, masters,
840 package.mask\-masters, use.aliases\-masters, use.force\-masters,
841 use.mask\-masters
842 .TP
843 .B location
844 Specifies location of given repository.
845 .TP
846 .B masters, eclass\-masters, package.mask\-masters, use.aliases\-masters, use.force\-masters, use.mask\-masters
847 Specifies master repositories of given repository. See documentation of
848 \fBlayout.conf\fR file for more details.
849 .br
850 Setting these attribute is generally not recommended since resulting changes
851 in eclass inheritance may trigger performance issues due to invalidation
852 of metadata cache.
853 .br
854 When 'force = ${attribute}' (e.g. 'force = masters') attribute is not set,
855 \fBegencache\fR(1), \fBemirrordist\fR(1) and \fBrepoman\fR(1) ignore given
856 attribute, since operations performed by these tools are inherently
857 \fBnot\fR \fIsite\-specific\fR.
858 .TP
859 .B priority
860 Specifies priority of given repository.
861 .TP
862 .B sync\-cvs\-repo
863 Specifies CVS repository.
864 .TP
865 .B sync\-type
866 Specifies type of synchronization performed by `emerge \-\-sync`.
867 .br
868 Valid non\-empty values: cvs, git, rsync
869 .br
870 This attribute can be set to empty value to disable synchronization of given
871 repository. Empty value is default.
872 .TP
873 .B sync\-uri
874 Specifies URI of repository used for synchronization performed by `emerge
875 \-\-sync`.
876 .br
877 This attribute can be set to empty value to disable synchronization of given
878 repository. Empty value is default.
879 .RS
880 .TP
881 Syntax:
882 cvs: [cvs://]:access_method:[username@]hostname[:port]:/path
883 .br
884 git: (git|git+ssh|http|https)://[username@]hostname[:port]/path
885 .br
886 rsync: (rsync|ssh)://[username@]hostname[:port]/(module|path)
887 .TP
888 Examples:
889 .RS
890 rsync://private\-mirror.com/portage\-module
891 .br
892 rsync://rsync\-user@private\-mirror.com:873/gentoo\-portage
893 .br
894 ssh://ssh\-user@192.168.0.1:22/usr/portage
895 .br
896 ssh://ssh\-user@192.168.0.1:22/\\${HOME}/portage\-storage
897 .RE
898 .TP
899 Note: For the ssh:// scheme, key\-based authentication might be of interest.
900 .RE
901 .RE
902
903 .I Example:
904 .nf
905 [DEFAULT]
906 # make gentoo the main repository, which makes it the default master
907 # repository for repositories that do not specify masters
908 main\-repo = gentoo
909 # make all repositories inherit eclasses from the java\-overlay and
910 # java\-experimental repositories, with eclasses from java\-experimental
911 # taking precedence over those from java\-overlay
912 eclass\-overrides = java\-overlay java\-experimental
913
914 [gentoo]
915 # repos with higher priorities are preferred when ebuilds with equal versions
916 # are found in multiple repos (see the `emerge \-\-info \-\-verbose` repo
917 # display for a listing of repos and their corresponding priorities).
918 priority = 9999
919 # disable all eclass overrides for ebuilds from the gentoo repository
920 eclass\-overrides =
921 # when processing metadata/layout.conf from other repositories, substitute
922 # 'gentoo' in place of references to repositories named 'foo' and 'bar',
923 # and discard the 'baz' alias contained in gentoo's layout.conf
924 aliases = foo bar -baz
925
926 [kde-testing]
927 # override the metadata/layout.conf masters setting from the kde-testing repo
928 masters = gentoo kde
929
930 [python]
931 # override the metadata/layout.conf masters setting from the python repo,
932 # so that settings won't be inherited from those masters, and so that
933 # those master repos won't be required as dependencies (the user must
934 # ensure that any required dependencies such as eclasses are satisfied)
935 masters =
936
937 # Repository 'gentoo' synchronized using CVS
938 [gentoo]
939 location = /usr/portage
940 sync\-type = cvs
941 sync\-uri = :pserver:anonymous@anoncvs.gentoo.org:/var/cvsroot
942 sync\-cvs\-repo = gentoo\-x86
943 .fi
944 .RE
945 .RE
946 .TP
947 .BR /etc/portage/env/
948 .RS
949 In this directory additional package\-specific bashrc files can be created.
950 Note that if package\-specific environment variable settings are all that's
951 needed, then \fB/etc/portage/package.env\fR should be used instead of the
952 bashrc approach that is described here. Also note that special variables
953 such as \fBFEATURES\fR and \fBINSTALL_MASK\fR will not produce the intended
954 results if they are set in bashrc, and therefore
955 \fB/etc/portage/package.env\fR should be used instead. Lastly, note that these
956 files are interpreted much later than the portage environment file
957 \fBpackage.env\fR.
958
959 Portage will source all of these bashrc files after \fB/etc/portage/bashrc\fR
960 in the following order:
961 .nr step 1 1
962 .IP \n[step]. 3
963 /etc/portage/env/${CATEGORY}/${PN}
964 .IP \n+[step].
965 /etc/portage/env/${CATEGORY}/${PN}:${SLOT}
966 .IP \n+[step].
967 /etc/portage/env/${CATEGORY}/${P}
968 .IP \n+[step].
969 /etc/portage/env/${CATEGORY}/${PF}
970 .RE
971 .TP
972 .BR /etc/portage/sets/
973 .RS
974 For each file in this directory, a package set is created with its name
975 corresponding to the name of the file. Each file should contain a list
976 of package atoms and nested package sets, one per line. When a package
977 set is referenced as an \fBemerge\fR(1) argument or when it is
978 referenced as a nested package set (inside of another package set), the
979 set name is prefixed with \fB@\fR.
980
981 Also see \fB/var/lib/portage/world_sets\fR and the \fBemerge\fR(1)
982 \fB\-\-list\-sets\fR option.
983 .RE
984 .TP
985 .BR /usr/portage/metadata/
986 .RS
987 .TP
988 .BR layout.conf
989 Specifies information about the repository layout.
990 \fISite-specific\fR overrides to \fBlayout.conf\fR settings may be specified in
991 \fB/etc/portage/repos.conf\fR.
992 Settings in \fBrepos.conf\fR take precedence over settings in
993 \fBlayout.conf\fR, except tools such as \fBrepoman\fR(1) and \fBegencache\fR(1)
994 ignore "aliases", "eclass\-masters", "eclass\-overrides", "masters",
995 "package.mask\-masters", "use.aliases\-masters", "use.force\-masters" and
996 "use.mask\-masters" attributes set in \fBrepos.conf\fR since their operations
997 are inherently \fBnot\fR \fIsite\-specific\fR.
998
999 .I Format:
1000 .nf
1001 \- comments begin with # (no inline comments)
1002 \- attributes are specified in "${attribute} = ${value}" format
1003 .fi
1004
1005 .I Supported attributes:
1006 .RS
1007 .RS
1008 .TP
1009 .BR aliases
1010 Behaves like an "aliases" attribute in \fBrepos.conf\fR.
1011 .TP
1012 .BR eapis\-banned
1013 List of EAPIs which are not allowed in this repo.
1014 .TP
1015 .BR eapis\-deprecated
1016 List of EAPIs which are allowed but generate warnings when used.
1017 .TP
1018 .BR eclass\-masters
1019 Names of repositories wherefrom eclasses can be inherited.
1020 .br
1021 This attribute overrides \fBmasters\fR attribute and should be used only when
1022 there is a need to set this attribute to a different value than value of
1023 \fBmasters\fR attribute. See documentation of \fBmasters\fR attribute for more
1024 details.
1025 .TP
1026 .BR masters
1027 Names of repositories which satisfy dependencies on eclasses and from which
1028 settings specified in various repository\-level files (\fBpackage.mask\fR,
1029 \fBpackage.use.mask\fR, \fBuse.mask\fR etc.) are inherited. Each repository
1030 name should correspond to the value of a \fBrepo_name\fR entry from one of
1031 the repositories that is configured in \fBrepos.conf\fR file. Repositories
1032 listed toward the right of the \fBmasters\fR list take precedence over those
1033 listed toward the left of the list.
1034 .TP
1035 .BR package.mask-masters
1036 Names of repositories wherefrom settings specified in repository\-level
1037 \fBpackage.mask\fR files are inherited.
1038 .br
1039 This attribute overrides \fBmasters\fR attribute and should be used only when
1040 there is a need to set this attribute to a different value than value of
1041 \fBmasters\fR attribute. See documentation of \fBmasters\fR attribute for more
1042 details.
1043 .TP
1044 .BR repo\-name " = <value of profiles/repo_name>"
1045 The name of this repository (overrides profiles/repo_name if it exists).
1046 .TP
1047 .BR sign\-commits " = [true|" false "]"
1048 Boolean value whether we should sign commits in this repo.
1049 .TP
1050 .BR sign\-manifests " = [" true "|false]"
1051 Boolean value whether we should sign Manifest files in this repo.
1052 .TP
1053 .BR thin\-manifests " = [true|" false "]"
1054 Boolean value whether Manifest files contain only DIST entries.
1055 .TP
1056 .BR use.aliases\-masters
1057 Names of repositories wherefrom settings specified in repository\-level
1058 \fBpackage.use.aliases\fR and \fBuse.aliases\fR files are inherited.
1059 .br
1060 This attribute overrides \fBmasters\fR attribute and should be used only when
1061 there is a need to set this attribute to a different value than value of
1062 \fBmasters\fR attribute. See documentation of \fBmasters\fR attribute for more
1063 details.
1064 .TP
1065 .BR use.force\-masters
1066 Names of repositories wherefrom settings specified in repository\-level
1067 \fBpackage.use.force\fR, \fBpackage.use.stable.force\fR, \fBuse.force\fR and
1068 \fBuse.stable.force\fR files are inherited.
1069 .br
1070 This attribute overrides \fBmasters\fR attribute and should be used only when
1071 there is a need to set this attribute to a different value than value of
1072 \fBmasters\fR attribute. See documentation of \fBmasters\fR attribute for more
1073 details.
1074 .TP
1075 .BR use.mask\-masters
1076 Names of repositories wherefrom settings specified in repository\-level
1077 \fBpackage.use.mask\fR, \fBpackage.use.stable.mask\fR, \fuse.mask\fR and
1078 \fBuse.stable.mask\fR files are inherited.
1079 .br
1080 This attribute overrides \fBmasters\fR attribute and should be used only when
1081 there is a need to set this attribute to a different value than value of
1082 \fBmasters\fR attribute. See documentation of \fBmasters\fR attribute for more
1083 details.
1084 .TP
1085 .BR use\-manifests " = [" strict "|true|false]"
1086 How Manifest files get used.  Possible values are "strict" (require an entry
1087 for every file), "true" (if an entry exists for a file, enforce it), or "false"
1088 (don't check Manifest files at all).
1089 .TP
1090 .BR manifest\-hashes
1091 List of hashes to generate/check in Manifest files.  Valid hashes depend on the
1092 current version of portage; see the portage.const.MANIFEST2_HASH_FUNCTIONS
1093 constant for the current list.
1094 .TP
1095 .BR update\-changelog " = [true|" false "]"
1096 The default setting for repoman's --echangelog option.
1097 .TP
1098 .BR cache\-formats " = [pms] [md5-dict]"
1099 The cache formats supported in the metadata tree.  There is the old "pms" format
1100 and the newer/faster "md5-dict" format.  Default is to detect dirs.
1101 .TP
1102 .BR profile\-formats " = [pms|portage-1|portage-2]"
1103 Control functionality available to profiles in this repo such as which files
1104 may be dirs, or the syntax available in parent files.  Use "portage-2" if you're
1105 unsure.  The default is "portage-1-compat" mode which is meant to be compatible
1106 with old profiles, but is not allowed to be opted into directly.
1107 .RE
1108 .RE
1109
1110 .RS
1111 .I Example:
1112 .nf
1113 # Specify the repository name (overriding profils/repo_name).
1114 repo\-name = foo-overlay
1115
1116 # eclasses provided by java-overlay take precedence over identically named
1117 # eclasses that are provided by gentoo
1118 masters = gentoo java-overlay
1119
1120 # indicate that this repo can be used as a substitute for foo-overlay
1121 aliases = foo-overlay
1122
1123 # indicate that ebuilds with the specified EAPIs are banned
1124 eapis\-banned = 0 1
1125
1126 # indicate that ebuilds with the specified EAPIs are deprecated
1127 eapis\-deprecated = 2 3
1128
1129 # sign commits in this repo, which requires Git >=1.7.9, and
1130 # key configured by `git config user.signingkey key_id`
1131 sign\-commits = true
1132
1133 # do not sign Manifest files in this repo
1134 sign\-manifests = false
1135
1136 # Manifest files only contain DIST entries
1137 thin\-manifests = true
1138
1139 # indicate that this repo requires manifests for each package, and is
1140 # considered a failure if a manifest file is missing/incorrect
1141 use\-manifests = strict
1142
1143 # customize the set of hashes generated for Manifest entries
1144 manifest\-hashes = SHA256 SHA512 WHIRLPOOL
1145
1146 # indicate that this repo enables repoman's --echangelog=y option automatically
1147 update\-changelog = true
1148
1149 # indicate that this repo contains both md5-dict and pms cache formats,
1150 # which may be generated by egencache(1)
1151 cache\-formats = md5-dict pms
1152
1153 # indicate that this repo contains profiles that may use directories for
1154 # package.mask, package.provided, package.use, package.use.force,
1155 # package.use.mask, package.use.stable.force, package.use.stable.mask,
1156 # use.force, use.mask, use.stable.force, and use.stable.mask.
1157 # profile\-formats = portage-1
1158 # indicate that paths such as 'gentoo:targets/desktop' or ':targets/desktop' in
1159 # profile parent files can be used to express paths relative to the root
1160 # 'profiles' directory of a repository (when the repo name is omitted before
1161 # the colon, it refers to the current repository the parent file is inside)
1162 profile\-formats = portage-2
1163 .fi
1164 .RE
1165 .RE
1166 .TP
1167 .BR /usr/portage/profiles/
1168 Global Gentoo settings that are controlled by the developers.  To override
1169 these settings, you can use the files in \fB/etc/portage/\fR.
1170 .RS
1171 .TP
1172 .BR arch.list
1173 A list of all valid KEYWORDS.  This does not include modifiers.
1174
1175 .I Format:
1176 .nf
1177 \- one KEYWORD per line
1178 .fi
1179
1180 .I Example:
1181 .nf
1182 x86
1183 ppc
1184 sparc
1185 .fi
1186 .TP
1187 .BR categories
1188 A simple list of valid categories that may be used in repositories and PKGDIR
1189 (see \fBmake.conf\fR(5)).
1190
1191 .I Format:
1192 .nf
1193 \- one category per line
1194 .fi
1195
1196 .I Example:
1197 .nf
1198 app\-admin
1199 dev\-lang
1200 games\-strategy
1201 sys\-kernel
1202 .fi
1203 .TP
1204 .BR info_pkgs
1205 A list of all the packages which will be displayed when you run `emerge info`.
1206 .TP
1207 .BR info_vars
1208 A list of all the variables which will be displayed when you run `emerge info`.
1209 .TP
1210 .BR license_groups
1211 This contains groups of licenses that may be specifed in the
1212 \fBACCEPT_LICENSE\fR variable (see \fBmake.conf\fR(5)). Refer
1213 to GLEP 23 for further information:
1214 \fIhttp://www.gentoo.org/proj/en/glep/glep-0023.html\fR.
1215
1216 .I Format:
1217 .nf
1218 \- comments begin with # (no inline comments)
1219 \- one group name, followed by list of licenses and nested groups
1220 \- nested groups are prefixed with the '@' symbol
1221 .fi
1222
1223 .I Example:
1224 .nf
1225 # The FSF-APPROVED group includes the entire GPL-COMPATIBLE group and more.
1226 FSF-APPROVED @GPL-COMPATIBLE Apache-1.1 BSD-4 MPL-1.0 MPL-1.1
1227 # The GPL-COMPATIBLE group includes all licenses compatible with the GNU GPL.
1228 GPL-COMPATIBLE Apache-2.0 BSD BSD-2 GPL-2 GPL-3 LGPL-2.1 LGPL-3 X11 ZLIB
1229 .fi
1230 .TP
1231 .BR package.accept_keywords
1232 Per\-package ACCEPT_KEYWORDS for profiles. This has the same format and
1233 behavior as /etc/portage/package.accept_keywords, including the ability
1234 to list atoms without any keywords in order to accept unstable variants
1235 of all stable keywords listed in ACCEPT_KEYWORDS.
1236 .TP
1237 .BR package.keywords
1238 Per\-profile KEYWORDS. Useful for cases in which the effective KEYWORDS of a
1239 given package should vary depending on which profile the user has selected.
1240
1241 .I Format:
1242 .nf
1243 \- comment lines begin with # (no inline comments)
1244 \- one DEPEND atom per line followed by additional KEYWORDS
1245 .fi
1246
1247 .I Example:
1248 .nf
1249 # add stable keyword to libgd
1250 media\-libs/libgd x86
1251 # remove stable keyword from mplayer and add unstable keyword
1252 media\-video/mplayer \-x86 ~x86
1253 # remove all keywords from netcat
1254 net-analyzer/netcat -*
1255 .fi
1256 .TP
1257 .BR package.mask
1258 This contains a list of DEPEND atoms for packages that should not be installed
1259 in any profile.  Useful for adding the latest KDE betas and making sure no
1260 one accidentally upgrades to them.  Also useful for quickly masking specific
1261 versions due to security issues.  ALWAYS include a comment explaining WHY the
1262 package has been masked and WHO is doing the masking.
1263
1264 .I Format:
1265 .nf
1266 \- comments begin with # (no inline comments)
1267 \- one DEPEND atom per line
1268 .fi
1269
1270 .I Example:
1271 .nf
1272 # masked for security reasons
1273 <sys\-libs/zlib\-1.1.4
1274 # <caleb@gentoo.org> (10 Sep 2003)
1275 # new kde betas
1276 =kde\-base/kde\-3.2.0_beta1
1277 =kde\-base/kdeaccessibility\-3.2.0_beta1
1278 .fi
1279 .TP
1280 .BR profiles.desc
1281 List all the current stable and development profiles.  If a profile is listed
1282 here, then it will be checked by repoman.
1283 .I Format:
1284 .nf
1285 \- comments begin with # (no inline comments)
1286 \- one profile list per line in format: arch dir status
1287 \- arch must be listed in arch.list
1288 \- dir is relative to profiles.desc
1289 \- status must be 'stable', 'dev', or 'exp'
1290 .fi
1291
1292 .I Example:
1293 .nf
1294 alpha        default/linux/alpha/10.0    stable
1295 m68k         default/linux/m68k/10.0     dev
1296 x86          default/linux/x86/10.0      stable
1297 x86-linux    prefix/linux/x86            exp
1298 .fi
1299 .TP
1300 .BR repo_name
1301 The first line of the file should define a unique repository name. The name
1302 may contain any of the characters [A\-Za\-z0\-9_\-]. It must not begin with a
1303 hyphen. If the repo\-name attribute is specified in layout.conf, then that
1304 setting will take precedence.
1305 .TP
1306 .BR thirdpartymirrors
1307 Controls the mapping of mirror:// style URIs to actual lists of
1308 mirrors.  Keeps us from overloading a single server.
1309
1310 .I Format:
1311 .nf
1312 \- comments begin with # (no inline comments)
1313 \- mirror type followed by a list of hosts
1314 .fi
1315
1316 .I Example:
1317 .nf
1318 sourceforge http://aleron.dl.sourceforge.net/sourceforge \
1319 http://unc.dl.sourceforge.net/sourceforge
1320
1321 gentoo http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ \
1322 ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles
1323
1324 kernel http://www.kernel.org/pub http://www.us.kernel.org/pub
1325 .fi
1326 .TP
1327 .BR use.desc
1328 All global USE flags must be listed here with a description of what they do.
1329
1330 .I Format:
1331 .nf
1332 \- comments begin with # (no inline comments)
1333 \- use flag \- some description
1334 .fi
1335
1336 .I Example:
1337 .nf
1338 3dfx \- Adds support for 3dfx video cards
1339 acl \- Adds support for Access Control Lists
1340 doc \- Adds extra documentation
1341 .fi
1342 .TP
1343 .BR use.local.desc
1344 All local USE flags are listed here along with the package and a
1345 description. This file is automatically generated from the
1346 metadata.xml files that are included with each individual package.
1347 Refer to GLEP 56 for further information:
1348 \fIhttp://www.gentoo.org/proj/en/glep/glep-0056.html\fR.
1349
1350 .nf
1351 .I Format:
1352 \- comments begin with # (no inline comments)
1353 \- package:use flag \- description
1354
1355 .I Example:
1356 app\-editors/nano:justify \- Toggles the justify option
1357 dev\-libs/DirectFB:fusion \- Adds Multi Application support
1358 games\-emulation/xmess:net \- Adds network support
1359 .fi
1360 .RE
1361 .TP
1362 .BR /usr/share/portage/config/
1363 .RS
1364 .TP
1365 .BR make.globals
1366 The global default settings for Portage.  This comes from the portage package
1367 itself.  Settings in \fBmake.conf\fR or \fBpackage.env\fR override values set
1368 here. The format is described extensively in \fBmake.conf\fR(5).
1369 .TP
1370 .BR repos.conf
1371 The default configuration of repositories for Portage.  This comes from
1372 the portage package itself.  Settings in \fB/etc/portage/repos.conf\fR
1373 override values set here. The format is described extensively in section
1374 for \fB/etc/portage/repos.conf\fR.
1375 .RE
1376 .TP
1377 .BR /var/cache/edb/
1378 .RS
1379 This directory is used to store internal portage cache files.  The names and
1380 purpose of these files are not documented on purpose so as to keep down bitrot
1381 as internals change.  If you aren't working on portage internally, then the
1382 details most likely do not matter to you.
1383
1384 This entire directory can be safely deleted.  It is highly recommended you do
1385 not do this however as it can be a time consuming process to generate them all
1386 again.
1387 .RE
1388 .TP
1389 .BR /var/db/pkg/
1390 .RS
1391 All installed package information is recorded here.  If portage thinks you have
1392 a package installed, it is usually because it is listed here.
1393
1394 The format follows somewhat closely that of the portage tree.  There is a
1395 directory for each category and a package-version subdirectory for each package
1396 you have installed.
1397
1398 Inside each package directory are misc files that describe the installed
1399 contents of the package as well as build time information (so that the package
1400 can be unmerged without needing the portage tree).
1401
1402 The exact file contents and format are not described here again so that things
1403 can be changed quickly.  Generally though there is one file per environment
1404 variable that "matters" (like CFLAGS) with the contents stored inside of it.
1405 Another common file is the CONTENTS file which lists the path and hashes of
1406 all objects that the package installed onto your system.
1407 .RE
1408 .TP
1409 .BR /var/lib/portage/
1410 .RS
1411 .TP
1412 .BR config
1413 Hashes which are used to determine whether files in config protected
1414 directories have been modified since being installed.  Files which have not
1415 been modified will automatically be unmerged.
1416 .TP
1417 .BR world
1418 Every time you emerge a package, the package that you requested is
1419 recorded here.  Then when you run `emerge world \-up`, the list of
1420 packages is read from this file.  Note that this does not mean that the
1421 packages that were installed as dependencies are listed here.  For
1422 example, if you run `emerge mod_wsgi` and you do not have apache
1423 already, then "www\-apache/mod_wsgi" is recorded in the world file but
1424 "www\-servers/apache" is not.  For more information, review \fBemerge\fR(1).
1425
1426 .I Format:
1427 .nf
1428 \- one DEPEND atom base per line
1429 .fi
1430
1431 .I Example:
1432 .nf
1433 games\-misc/fortune\-mod\-gentoo\-dev
1434 dev\-libs/uclibc
1435 app\-cdr/cdemu
1436 .fi
1437 .TP
1438 .BR world_sets
1439 This is like the world file but instead of package atoms it contains
1440 packages sets which always begin with the \fB@\fR character. Use
1441 \fB/etc/portage/sets/\fR to define user package sets.
1442
1443 .I Example:
1444 .nf
1445 @kde
1446 .fi
1447 .RE
1448 .SH "REPORTING BUGS"
1449 Please report bugs via http://bugs.gentoo.org/
1450 .SH "AUTHORS"
1451 .nf
1452 Marius Mauch <genone@gentoo.org>
1453 Mike Frysinger <vapier@gentoo.org>
1454 Drake Wyrm <wyrm@haell.com>
1455 Arfrever Frehtes Taifersar Arahesis <arfrever@apache.org>
1456 .fi
1457 .SH "SEE ALSO"
1458 .BR emerge (1),
1459 .BR ebuild (1),
1460 .BR ebuild (5),
1461 .BR make.conf (5),
1462 .BR color.map (5)