From 42f16daade5ed09ed6b9fd01c139d840cdbff480 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 9 Oct 2009 07:17:04 +0000 Subject: 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 --- pym/_emerge/depgraph.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'pym/_emerge/depgraph.py') 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() -- cgit v1.2.3-1-g7c22