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