diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-01-02 01:52:02 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-01-02 01:52:02 -0800 |
commit | 98a971cce1c180668e1d69f14e6c39500defba2b (patch) | |
tree | 5211367b1cb6f99f2fcb4ad997615c15fc205586 | |
parent | f3785f651bff9febc0bb3be4f0ee8e4d732495d5 (diff) | |
download | portage-98a971cce1c180668e1d69f14e6c39500defba2b.tar.gz portage-98a971cce1c180668e1d69f14e6c39500defba2b.tar.bz2 portage-98a971cce1c180668e1d69f14e6c39500defba2b.zip |
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.
-rw-r--r-- | 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 6d04e7811..736a40447 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 |