diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-04-11 02:19:27 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-04-11 02:19:27 +0000 |
commit | 4423a7e1f03c96c0d9dc64af271fb01342a85cfc (patch) | |
tree | 8926e78ca11a6989de40cabfa8b250e61c3995b0 | |
parent | de6a4dfb660f0f0f2901e9f540a3146c38be2500 (diff) | |
download | portage-4423a7e1f03c96c0d9dc64af271fb01342a85cfc.tar.gz portage-4423a7e1f03c96c0d9dc64af271fb01342a85cfc.tar.bz2 portage-4423a7e1f03c96c0d9dc64af271fb01342a85cfc.zip |
Filter virtuals when expanding atoms if it helps to avoid an ambiguity.
svn path=/main/trunk/; revision=13314
-rw-r--r-- | pym/_emerge/__init__.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 5c9f83744..c8bdfae96 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5602,6 +5602,15 @@ class depgraph(object): atom_cp = portage.dep_getkey(atom) if vardb.cp_list(atom_cp): installed_cp_set.add(atom_cp) + + if len(installed_cp_set) > 1: + non_virtual_cps = set() + for atom_cp in installed_cp_set: + if not atom_cp.startswith("virtual/"): + non_virtual_cps.add(atom_cp) + if len(non_virtual_cps) == 1: + installed_cp_set = non_virtual_cps + if len(expanded_atoms) > 1 and len(installed_cp_set) == 1: installed_cp = iter(installed_cp_set).next() expanded_atoms = [atom for atom in expanded_atoms \ |