diff options
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r-- | pym/_emerge/__init__.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index e6a8f3dc0..e5c9b0ca9 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1609,6 +1609,7 @@ class depgraph(object): pass filtered_tree.dbapi = self._dep_check_composite_db(self, myroot) self._filtered_trees[myroot]["porttree"] = filtered_tree + self._filtered_trees[myroot]["graph_db"] = graph_tree.dbapi # Passing in graph_tree as the vartree here could lead to better # atom selections in some cases by causing atoms for packages that @@ -2070,7 +2071,7 @@ class depgraph(object): vardb = self.roots[dep_root].trees["vartree"].dbapi try: selected_atoms = self._select_atoms(dep_root, - dep_string, myuse=myuse, strict=strict) + dep_string, myuse=myuse, parent=pkg, strict=strict) except portage.exception.InvalidDependString, e: show_invalid_depstring_notice(jbigkey, dep_string, str(e)) return 0 @@ -2528,7 +2529,7 @@ class depgraph(object): return self._select_atoms_highest_available(*pargs, **kwargs) def _select_atoms_highest_available(self, root, depstring, - myuse=None, strict=True, trees=None): + myuse=None, parent=None, strict=True, trees=None): """This will raise InvalidDependString if necessary. If trees is None then self._filtered_trees is used.""" pkgsettings = self.pkgsettings[root] @@ -2536,12 +2537,16 @@ class depgraph(object): trees = self._filtered_trees if True: try: + if parent is not None: + trees[root]["parent"] = parent if not strict: portage.dep._dep_check_strict = False mycheck = portage.dep_check(depstring, None, pkgsettings, myuse=myuse, myroot=root, trees=trees) finally: + if parent is not None: + trees[root].pop("parent") portage.dep._dep_check_strict = True if not mycheck[0]: raise portage.exception.InvalidDependString(mycheck[1]) |