summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-18 14:53:44 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-18 14:53:44 -0700
commit11a8128ab1b2f2efc95b7a9ef72843f165fd94ae (patch)
tree1cc74474d56c12983203831b74e6b6391d4ffe9a
parent5cfe98ee7e1e01f1634a29deb01fcefc9d551797 (diff)
downloadportage-11a8128ab1b2f2efc95b7a9ef72843f165fd94ae.tar.gz
portage-11a8128ab1b2f2efc95b7a9ef72843f165fd94ae.tar.bz2
portage-11a8128ab1b2f2efc95b7a9ef72843f165fd94ae.zip
When suggesting solutions inside _show_circular_deps(), ignore solutions
that involve changes to use.mask or use.force settings.
-rw-r--r--pym/_emerge/depgraph.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index dc4c70742..b68058af7 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -4237,6 +4237,22 @@ 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("+"):