diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-11-14 07:35:29 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-11-14 07:35:29 +0000 |
commit | 3ba185018aebd597f2d8c92da6cbeb0d6aac52ad (patch) | |
tree | 9f74af3f83091ae944aa5c41eab1f39ae2295892 | |
parent | e9a521c075def390739ee39bc464461a123b715a (diff) | |
download | portage-3ba185018aebd597f2d8c92da6cbeb0d6aac52ad.tar.gz portage-3ba185018aebd597f2d8c92da6cbeb0d6aac52ad.tar.bz2 portage-3ba185018aebd597f2d8c92da6cbeb0d6aac52ad.zip |
Make fakedbapi support generic metadata instead of just slots.
svn path=/main/trunk/; revision=5042
-rwxr-xr-x | bin/emerge | 6 | ||||
-rw-r--r-- | pym/portage.py | 18 |
2 files changed, 12 insertions, 12 deletions
diff --git a/bin/emerge b/bin/emerge index 8f37ac580..7cd5b58ef 100755 --- a/bin/emerge +++ b/bin/emerge @@ -745,7 +745,7 @@ class depgraph: if "empty" not in self.myparams or self.target_root != "/": for pkg in vardb.cpv_all(): myslot = vardb.aux_get(pkg, ["SLOT"])[0] - fakedb.cpv_inject(pkg, myslot=myslot) + fakedb.cpv_inject(pkg, metadata={"SLOT":myslot}) if self.target_root != "/": self.mydbapi[self.target_root] = \ portage.fakedbapi(settings=settings) @@ -754,7 +754,7 @@ class depgraph: if "empty" not in self.myparams: for pkg in vardb.cpv_all(): myslot = vardb.aux_get(pkg, ["SLOT"])[0] - fakedb.cpv_inject(pkg, myslot=myslot) + fakedb.cpv_inject(pkg, metadata={"SLOT":myslot}) if "--usepkg" in self.myopts: trees["/"]["bintree"].populate( "--getbinpkg" in self.myopts, "--getbinpkgonly" in self.myopts) @@ -887,7 +887,7 @@ class depgraph: if addme: myslot = mydbapi.aux_get(mykey, ["SLOT"])[0] - self.mydbapi[myroot].cpv_inject(mykey, myslot=myslot) + self.mydbapi[myroot].cpv_inject(mykey, metadata={"SLOT":myslot}) """ This section determines whether we go deeper into dependencies or not. We want to go deeper on a few occasions: diff --git a/pym/portage.py b/pym/portage.py index 23f51c50d..44e99d7eb 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -4236,10 +4236,13 @@ class fakedbapi(dbapi): def cpv_all(self): return self.cpvdict.keys() - def cpv_inject(self, mycpv, myslot=None): + def cpv_inject(self, mycpv, metadata=None): """Adds a cpv from the list of available packages.""" mycp=cpv_getkey(mycpv) - self.cpvdict[mycpv] = myslot + self.cpvdict[mycpv] = metadata + myslot = None + if metadata: + myslot = metadata.get("SLOT", None) if myslot and mycp in self.cpdict: # If necessary, remove another package in the same SLOT. for cpv in self.cpdict[mycp]: @@ -4276,13 +4279,10 @@ class fakedbapi(dbapi): def aux_get(self, mycpv, wants): if not self.cpv_exists(mycpv): raise KeyError(mycpv) - values = [] - for x in wants: - if x == "SLOT": - values.append(self.cpvdict[mycpv]) - else: - values.append("") - return values + metadata = self.cpvdict[mycpv] + if not metadata: + return ["" for x in wants] + return [metadata.get(x, "") for x in wants] class bindbapi(fakedbapi): def __init__(self, mybintree=None, settings=None): |