All files in the make.profile directory may be tweaked via parent profiles when using cascading profiles. For more info, please see http://www.gentoo.org/proj/en/releng/docs/cascading-profiles.xml
deprecated eapi make.defaults packages packages.build package.accept_keywords package.keywords package.mask package.provided package.unmask package.use package.use.force package.use.mask package.use.stable.force package.use.stable.mask parent profile.bashrc use.force use.mask use.stable.mask use.stable.force virtuals
bashrc categories color.map license_groups make.conf(5) mirrors modules package.accept_keywords package.accept_restrict package.env package.keywords package.license package.mask package.properties package.unmask package.use repos.conf
layout.conf
arch.list categories info_pkgs info_vars license_groups make.defaults package.mask package.unmask package.use package.use.force package.use.mask package.use.stable.force package.use.stable.mask profiles.desc repo_name thirdpartymirrors use.desc use.force use.local.desc use.mask use.stable.mask use.stable.force
make.globals
config world world_sets
Extended Atom Syntax
The following atom syntax extensions are only supported in user
configuration files and command line arguments for programs such as
emerge(1):
Examples:
# match sed from the 'gentoo' repository sys-apps/sed::gentoo # match kdelibs from the 'kde-testing' repository kde-base/kdelibs::kde-testing # match empathy from the 'gnome' repository net-im/empathy::gnome
Examples:
# match anything with a version containing 9999, which can be used in # package.mask to prevent emerge --autounmask from selecting live ebuilds =*/*-*9999* # match anything with a version containing _beta =*/*-*_beta* # match anything from the 'sys-apps' category sys-apps/* # match packages named 'zlib' from any category */zlib # match any package from a category that begins with 'net-' net-*/* # match any package name from any category */* # match any package from the 'gentoo' repository */*::gentoo
Any file in this directory, directories of other profiles or top-level "profiles" directory that begins with "package." or "use." can be more than just a flat file. If it is a directory, then all the files in that directory will be sorted in ascending alphabetical order by file name and summed together as if it were a single file. Note that this behavior is only supported since portage-2.1.6.7, and it is not included in PMS at this time.
Example:
${PORTDIR}/profiles/package.mask/removals
${PORTDIR}/profiles/package.mask/testing
Example:
default-linux/x86/2005.0 # emerge -n '>=sys-apps/portage-2.0.51' # rm -f /etc/portage/make.profile # ln -s /usr/portage/profiles/default-linux/alpha/2005.0 /etc/portage/make.profile
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line - packages to be added to the system set begin with a * - atoms without * only appear for legacy reasonsNote: In a cascading profile setup, you can remove packages in children profiles which were added by parent profiles by prefixing the atom with a '-'.
Example:
# i am a comment ! # pull in a version of glibc less than 2.3 *<sys-libs/glibc-2.3 # pull in any version of bash *app-shells/bash # pull in a version of readline earlier than 4.2 *<sys-libs/readline-4.2
For example, if you manage your own copy of a 2.6 kernel, then you can tell portage that 'sys-kernel/development-sources-2.6.7' is already taken care of and it should get off your back about it.
Portage will not attempt to update a package that is listed here unless another package explicitly requires a version that is newer than what has been listed. Dependencies that are satisfied by package.provided entries may cause installed packages satisfying equivalent dependencies to be removed by emerge(1) --depclean actions (see the ACTIONS section of the emerge(1) man page for more information).
Virtual packages (virtual/*) should not be specified in package.provided. Depending on the type of virtual, it may be necessary to add an entry to the virtuals file and/or add a package that satisfies a virtual to package.provided.
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line - relational operators are not allowed - must include a version
Example:
# you take care of the kernel sys-kernel/development-sources-2.6.7 # you installed your own special copy of QT x11-libs/qt-3.3.0 # you have modular X but packages want monolithic x11-base/xorg-x11-6.8
Note: In a cascading profile setup, you can remove USE flags in children profiles which were added by parent profiles by prefixing the flag with a '-'.
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line with space-delimited USE flags
Example:
# force docs for GTK 2.x =x11-libs/gtk+-2* doc # unforce mysql support for QT x11-libs/qt -mysql
Note: In a cascading profile setup, you can remove USE flags in children profiles which were added by parent profiles by prefixing the flag with a '-'.
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line with space-delimited USE flags
Example:
# mask docs for GTK 2.x =x11-libs/gtk+-2* doc # unmask mysql support for QT x11-libs/qt -mysql
When multiple parent profiles are specified, they are inherited in order from the first line to the last.
If layout.conf is new enough, you can also use the <repo>:<path> syntax. The <repo> is the same string as is stored in the repo_name file (or omitted to refer to the current repo), and <path> is a subdir starting at profiles/.
Note: In a cascading profile setup, you can remove USE flags in children profiles which were added by parent profiles by prefixing the flag with a '-'.
Format:
- comments begin with # (no inline comments) - one USE flag per line
Note: In a cascading profile setup, you can remove USE flags in children profiles which were added by parent profiles by prefixing the flag with a '-'.
Format:
- comments begin with # (no inline comments) - one USE flag per line
Example:
# mask doc doc # unmask mysql -mysql
Format:
- comments begin with # (no inline comments) - one virtual and DEPEND atom base pair per line
Example:
# use net-mail/ssmtp as the default mta virtual/mta net-mail/ssmtp # use app-dicts/aspell-en as the default dictionary virtual/aspell-dict app-dicts/aspell-en
Example:
/etc/portage/package.accept_keywords/common /etc/portage/package.accept_keywords/e17 /etc/portage/package.accept_keywords/kde
Additional package-specific bashrc files can be created in /etc/portage/env.
Format:
- one category per line
Example:
app-hackers media-other
Format:
- comments begin with # (no inline comments) - mirror type followed by a list of hosts
Example:
# local private mirrors used only by my company local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles # people in japan would want to use the japanese mirror first sourceforge http://keihanna.dl.sourceforge.net/sourceforge # people in tawain would want to use the local gnu mirror first gnu ftp://ftp.nctu.edu.tw/UNIX/gnu/
Example:
portdbapi.auxdbmodule = portage.cache.sqlite.database
After changing the portdbapi.auxdbmodule setting, it may be necessary to transfer or regenerate metadata cache. Users of the rsync tree need to run `emerge --metadata` if they have enabled FEATURES="metadata-transfer" in make.conf(5). In order to regenerate metadata for repositories listed in PORTDIR_OVERLAY or a cvs tree, run `emerge --regen` (see emerge(1)). If you use something like the sqlite module and want to keep all metadata in that format alone (useful for querying), enable FEATURES="metadata-transfer" in make.conf(5).
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by additional KEYWORDS - lines without any KEYWORDS imply unstable host arch Example: # always use unstable libgd media-libs/libgd ~x86 # only use stable mplayer media-video/mplayer -~x86 # always use unstable netcat net-analyzer/netcat
Note: In addition to the normal values from ACCEPT_KEYWORDS package.keywords supports three special tokens:
* package is visible if it is stable on any architecture ~* package is visible if it is in testing on any architecture ** package is always visible (KEYWORDS are ignored completely)
Additional Note: If you encounter the -* KEYWORD, this indicates that the package is known to be broken on all systems which are not otherwise listed in KEYWORDS. For example, a binary only package which is built for x86 will look like:
games-fps/quake3-demo-1.11.ebuild:KEYWORDS="-* x86"
If you wish to accept this package anyways, then use one of the other keywords in your package.accept_keywords like this:
games-fps/quake3-demo x86
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by additional RESTRICT tokens
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by name(s) of environment file(s)
Example:
# use environment variables from /etc/portage/env/glibc.conf for the glibc package sys-libs/glibc glibc.conf
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by additional licenses or groups
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line
Example:
# mask out versions 1.0.4496 of the nvidia # drivers and later >=media-video/nvidia-kernel-1.0.4496 >=media-video/nvidia-glx-1.0.4496
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by additional properties
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line with space-delimited USE flags
Example:
# turn on docs for GTK 2.x =x11-libs/gtk+-2* doc # disable mysql support for QT x11-libs/qt -mysql
Example:
[DEFAULT] # make gentoo the main repo (aka PORTDIR), which makes it the default master # repository for repostories that do not specify masters main-repo = gentoo # make all repositories inherit eclasses from the java-overlay and # java-experimental repositories, with eclasses from java-experimental # taking precedence over those from java-overlay eclass-overrides = java-overlay java-experimental [gentoo] # repos with higher priorities are preferred when ebuilds with equal versions # are found in multiple repos (see the `emerge --info --verbose` repo # display for a listing of repos and their corresponding priorities). priority = 9999 # disable all eclass overrides for ebuilds from the gentoo repository eclass-overrides = # when processing metadata/layout.conf from other repositories, substitute # 'gentoo' in place of references to repositories named 'foo' and 'bar', # and discard the 'baz' alias contained in gentoo's layout.conf aliases = foo bar -baz [kde-testing] # override the metadata/layout.conf masters setting from the kde-testing repo masters = gentoo kde [python] # override the metadata/layout.conf masters setting from the python repo, # so that settings won't be inherited from those masters, and so that # those master repos won't be required as dependencies (the user must # ensure that any required dependencies such as eclasses are satisfied) masters =
Portage will source all of these bashrc files after /etc/portage/bashrc in the following order:
Also see /var/lib/portage/world_sets and the emerge(1) --list-sets option.
Example:
# Specify the repository name (if there is a different setting in # profiles/repo_name, then this layout.conf setting will take precedence) repo-name = foo-overlay # eclasses provided by java-overlay take precedence over identically named # eclasses that are provided by gentoo masters = gentoo java-overlay # indicate that this repo can be used as a substitute for foo-overlay aliases = foo-overlay # indicate that ebuilds with the specified EAPIs are banned eapis-banned = 0 1 # indicate that ebuilds with the specified EAPIs are deprecated eapis-deprecated = 2 3 # sign commits in this repo, which requires Git >=1.7.9, and # key configured by `git config user.signingkey key_id` sign-commits = true # do not sign Manifest files in this repo sign-manifests = false # Manifest files only contain DIST entries thin-manifests = true # indicate that this repo requires manifests for each package, and is # considered a failure if a manifest file is missing/incorrect use-manifests = strict # customize the set of hashes generated for Manifest entries manifest-hashes = SHA256 SHA512 WHIRLPOOL # indicate that this repo enables repoman's --echangelog=y option automatically update-changelog = true # indicate that this repo contains both md5-dict and pms cache formats, # which may be generated by egencache(1) cache-formats = md5-dict pms # indicate that this repo contains profiles that may use directories for # package.mask, package.provided, package.use, package.use.force, # package.use.mask, package.use.stable.force, package.use.stable.mask, # use.force, use.mask, use.stable.force, and use.stable.mask. # profile-formats = portage-1 # indicate that paths such as 'gentoo:targets/desktop' or ':targets/desktop' in # profile parent files can be used to express paths relative to the root # 'profiles' directory of a repository (when the repo name is omitted before # the colon, it refers to the current repository the parent file is inside) profile-formats = portage-2
Format:
- one KEYWORD per line
Example:
x86 ppc sparc
Format:
- one category per line
Example:
app-admin dev-lang games-strategy sys-kernel
Format:
- comments begin with # (no inline comments) - one group name, followed by list of licenses and nested groups - nested groups are prefixed with the '@' symbol
Example:
# The FSF-APPROVED group includes the entire GPL-COMPATIBLE group and more. FSF-APPROVED @GPL-COMPATIBLE Apache-1.1 BSD-4 MPL-1.0 MPL-1.1 # The GPL-COMPATIBLE group includes all licenses compatible with the GNU GPL. GPL-COMPATIBLE Apache-2.0 BSD BSD-2 GPL-2 GPL-3 LGPL-2.1 LGPL-3 X11 ZLIB
Format:
- comment lines begin with # (no inline comments) - one DEPEND atom per line followed by additional KEYWORDS
Example:
# add stable keyword to libgd media-libs/libgd x86 # remove stable keyword from mplayer and add unstable keyword media-video/mplayer -x86 ~x86 # remove all keywords from netcat net-analyzer/netcat -*
Format:
- comments begin with # (no inline comments) - one DEPEND atom per line
Example:
# masked for security reasons <sys-libs/zlib-1.1.4 # <caleb@gentoo.org> (10 Sep 2003) # new kde betas =kde-base/kde-3.2.0_beta1 =kde-base/kdeaccessibility-3.2.0_beta1
- comments begin with # (no inline comments) - one profile list per line in format: arch dir status - arch must be listed in arch.list - dir is relative to profiles.desc - status must be 'stable', 'dev', or 'exp'
Example:
alpha default/linux/alpha/10.0 stable m68k default/linux/m68k/10.0 dev x86 default/linux/x86/10.0 stable x86-linux prefix/linux/x86 exp
Format:
- comments begin with # (no inline comments) - mirror type followed by a list of hosts
Example:
sourceforge http://aleron.dl.sourceforge.net/sourceforge http://unc.dl.sourceforge.net/sourceforge gentoo http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles kernel http://www.kernel.org/pub http://www.us.kernel.org/pub
Format:
- comments begin with # (no inline comments) - use flag - some description
Example:
3dfx - Adds support for 3dfx video cards acl - Adds support for Access Control Lists doc - Adds extra documentation
Format: - comments begin with # (no inline comments) - package:use flag - description Example: app-editors/nano:justify - Toggles the justify option dev-libs/DirectFB:fusion - Adds Multi Application support games-emulation/xmess:net - Adds network support
This entire directory can be safely deleted. It is highly recommended you do not do this however as it can be a time consuming process to generate them all again.
The format follows somewhat closely that of the portage tree. There is a directory for each category and a package-version subdirectory for each package you have installed.
Inside each package directory are misc files that describe the installed contents of the package as well as build time information (so that the package can be unmerged without needing the portage tree).
The exact file contents and format are not described here again so that things can be changed quickly. Generally though there is one file per environment variable that "matters" (like CFLAGS) with the contents stored inside of it. Another common file is the CONTENTS file which lists the path and hashes of all objects that the package installed onto your system.
Format:
- one DEPEND atom base per line
Example:
games-misc/fortune-mod-gentoo-dev dev-libs/uclibc app-cdr/cdemu
Example:
@kde
Marius Mauch <genone@gentoo.org> Mike Frysinger <vapier@gentoo.org> Drake Wyrm <wyrm@haell.com> Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>