summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-09 17:05:23 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-09 17:05:23 -0700
commit6622bb5b63b49b1e528d89fee061e40b2d0d5afd (patch)
treed5f11ed01f7f586f170cdb22fe592358cb063600 /pym
parent4dfb7a71ab9983e5bd0f2121062df04ffd6a748a (diff)
downloadportage-6622bb5b63b49b1e528d89fee061e40b2d0d5afd.tar.gz
portage-6622bb5b63b49b1e528d89fee061e40b2d0d5afd.tar.bz2
portage-6622bb5b63b49b1e528d89fee061e40b2d0d5afd.zip
show_ignored_binaries: filter noise, bug #386379
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/depgraph.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 66cba0433..a409bedac 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -556,6 +556,32 @@ class depgraph(object):
"binpkg_respect_use") in ("y", "n"):
return
+ for pkg in list(self._dynamic_config.ignored_binaries):
+
+ selected_pkg = self._dynamic_config.mydbapi[pkg.root
+ ].match_pkgs(pkg.slot_atom)
+
+ if not selected_pkg:
+ continue
+
+ selected_pkg = selected_pkg[-1]
+ if selected_pkg > pkg:
+ self._dynamic_config.ignored_binaries.pop(pkg)
+ continue
+
+ if selected_pkg.installed and \
+ selected_pkg.cpv == pkg.cpv and \
+ selected_pkg.metadata.get('BUILD_TIME') == \
+ pkg.metadata.get('BUILD_TIME'):
+ # We don't care about ignored binaries when an
+ # identical installed instance is selected to
+ # fill the slot.
+ self._dynamic_config.ignored_binaries.pop(pkg)
+ continue
+
+ if not self._dynamic_config.ignored_binaries:
+ return
+
self._show_merge_list()
writemsg("\n!!! The following binary packages have been ignored " + \