diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-10-05 06:50:05 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-10-05 06:50:05 +0000 |
commit | 6516b0319d62701bd17f7c78ebb677b7f0508f26 (patch) | |
tree | 79b2139b9a34a8a6f7958629dd7dc51e233b8785 | |
parent | 02bc22df9ab2f5b40547d3aa4362247deeb98d80 (diff) | |
download | portage-6516b0319d62701bd17f7c78ebb677b7f0508f26.tar.gz portage-6516b0319d62701bd17f7c78ebb677b7f0508f26.tar.bz2 portage-6516b0319d62701bd17f7c78ebb677b7f0508f26.zip |
For bug #4698, use slot deps to ensure that all installed slots are automatically updated.
svn path=/main/trunk/; revision=4595
-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 = [] |