diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-01-17 02:31:56 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-01-17 02:31:56 +0000 |
commit | 88d7916055d59b40ad95027937e9d70b6c1880c4 (patch) | |
tree | 3fc2da53675cf9973b756ef28b55e6578fa6fcc5 | |
parent | fb0445ca2f93a9b049717def6e045272e1322935 (diff) | |
download | portage-88d7916055d59b40ad95027937e9d70b6c1880c4.tar.gz portage-88d7916055d59b40ad95027937e9d70b6c1880c4.tar.bz2 portage-88d7916055d59b40ad95027937e9d70b6c1880c4.zip |
Fix elimination of duplicate virtuals between the binpkg repo and installed packages.
svn path=/main/trunk/; revision=5684
-rw-r--r-- | pym/portage.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py index 31be26307..9c5277feb 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -3913,11 +3913,11 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/", match_atom = x if isblocker: match_atom = x[1:] - pkgs = [] + pkgs = {} for cpv in portdb.match(match_atom): # only use new-style matches if cpv.startswith("virtual/"): - pkgs.append((cpv, pkgsplit(cpv), portdb)) + pkgs[cpv] = (cpv, pkgsplit(cpv), portdb) if kwargs["use_binaries"] and "vartree" in trees[myroot]: vardb = trees[myroot]["vartree"].dbapi for cpv in vardb.match(match_atom): @@ -3925,7 +3925,7 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/", if cpv.startswith("virtual/"): if cpv in pkgs: continue - pkgs.append((cpv, pkgsplit(cpv), vardb)) + pkgs[cpv] = (cpv, pkgsplit(cpv), vardb) if not (pkgs or mychoices): # This one couldn't be expanded as a new-style virtual. Old-style # virtuals have already been expanded by dep_virtual, so this one @@ -3937,6 +3937,7 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/", if not pkgs and len(mychoices) == 1: newsplit.append(x.replace(mykey, mychoices[0])) continue + pkgs = pkgs.values() pkgs.sort(compare_pkgs) # Prefer higher versions. if isblocker: a = [] |