diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-07-31 15:08:10 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-07-31 15:08:10 +0000 |
commit | 32d1db4af2ecd2a98db1d001e394ad2c7fc73b6e (patch) | |
tree | 4f24ba0ead41d54110b784f32021ef8d8bb3c51d /bin | |
parent | deef6c41c2419ec4919075cbf6e8b5a468f72612 (diff) | |
download | portage-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')
-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() |