In depgraph._show_unsatisfied_dep(), show some debug info if
authorZac Medico <zmedico@gentoo.org>
Sat, 28 Aug 2010 20:21:25 +0000 (13:21 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 28 Aug 2010 20:21:25 +0000 (13:21 -0700)
Atom.violated_conditionals() raises InvalidAtom.

pym/_emerge/depgraph.py

index ca918e789941091825344972aff908c38d720d1b..eb0dfb8a21aeb6b4a5ae0bec7eb65c522cc5012c 100644 (file)
@@ -18,6 +18,7 @@ from portage.dbapi import dbapi
 from portage.dbapi.dep_expand import dep_expand
 from portage.dep import Atom, extract_affecting_use, check_required_use, human_readable_required_use
 from portage.eapi import eapi_has_strong_blocks, eapi_has_required_use
+from portage.exception import InvalidAtom
 from portage.output import bold, blue, colorize, create_color_func, darkblue, \
        darkgreen, green, nc_len, red, teal, turquoise, yellow
 bad = create_color_func("BAD")
@@ -2091,11 +2092,17 @@ class depgraph(object):
                                        if mreasons:
                                                masked_pkg_instances.add(pkg)
                                        if atom.unevaluated_atom.use:
-                                               if not pkg.iuse.is_valid_flag(atom.unevaluated_atom.use.required) \
-                                                       or atom.violated_conditionals(self._pkg_use_enabled(pkg), pkg.iuse.is_valid_flag).use:
-                                                       missing_use.append(pkg)
-                                                       if not mreasons:
-                                                               continue
+                                               try:
+                                                       if not pkg.iuse.is_valid_flag(atom.unevaluated_atom.use.required) \
+                                                               or atom.violated_conditionals(self._pkg_use_enabled(pkg), pkg.iuse.is_valid_flag).use:
+                                                               missing_use.append(pkg)
+                                                               if not mreasons:
+                                                                       continue
+                                               except InvalidAtom:
+                                                       writemsg("violated_conditionals raised " + \
+                                                               "InvalidAtom: '%s' parent: %s" % \
+                                                               (atom, myparent), noiselevel=-1)
+                                                       raise
                                        if pkg.built and not mreasons:
                                                mreasons = ["use flag configuration mismatch"]
                                masked_packages.append(