diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-10-22 06:59:26 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-10-22 06:59:26 +0000 |
commit | dd0b780a0c77d791f36b5e384616d43a3c01fb2b (patch) | |
tree | 821ae5c7bc63916a3a1afb4ea1550317b00d9a78 | |
parent | 84c668f9c6e2bf708d76c94e8e19a3725ccab017 (diff) | |
download | portage-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__.py | 15 |
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: |