diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-09-30 15:13:20 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-30 15:36:32 -0700 |
commit | 392c4ba059f14455dbc824388c30f619ed78adbe (patch) | |
tree | e6b402a1fbfbd49cb4404770475a412c1a0161e4 /pym | |
parent | 90cfde34e4e74d4c11e0eaa053234e9a7b44ce53 (diff) | |
download | portage-392c4ba059f14455dbc824388c30f619ed78adbe.tar.gz portage-392c4ba059f14455dbc824388c30f619ed78adbe.tar.bz2 portage-392c4ba059f14455dbc824388c30f619ed78adbe.zip |
Make portdbapi.porttrees mutable once again.
The portdbapi.porttrees needs to be mutable for repoman, probably
some external api consumers. It's somewhat invasive to modify it,
but it's also quite useful.
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/dbapi/porttree.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index 8d71b2325..7cee4cfa1 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -65,10 +65,6 @@ class portdbapi(dbapi): return self.settings.categories @property - def porttrees(self): - return list(reversed(self.settings.repositories.repoLocationList())) - - @property def porttree_root(self): return self.settings.repositories.mainRepoLocation() @@ -107,6 +103,7 @@ class portdbapi(dbapi): os.environ["SANDBOX_WRITE"] = \ ":".join(filter(None, sandbox_write)) + self.porttrees = list(reversed(self.settings.repositories.repoLocationList())) self.eclassdb = eclass_cache.cache(self.settings.repositories.mainRepoLocation()) # This is used as sanity check for aux_get(). If there is no @@ -166,7 +163,7 @@ class portdbapi(dbapi): filtered_auxdbkeys.sort() from portage.cache import metadata_overlay, volatile if not depcachedir_w_ok: - for x in reversed(self.repositories.repoLocationList()): + for x in self.porttrees: db_ro = self.auxdbmodule(self.depcachedir, x, filtered_auxdbkeys, gid=portage_gid, readonly=True) self.auxdb[x] = metadata_overlay.database( @@ -174,7 +171,7 @@ class portdbapi(dbapi): gid=portage_gid, db_rw=volatile.database, db_ro=db_ro) else: - for x in reversed(self.repositories.repoLocationList()): + for x in self.porttrees: if x in self.auxdb: continue # location, label, auxdbkeys @@ -183,7 +180,7 @@ class portdbapi(dbapi): if self.auxdbmodule is metadata_overlay.database: self.auxdb[x].db_ro.ec = self._repo_info[x].eclass_db if "metadata-transfer" not in self.settings.features: - for x in reversed(self.repositories.repoLocationList()): + for x in self.porttrees: if x in self._pregen_auxdb: continue if os.path.isdir(os.path.join(x, "metadata", "cache")): @@ -229,7 +226,7 @@ class portdbapi(dbapi): x.sync() def findLicensePath(self, license_name): - for x in reversed(self.repositories.repoLocationList()): + for x in porttrees: license_path = os.path.join(x, "licenses", license_name) if os.access(license_path, os.R_OK): return license_path @@ -315,7 +312,7 @@ class portdbapi(dbapi): if mytree: mytrees = [mytree] else: - mytrees = reversed(self.repositories.repoLocationList()) + mytrees = self.porttrees relative_path = mysplit[0] + _os.sep + psplit[0] + _os.sep + \ mysplit[1] + ".ebuild" @@ -681,7 +678,7 @@ class portdbapi(dbapi): if categories is None: categories = self.settings.categories if trees is None: - trees = reversed(self.repositories.repoLocationList()) + trees = self.porttrees for x in categories: for oroot in trees: for y in listdir(oroot+"/"+x, EmptyOnError=1, ignorecvs=1, dirsonly=1): @@ -714,7 +711,7 @@ class portdbapi(dbapi): # assume it's iterable mytrees = mytree else: - mytrees = reversed(self.repositories.repoLocationList()) + mytrees = self.porttrees for oroot in mytrees: try: file_list = os.listdir(os.path.join(oroot, mycp)) |