From 98a971cce1c180668e1d69f14e6c39500defba2b 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 files changed, 14 insertions(+), 0 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 6d04e78..736a404 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -3240,6 +3240,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 -- 1.7.3.3