When suggesting solutions inside _show_circular_deps(), ignore solutions
authorZac Medico <zmedico@gentoo.org>
Wed, 18 Aug 2010 21:53:44 +0000 (14:53 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 18 Aug 2010 21:53:44 +0000 (14:53 -0700)
that involve changes to use.mask or use.force settings.

pym/_emerge/depgraph.py

index dc4c707428a2056007e0cc56dd3e9641a76c25ea..b68058af7014676a80c57cad04e8de72a648d4a5 100644 (file)
@@ -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("+"):