ignored.
</para>
<para>
- At first it looks for the default configuration in
- <filename>/usr/share/portage/config</filename>.
+ At first it reads the default configuration from all of the files
+ located in <filename>/usr/share/portage/config/sets</filename>
+ directory.
The default config includes sets that are expected on all systems and
often critical for normal operation, like <varname>world</varname>,
<varname>system</varname> or <varname>security</varname>.
encompasses both the \fBselected\fR and \fBsystem\fR sets. [See
\fBFILES\fR below for more information.] Other sets can exist depending
on the current configuration. The default set configuration is located
-in \fB/usr/share/portage/config/sets.conf\fR. Note that a \fIset\fR
+in the \fB/usr/share/portage/config/sets\fR directory. Note that a \fIset\fR
is generally used in conjunction with \fB\-\-update\fR. When used as
arguments to \fBemerge\fR sets have to be prefixed with \fB@\fR to be
recognized. Use the \fB\-\-list\-sets\fR action to display a list of
Here is a common list of files you will probably be interested in. For a
complete listing, please refer to the \fBportage\fR(5) man page.
.TP
-.B /usr/share/portage/config/sets.conf
+.B /usr/share/portage/config/sets/
Contains the default set configuration.
.TP
.B /var/lib/portage/world
if root_config.sets:
msg.append(" sets defined: %s" % ", ".join(root_config.sets))
msg.append(" This usually means that '%s'" % \
- (os.path.join(portage.const.GLOBAL_CONFIG_PATH, "sets.conf"),))
+ (os.path.join(portage.const.GLOBAL_CONFIG_PATH, "sets/portage.conf"),))
msg.append(" is missing or corrupt.")
msg.append(" Falling back to default world and system set configuration!!!")
for line in msg:
return myatoms
def load_default_config(settings, trees):
- setconfigpaths = [os.path.join(GLOBAL_CONFIG_PATH, "sets.conf")]
- setconfigpaths.append(os.path.join(settings["PORTDIR"], "sets.conf"))
- setconfigpaths += [os.path.join(x, "sets.conf") for x in settings["PORTDIR_OVERLAY"].split()]
- setconfigpaths.append(os.path.join(settings["PORTAGE_CONFIGROOT"],
- USER_CONFIG_PATH, "sets.conf"))
- return SetConfig(setconfigpaths, settings, trees)
+ def _getfiles():
+ for path, dirs, files in os.walk(os.path.join(GLOBAL_CONFIG_PATH, "sets")):
+ for f in files:
+ yield os.path.join(path, f)
+
+ dbapi = trees["porttree"].dbapi
+ for repo in dbapi.getRepositories():
+ path = dbapi.getRepositoryPath(repo)
+ yield os.path.join(path, "sets.conf")
+
+ yield os.path.join(settings["PORTAGE_CONFIGROOT"],
+ USER_CONFIG_PATH, "sets.conf")
+
+ return SetConfig(_getfiles(), settings, trees)