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