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.
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 9ce199b..da48f2a 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -3440,6 +3440,8 @@
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 @@
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