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)
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)
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:
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]:
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):