From f16aee82cefa95e9903fa46f448d30f6d4350f64 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 7 Apr 2009 01:27:54 +0000 Subject: Add support to repoman for using layout.conf to control which repositories are used to satisfy dependencies. Thanks to Alistair Bush for the initial patch. See the "QA Overlay Layout support" thread on the gentoo-dev mailing list for more information: http://archives.gentoo.org/gentoo-dev/msg_33c61550b4ed2b7b25dd5a4110e1ec81.xml svn path=/main/trunk/; revision=13295 --- pym/_emerge/__init__.py | 5 ++++- pym/portage/dbapi/porttree.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 772a97de4..5ac88b11d 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -770,7 +770,10 @@ class RootConfig(object): self.iuse_implicit = tuple(sorted(settings._get_implicit_iuse())) self.root = self.settings["ROOT"] self.setconfig = setconfig - self.sets = self.setconfig.getSets() + if setconfig is None: + self.sets = {} + else: + self.sets = self.setconfig.getSets() self.visible_pkgs = PackageVirtualDbapi(self.settings) def create_world_atom(pkg, args_set, root_config): diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 29f1fe996..3cd8b2acb 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -190,8 +190,14 @@ class portdbapi(dbapi): level=logging.ERROR, noiselevel=-1) else: porttrees.append(master_path) + if not porttrees: - porttrees.append(porttree_root) + # Make PORTDIR the default master, but only if this + # repo doesn't provide profiles.desc itself. + profiles_desc = os.path.join(path, 'profiles', 'profiles.desc') + if not os.path.exists(profiles_desc): + porttrees.append(porttree_root) + porttrees.append(path) eclass_db = None @@ -227,11 +233,15 @@ class portdbapi(dbapi): db_ro=db_ro) else: for x in self.porttrees: + if x in self.auxdb: + continue # location, label, auxdbkeys self.auxdb[x] = self.auxdbmodule( self.depcachedir, x, filtered_auxdbkeys, gid=portage_gid) if "metadata-transfer" not in self.mysettings.features: for x in self.porttrees: + if x in self._pregen_auxdb: + continue if os.path.isdir(os.path.join(x, "metadata", "cache")): self._pregen_auxdb[x] = self.metadbmodule( x, "metadata/cache", filtered_auxdbkeys, readonly=True) -- cgit v1.2.3-1-g7c22