Add a sanity check inside depgraph._add_pkg() to ensure that the dependencies
authorZac Medico <zmedico@gentoo.org>
Sat, 29 Nov 2008 20:24:31 +0000 (20:24 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 29 Nov 2008 20:24:31 +0000 (20:24 -0000)
of the same package are never processed more than once. (trunk r12122)

svn path=/main/branches/2.1.6/; revision=12123

pym/_emerge/__init__.py

index 8c3a89d49910a63e80d4339a29bcea8929c97395..7efcae784071d3cbe4d789316910c0e5c92d6f42 100644 (file)
@@ -4536,6 +4536,9 @@ class depgraph(object):
                #IUSE-aware emerge -> USE DEP aware depgraph
                #"no downgrade" emerge
                """
+               # Ensure that the dependencies of the same package
+               # are never processed more than once.
+               previously_added = pkg in self.digraph
 
                # select the correct /var database that we'll be checking against
                vardbapi = self.trees[pkg.root]["vartree"].dbapi
@@ -4688,7 +4691,8 @@ class depgraph(object):
                if args:
                        depth = 0
                pkg.depth = depth
-               dep_stack.append(pkg)
+               if not previously_added:
+                       dep_stack.append(pkg)
                return 1
 
        def _add_pkg_deps(self, pkg, allow_unsatisfied=False):