summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-12-01 15:22:59 -0800
committerZac Medico <zmedico@gentoo.org>2012-12-01 15:22:59 -0800
commit4b897286cf94c6ec2c556a75ea2e67798e1157cc (patch)
treed059e2933da02ef535f3292eb51c2ab94bd7286d /pym/_emerge
parentd86595e92193fd6b2b76365d01a13147c21bf75f (diff)
downloadportage-4b897286cf94c6ec2c556a75ea2e67798e1157cc.tar.gz
portage-4b897286cf94c6ec2c556a75ea2e67798e1157cc.tar.bz2
portage-4b897286cf94c6ec2c556a75ea2e67798e1157cc.zip
emerge --depclean: rm unavailable slot bug 445506
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/depgraph.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index f5fe4352f..65a94ab37 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -4634,6 +4634,14 @@ class depgraph(object):
unmasked = [pkg for pkg in matches if not pkg.masks]
if unmasked:
matches = unmasked
+ if len(matches) > 1:
+ # Now account for packages for which existing
+ # ebuilds are masked or unavailable (bug #445506).
+ unmasked = [pkg for pkg in matches if
+ self._equiv_ebuild_visible(pkg)]
+ 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