diff options
-rw-r--r-- | pym/_emerge/depgraph.py | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index b68058af7..004534dbe 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -4157,6 +4157,11 @@ class depgraph(object): break affecting_use = portage.dep.extract_affecting_use(dep, parent_atom) + # Make sure we don't want to change a flag that is in use.mask or use.force. + pkgsettings = self._frozen_config.pkgsettings[parent.root] + pkgsettings.setcpv(parent) + affecting_use.difference_update(pkgsettings.usemask, pkgsettings.useforce) + if affecting_use: affecting_use = list(affecting_use) #We iterate over all possible settings of these use flags and gather @@ -4237,22 +4242,6 @@ class depgraph(object): if ignore_solution: continue - # Check for conflicts with use.mask and use.force. - pkgsettings = self._frozen_config.pkgsettings[parent.root] - pkgsettings.setcpv(parent) - for flag in solution: - if flag.startswith("+"): - if flag[1:] in pkgsettings.usemask: - ignore_solution = True - break - else: - if flag[1:] in pkgsettings.useforce: - ignore_solution = True - break - - if ignore_solution: - continue - changes = [] for flag in solution: if flag.startswith("+"): |