summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-06-19 14:07:17 -0700
committerZac Medico <zmedico@gentoo.org>2013-06-19 14:07:17 -0700
commitf74f301e869b3cac9060a1f35b89df673805c08a (patch)
tree0c065fdcc168a06e64ec8738b3b3c25687e60f13
parentdepgraph: fix --exclude/--newuse interaction (diff)
downloadportage-f74f301e869b3cac9060a1f35b89df673805c08a.tar.gz
portage-f74f301e869b3cac9060a1f35b89df673805c08a.tar.bz2
portage-f74f301e869b3cac9060a1f35b89df673805c08a.zip
depgraph: fix installed/newuse logic more
The matched_pkgs_ignore_use logic, introduced in commit dc8d70479dfb54a1f2561ba3fe82d7a62d97964f, is questionable because we need to ensure that an installed package can be selected if there are no other available packages that match a given USE-dep.
-rw-r--r--pym/_emerge/depgraph.py5
1 files changed, 1 insertions, 4 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 3c5215989..b2d79a808 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -4642,7 +4642,6 @@ class depgraph(object):
vardb = self._frozen_config.roots[root].trees["vartree"].dbapi
# List of acceptable packages, ordered by type preference.
matched_packages = []
- matched_pkgs_ignore_use = []
highest_version = None
if not isinstance(atom, portage.dep.Atom):
atom = portage.dep.Atom(atom)
@@ -4824,7 +4823,6 @@ class depgraph(object):
if atom.use:
- matched_pkgs_ignore_use.append(pkg)
if autounmask_level and autounmask_level.allow_use_changes and not pkg.built:
target_use = {}
for flag in atom.use.enabled:
@@ -4916,8 +4914,7 @@ class depgraph(object):
# Compare built package to current config and
# reject the built package if necessary.
if built and not useoldpkg and \
- (not installed or
- any(other_pkg != pkg for other_pkg in matched_pkgs_ignore_use)) and \
+ (not installed or matched_packages) and \
not (installed and
self._frozen_config.excluded_pkgs.findAtomForPackage(pkg,
modified_use=self._pkg_use_enabled(pkg))) and \