diff options
-rwxr-xr-x | bin/emerge | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge index 90c1778b1..d2d3e768e 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1307,6 +1307,7 @@ class depgraph: 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") @@ -1328,10 +1329,20 @@ class depgraph: 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 = [] |