From bf32173b3aa1f47a6467561892938369133b2a4e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 5 Feb 2007 06:27:35 +0000 Subject: For bug #165382, don't raise a ValueError in cpv_expand() if there are only two matches and one of them is a virtual. Prefer the non-virtual instead. svn path=/main/trunk/; revision=5890 --- pym/portage/__init__.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 43649ab45..913c70563 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -4446,8 +4446,18 @@ def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None): for x in settings.categories: if mydb.cp_list(x+"/"+myp,use_cache=use_cache): matches.append(x+"/"+myp) - if (len(matches)>1): - raise ValueError, matches + if len(matches) > 1: + if len(matches) == 2: + for x in matches: + if not x.startswith("virtual/"): + # Assume that the non-virtual is desired. This helps + # avoid the ValueError for invalid deps that come from + # installed packages (during reverse blocker detection, + # for example). + mykey = x + break + if mykey is None: + raise ValueError, matches elif matches: mykey=matches[0] -- cgit v1.2.3-1-g7c22