From: Zac Medico Date: Mon, 22 Oct 2007 06:59:26 +0000 (-0000) Subject: In depgraph.create(), don't ignore direct circular dependencies X-Git-Tag: v2.2_pre1~558 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=dd0b780a0c77d791f36b5e384616d43a3c01fb2b;p=portage.git 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 --- 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: