From addd9a9b6027260bfbde35efc5408b5efe5341d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 27 Jul 2010 09:31:47 +0200 Subject: Use a directory for the default set configuration. Expect /usr/share/portage/config/sets to be a directory containing any number of set configuration files. The default Portage sets.conf should be now installed as sets/portage.conf, and other ebuilds are free to install their own set configuration files there. --- pym/_emerge/main.py | 2 +- pym/portage/sets/__init__.py | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py index b553e15e3..e4449e805 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -1010,7 +1010,7 @@ def missing_sets_warning(root_config, missing_sets): 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: diff --git a/pym/portage/sets/__init__.py b/pym/portage/sets/__init__.py index fb87ce104..ab9869cee 100644 --- a/pym/portage/sets/__init__.py +++ b/pym/portage/sets/__init__.py @@ -176,9 +176,17 @@ class SetConfig(object): 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) -- cgit v1.2.3-1-g7c22