summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-10-22 06:59:26 +0000
committerZac Medico <zmedico@gentoo.org>2007-10-22 06:59:26 +0000
commitdd0b780a0c77d791f36b5e384616d43a3c01fb2b (patch)
tree821ae5c7bc63916a3a1afb4ea1550317b00d9a78
parent84c668f9c6e2bf708d76c94e8e19a3725ccab017 (diff)
downloadportage-dd0b780a0c77d791f36b5e384616d43a3c01fb2b.tar.gz
portage-dd0b780a0c77d791f36b5e384616d43a3c01fb2b.tar.bz2
portage-dd0b780a0c77d791f36b5e384616d43a3c01fb2b.zip
In depgraph.create(), don't ignore direct circular dependencies
anymore since altlist() is able to handle it properly in cases where the dependency is satisfied. If the dep is unsatisfied then it can not be ignored. svn path=/main/trunk/; revision=8225
-rw-r--r--pym/_emerge/__init__.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index e08e36310..f3fd95a4d 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1294,14 +1294,13 @@ class depgraph(object):
if existing_node:
e_type, myroot, e_cpv, e_status = existing_node
if mykey == e_cpv:
- # The existing node can be reused.
- if existing_node != myparent:
- # Refuse to make a node depend on itself so that
- # we don't create a bogus circular dependency
- # in self.altlist().
- self._parent_child_digraph.add(existing_node, myparent)
- self.digraph.addnode(existing_node, myparent,
- priority=priority)
+ # The existing node can be reused. It's okay for a
+ # node to depend on itself here if priority.satisfied
+ # is True, otherwise it is a circular dependency that
+ # can not be ignored.
+ self._parent_child_digraph.add(existing_node, myparent)
+ self.digraph.addnode(existing_node, myparent,
+ priority=priority)
return 1
else:
if jbigkey in self._slot_collision_nodes: