summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
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 /pym/_emerge
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
Diffstat (limited to 'pym/_emerge')
-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: