/etc/portage/repos.conf

Article description::specifies the location and settings for the repositories used by the current system. It can either be a single file or directory of one or more files. This is the configuration file that sets up the Gentoo ebuild repository and any additional ebuild repositories, or custom ebuild repositories.

Format

 * File names can be arbitrary strings of characters with or without suffix, except for expected by.
 * Comments begin with  (no inline comments).
 * Configuration of each repository is specified in a separate file or section starting with . It is recommended that   is the same as the name given in the repo_name file.
 * Attributes are specified in  format.

Attributes supported in the default section

 * Specifies main repository.
 * Specifies main repository.


 * Makes all repositories inherit eclasses from the specified repositories. Setting this attribute is generally not recommended since resulting changes in eclass inheritance may trigger performance issues due to invalidation of metadata cache.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.


 * Specifies names of attributes, which should be forcefully respected by, , and . Valid values: ,  , and.
 * Specifies names of attributes, which should be forcefully respected by, , and . Valid values: ,  , and.

Attributes supported in sections of repositories

 * Specifies aliases of given repository. Setting this attribute is generally not recommended since resulting changes in eclass inheritance may trigger performance issues due to invalidation of metadata cache.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.


 * This setting determines if the repo will be synced during or  runs. This allows for repositories to be synced only when desired via . Valid values: ,  ,  ,  . If unset, the repo will be treated as set  ,.
 * This setting determines if the repo will be synced during or  runs. This allows for repositories to be synced only when desired via . Valid values: ,  ,  ,  . If unset, the repo will be treated as set  ,.


 * Makes all repositories inherit eclasses from specified repositories. Setting this attribute is generally not recommended since resulting changes in eclass inheritance may trigger performance issues due to invalidation of metadata cache.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.


 * Specifies names of attributes, which should be forcefully respected by, , and . Valid values: ,  , and.
 * Specifies names of attributes, which should be forcefully respected by, , and . Valid values: ,  , and.


 * Specifies location of given repository.
 * Specifies location of given repository.


 * Specifies master repositories of given repository. Setting this attribute is generally not recommended since resulting changes in eclass inheritance may trigger performance issues due to invalidation of metadata cache.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.
 * The, and  tools ignore this parameter by default as their operations are generally not site-specific (their operations are focused on the global, non-customized aspects of portage and the Gentoo repository). This behavior can be overruled by setting.


 * Specifies priority of given repository.
 * Specifies priority of given repository.


 * Specifies CVS repository.
 * Specifies CVS repository.


 * Specifies clone  depth to use for DVCS repositories. Defaults to   (only the newest commit). If set to , the depth is unlimited.
 * Specifies clone  depth to use for DVCS repositories. Defaults to   (only the newest commit). If set to , the depth is unlimited.


 * Specifies sync depth to use for DVCS repositories. If set to, the depth is unlimited. Defaults to.
 * Specifies sync depth to use for DVCS repositories. If set to, the depth is unlimited. Defaults to.


 * Require the top commit in the repository to contain a good OpenPGP signature. Defaults to false.
 * Require the top commit in the repository to contain a good OpenPGP signature. Defaults to false.


 * Specifies type of synchronization performed by . Valid non-empty values:,  ,   (>=portage-3.0.8),  ,  ,   (<=portage-2.2.18),   (>=portage-2.2.19). This attribute can be set to empty value to disable synchronization of given repository. Empty value is default.
 * Specifies type of synchronization performed by . Valid non-empty values:,  ,   (>=portage-3.0.8),  ,  ,   (<=portage-2.2.18),   (>=portage-2.2.19). This attribute can be set to empty value to disable synchronization of given repository. Empty value is default.


 * Specifies umask used to synchronize the repository. Takes an octal permission mask, e.g..
 * Specifies umask used to synchronize the repository. Takes an octal permission mask, e.g..


 * Specifies URI of repository used for synchronization performed by . This attribute can be set to empty value to disable synchronization of given repository. Empty value is default.
 * Specifies URI of repository used for synchronization performed by . This attribute can be set to empty value to disable synchronization of given repository. Empty value is default.

Syntax: cvs: [cvs://]:access_method:[username@]hostname[:port]:/path git: (git|git+ssh|http|https)://[username@]hostname[:port]/path rsync: (rsync|ssh)://[username@]hostname[:port]/(module|path)
 * Specifies the credentials used to perform the synchronization. If only user is provided, the primary group of the user will be used. If only group is  provided, the current user will be preserved and only the group id will be changed. This key takes precedence over  . If user or group id is provided, Portage no longer uses owner of the directory.
 * Specifies the credentials used to perform the synchronization. If only user is provided, the primary group of the user will be used. If only group is  provided, the current user will be preserved and only the group id will be changed. This key takes precedence over  . If user or group id is provided, Portage no longer uses owner of the directory.

Syntax: [user][:group]

Usage
If the file doesn't exist, create it:

(The Handbook however prefers using as a directory containing a set of files, however it can a file itself as well.)

Add ebuild repositories using eselect repository, e.g. the brother-overlay ebuild repository:

Adding a custom repository is described in the Handbook.

Verify the setting using portageq

References in the output to Gentoo main repository come from the defaults in.

The file might then look like

can also be used as an alternative to mirrorselect --rsync for setting a Gentoo rsync mirror.

Manipulation of other attributes than,   or   seems not supported by eselect repository but could be done manually when needed.

For further options see.

Setting repository priority
To set the priority of repositories, manually edit the relevant repos.conf section and set priority = to the desired value. For example:

Repositories that do not have a priority set default to 0.

External resources

 * Portage Sync news announcement (2015-02-04)
 * rsync.gentoo.org rsync modules: gentoo-repo-changelog added, gentoo-x86-portage & gentoo-sec discontinued.