summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-31 15:08:10 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-31 15:08:10 +0000
commit32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e (patch)
tree4f24ba0ead41d54110b784f32021ef8d8bb3c51d /bin/emerge
parentdeef6c41c2419ec4919075cbf6e8b5a468f72612 (diff)
downloadportage-32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e.tar.gz
portage-32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e.tar.bz2
portage-32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e.zip
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
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge12
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()