From 3b8f3caf37171dea4193ecd6d6d7f243d6dbc5cd Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 2 Jan 2011 01:52:02 -0800 Subject: [PATCH] depclean: account for more masks Account for packages with masks (like KEYWORDS masks) that are usually ignored in visibility checks for installed packages, in order to handle cases like bug #350285. --- pym/_emerge/depgraph.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 7e8cd2bef..71d6746a0 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3210,6 +3210,20 @@ class depgraph(object): matches = vardb.match_pkgs(atom) if not matches: return None, None + if len(matches) > 1: + unmasked = [pkg for pkg in matches if \ + self._pkg_visibility_check(pkg)] + if unmasked: + if len(unmasked) == 1: + matches = unmasked + else: + # Account for packages with masks (like KEYWORDS masks) + # that are usually ignored in visibility checks for + # installed packages, in order to handle cases like + # bug #350285. + unmasked = [pkg for pkg in matches if not pkg.masks] + if unmasked: + matches = unmasked pkg = matches[-1] # highest match in_graph = self._dynamic_config._slot_pkg_map[root].get(pkg.slot_atom) return pkg, in_graph -- 2.26.2