summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/depgraph.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 33fed5082..dce1041e9 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2151,6 +2151,14 @@ class depgraph(object):
need_enable = sorted(atom.use.enabled.difference(use).intersection(pkg.iuse.all))
need_disable = sorted(atom.use.disabled.intersection(use).intersection(pkg.iuse.all))
+ pkgsettings = self._frozen_config.pkgsettings[pkg.root]
+ pkgsettings.setcpv(pkg)
+ untouchable_flags = \
+ frozenset(chain(pkgsettings.usemask, pkgsettings.useforce))
+ if untouchable_flags.intersection(
+ chain(need_enable, need_disable)):
+ continue
+
required_use = pkg.metadata["REQUIRED_USE"]
required_use_warning = ""
if required_use:
@@ -2194,6 +2202,13 @@ class depgraph(object):
involved_flags = set(chain(conditional.equal, conditional.not_equal, \
conditional.enabled, conditional.disabled))
+ pkgsettings = self._frozen_config.pkgsettings[myparent.root]
+ pkgsettings.setcpv(myparent)
+ untouchable_flags = \
+ frozenset(chain(pkgsettings.usemask, pkgsettings.useforce))
+ if untouchable_flags.intersection(involved_flags):
+ continue
+
required_use = myparent.metadata["REQUIRED_USE"]
required_use_warning = ""
if required_use: