From 32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 31 Jul 2006 15:08:10 +0000 Subject: Add more dependencies to the digraph in order to help prevent strange merge orders for bug #126748. This patch is from trunk r4018:4021. svn path=/main/branches/2.1/; revision=4054 --- bin/emerge | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'bin/emerge') 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() -- cgit v1.2.3-1-g7c22