REQUIRED_USE: handle unsatisfied like normal dep
authorZac Medico <zmedico@gentoo.org>
Wed, 2 Feb 2011 23:51:00 +0000 (15:51 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 2 Feb 2011 23:51:00 +0000 (15:51 -0800)
pym/_emerge/depgraph.py

index 45873af1348e8274625fd40418d454f426f617f6..2f8037aa0057d977f1905cb74348e22403c4f2d5 100644 (file)
@@ -197,7 +197,6 @@ class _dynamic_depgraph_config(object):
                self._initially_unsatisfied_deps = []
                self._ignored_deps = []
                self._highest_pkg_cache = {}
-               self._pkg_config_issues = {}
 
                self._needed_unstable_keywords = backtrack_parameters.needed_unstable_keywords
                self._needed_license_changes = backtrack_parameters.needed_license_changes
@@ -355,8 +354,7 @@ class depgraph(object):
                # missed update from each SLOT.
                missed_updates = {}
                for pkg, mask_reasons in \
-                       chain(self._dynamic_config._runtime_pkg_mask.items(),
-                       self._dynamic_config._pkg_config_issues.items()):
+                       self._dynamic_config._runtime_pkg_mask.items():
                        if pkg.installed:
                                # Exclude installed here since we only
                                # want to show available updates.
@@ -385,13 +383,6 @@ class depgraph(object):
                        missed_update_types.pop("slot conflict", None)
                        missed_update_types.pop("missing dependency", None)
 
-               required_use = missed_update_types.pop("required use", None)
-               if required_use is not None:
-                       # For display purposes, unsatisfied REQUIRED_USE
-                       # can be treated like a missing dependency.
-                       missed_update_types.setdefault("missing dependency",
-                               []).extend(required_use)
-
                self._show_missed_update_slot_conflicts(
                        missed_update_types.get("slot conflict"))
 
@@ -844,13 +835,11 @@ class depgraph(object):
                                                parent, atom = parent_atom
                                                self._add_parent_atom(pkg, parent_atom)
 
-                               config_issues = \
-                                       self._dynamic_config._pkg_config_issues.setdefault(pkg, {})
-                               parent_atoms = config_issues.setdefault("required use", set())
-                               all_parent_atoms = self._dynamic_config._parent_atoms.get(pkg)
-                               if all_parent_atoms is not None:
-                                       for parent, atom in all_parent_atoms:
-                                               parent_atoms.add((parent, pkg.root, atom))
+                               atom = dep.atom
+                               if atom is None:
+                                       atom = Atom("=" + pkg.cpv)
+                               self._dynamic_config._unsatisfied_deps_for_display.append(
+                                       ((pkg.root, atom), {"myparent":dep.parent}))
                                return 0
 
                if not pkg.onlydeps: