return retlist
def xcreate(self,mode="system"):
+ vardb = self.trees[self.target_root]["vartree"].dbapi
world_problems = False
if mode=="system":
mylist = getlist(self.settings, "system")
newlist = []
for atom in mylist:
- if portage.dep_getkey(atom).split("/")[-1] == "portage":
+ mykey = portage.dep_getkey(atom)
+ if portage.catsplit(mykey)[-1] == "portage":
newlist.insert(0, atom)
else:
newlist.append(atom)
+ """Make sure all installed slots are updated when possible.
+ Do this with --emptytree also, to ensure that all slots are
+ remerged."""
+ myslots = set()
+ for cpv in vardb.match(mykey):
+ myslots.add(vardb.aux_get(cpv, ["SLOT"])[0])
+ if len(myslots) > 1:
+ for myslot in myslots:
+ newlist.append("%s:%s" % (mykey, myslot))
mylist = newlist
missing_atoms = []