/etc/portage/repos.conf

Article description::specifies the location and settings for the repositories currently configured with [[Portage]]. This directory contains files that configure the Gentoo ebuild repository and any additional ebuild repositories.

If does not exist, defaults from  will be used, (unless  is a file with a valid "[gentoo]" section, as used to be the default). If some necessary settings, such as sync-uri are omitted from, values from will be used. Some values, such as priority, will be automatically added by Portage even if they are not present in any configuration file.

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.


 * Options to be passed to when first syncing.
 * Options to be passed to when pulling on sync.
 * 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.
 * Options to be passed to when pulling on sync.
 * 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]

Manage repositories
Add, disable, or remove ebuild repositories using eselect repository, which also provides other functionality.

It is also possible to add a repository by manually creating files in, see the appropriate section of the Handbook (other reference).

Files in can be edited with a text editor to change the configuration options for an ebuild repository.

List repositories
To show all repositories configured with portage, run portageq:

Ebuild 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 explicitly set, default to 0 - except the Gentoo ebuild repository, which defaults to -1000.

External resources

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