Comment some more on the significance of passing the graph_db and parent
authorZac Medico <zmedico@gentoo.org>
Tue, 15 Apr 2008 17:16:01 +0000 (17:16 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 15 Apr 2008 17:16:01 +0000 (17:16 -0000)
into depgraph._select_atoms() to solve some cases of bug #1343 while
avoiding unresolvable direct circular dependencies. (trunk r9904)

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

bin/emerge

index ad5cce2254835e9550405d0cba798c324499efbb..f665bfcefba98af7535c167cb72ee5574d2fb1f2 100755 (executable)
@@ -1748,7 +1748,6 @@ 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
@@ -1759,6 +1758,14 @@ class depgraph(object):
                        # gwydion-dylan-bin. In case gwydion-dylan is not yet installed,
                        # gwydion-dylan-bin needs to be selected in order to avoid a
                        # an unresolvable direct circular dependency.
+                       #
+                       # To solve the problem described above, pass in "graph_db" so that
+                       # packages that have been added to the graph are distinguishable
+                       # from other available packages and installed packages. Also, pass
+                       # the parent package into self._select_atoms() calls so that
+                       # unresolvable direct circular dependencies can be detected and
+                       # avoided when possible.
+                       self._filtered_trees[myroot]["graph_db"] = graph_tree.dbapi
                        self._filtered_trees[myroot]["vartree"] = self.trees[myroot]["vartree"]
 
                        dbs = []