* Call depgraph._add_dep() to add package dependencies to the graph
authorZac Medico <zmedico@gentoo.org>
Mon, 14 Apr 2008 01:35:25 +0000 (01:35 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 14 Apr 2008 01:35:25 +0000 (01:35 -0000)
  as soon as possible rather than pushing them onto the stack. (trunk r9885)

* Fix some breakage in the allow_unsatisfied handling. (trunk r9886)

svn path=/main/branches/2.1.2/; revision=9889

bin/emerge

index 9fbbe10f97af4091b7f99aa02f36302b25ddc39c..41fa76df8b7a26e70a860de0e0e5a05c8e9f7822 100755 (executable)
@@ -1919,7 +1919,8 @@ class depgraph(object):
                while dep_stack:
                        dep = dep_stack.pop()
                        if isinstance(dep, Package):
-                               if not self._add_pkg_deps(dep):
+                               if not self._add_pkg_deps(dep,
+                                       allow_unsatisfied=allow_unsatisfied):
                                        return 0
                                continue
                        if not self._add_dep(dep, allow_unsatisfied=allow_unsatisfied):
@@ -2136,7 +2137,7 @@ class depgraph(object):
                dep_stack.append(pkg)
                return 1
 
-       def _add_pkg_deps(self, pkg):
+       def _add_pkg_deps(self, pkg, allow_unsatisfied=False):
 
                mytype = pkg.type_name
                myroot = pkg.root
@@ -2210,10 +2211,11 @@ class depgraph(object):
                                        mypriority = dep_priority.copy()
                                        if not blocker and vardb.match(atom):
                                                mypriority.satisfied = True
-                                       self._dep_stack.append(
-                                               Dependency(atom=atom,
-                                                       blocker=blocker, depth=depth, parent=pkg,
-                                                       priority=mypriority, root=dep_root))
+                                       if not self._add_dep(Dependency(atom=atom,
+                                               blocker=blocker, depth=depth, parent=pkg,
+                                               priority=mypriority, root=dep_root),
+                                               allow_unsatisfied=allow_unsatisfied):
+                                               return 0
                                if debug:
                                        print "Exiting...", jbigkey
                except ValueError, e: