summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-08-19 15:10:40 +0200
committerZac Medico <zmedico@gentoo.org>2010-08-19 06:13:29 -0700
commitb4abe4563b25128fc9dad6d50484ed1336f76428 (patch)
tree1ad08735fda60f01464ddedcb3629052fc13b1a9 /pym/_emerge/depgraph.py
parent237340c444298a346bf20e0d0ea718da9b708292 (diff)
downloadportage-b4abe4563b25128fc9dad6d50484ed1336f76428.tar.gz
portage-b4abe4563b25128fc9dad6d50484ed1336f76428.tar.bz2
portage-b4abe4563b25128fc9dad6d50484ed1336f76428.zip
cycle-finder: Don't try to change flags that are in use.{make,focrce}
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py21
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("+"):