From: Zac Medico Date: Fri, 9 Oct 2009 07:17:04 +0000 (-0000) Subject: Bug #271551 - Inside depgraph.select_files(), avoid bailing out due to an X-Git-Tag: v2.2_rc45~20 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=42f16daade5ed09ed6b9fd01c139d840cdbff480;p=portage.git Bug #271551 - Inside depgraph.select_files(), avoid bailing out due to an ambiguous package name in cases when all but one of the resolved packages are virtual. Thanks to Sebastian Mingramm (few) for this patch. svn path=/main/trunk/; revision=14522 --- diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index c384b5866..d015d9dc1 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1570,6 +1570,18 @@ class depgraph(object): expanded_atoms = [atom for atom in expanded_atoms \ if atom.cp == installed_cp] + # If a non-virtual package and one or more virtual packages + # are in expanded_atoms, use the non-virtual package. + if len(expanded_atoms) > 1: + number_of_virtuals = 0 + for expanded_atom in expanded_atoms: + if expanded_atom.cp.startswith("virtual/"): + number_of_virtuals += 1 + else: + candidate = expanded_atom + if len(expanded_atoms) - number_of_virtuals == 1: + expanded_atoms = [ candidate ] + if len(expanded_atoms) > 1: print() print()