summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
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 " + \