diff options
-rwxr-xr-x | bin/emerge | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/bin/emerge b/bin/emerge index fce95547a..ee195e12d 100755 --- a/bin/emerge +++ b/bin/emerge @@ -925,9 +925,15 @@ class depgraph: #"no downgrade" emerge #print "mybigkey:",mybigkey - jbigkey=string.join(mybigkey) - if self.digraph.hasnode(jbigkey+" merge") or self.digraph.hasnode(jbigkey+" nomerge"): - #this conditional is needed to prevent infinite recursion on already-processed deps + jbigkey = " ".join(mybigkey) + " merge" + if self.digraph.hasnode(jbigkey): + if addme and jbigkey != myparent: + # Refuse to make a node depend on itself so that the we don't + # don't create a bogus circular dependency in self.altlist(). + self.digraph.addnode(jbigkey, myparent) + return 1 + jbigkey = " ".join(mybigkey) + " nomerge" + if self.digraph.hasnode(jbigkey): return 1 update_spinner() |