aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-06-13 14:50:04 -0700
committerZac Medico <zmedico@gentoo.org>2011-06-13 14:50:04 -0700
commita40c1905e53d3af20df6d4f940e1235551a6840e (patch)
tree928241b5aac30c2b18c43c7db14c421491661b8e
parentdigestgen: spawn_nofetch (fix previous commit) (diff)
downloadportage-a40c1905e53d3af20df6d4f940e1235551a6840e.tar.gz
portage-a40c1905e53d3af20df6d4f940e1235551a6840e.tar.bz2
portage-a40c1905e53d3af20df6d4f940e1235551a6840e.zip
pkg_use_enabled: return early for built pkgs
Built/installed packages have frozen USE settings, so there's no sense in considering them for autounmask USE config changes. They'll simply be rejected by select_package, and an unbuilt ebuild will be selected instead. This will fix bug 371423 by avoiding unnecessary use_reduce calls on the deps of installed packages.
-rw-r--r--pym/_emerge/depgraph.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 9ce199b15..da48f2aff 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -3440,6 +3440,8 @@ class depgraph(object):
Example: target_use = { "foo": True, "bar": False }
The flags target_use must be in the pkg's IUSE.
"""
+ if pkg.built:
+ return pkg.use.enabled
needed_use_config_change = self._dynamic_config._needed_use_config_changes.get(pkg)
if target_use is None:
@@ -3739,7 +3741,7 @@ class depgraph(object):
if atom.use:
matched_pkgs_ignore_use.append(pkg)
- if allow_use_changes:
+ if allow_use_changes and not pkg.built:
target_use = {}
for flag in atom.use.enabled:
target_use[flag] = True