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