summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-12 07:11:06 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-12 07:11:06 +0000
commiteb537b378cff012d58bdb3f16eb9de4fff1a8bf9 (patch)
tree41d2c0d27fac96fb01ecf4825a23ab0eb52e8a6d /bin
parent8d336ab9cb3479b504ae30f4088530e3448ef3ed (diff)
downloadportage-eb537b378cff012d58bdb3f16eb9de4fff1a8bf9.tar.gz
portage-eb537b378cff012d58bdb3f16eb9de4fff1a8bf9.tar.bz2
portage-eb537b378cff012d58bdb3f16eb9de4fff1a8bf9.zip
In the event of a circular dependency panic, eliminate root nodes in order to reduce the noise level to a minimum. (trunk r5956)
svn path=/main/branches/2.1.2/; revision=5957
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge9
1 files changed, 9 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index a4888188a..06e9b9eb2 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -2054,6 +2054,15 @@ class depgraph:
self.altlist()
print "!!! Error: circular dependencies:"
print
+ # Reduce the noise level to a minimum via elimination of root
+ # nodes.
+ while True:
+ root_nodes = mygraph.root_nodes(
+ ignore_priority=DepPriority.SOFT)
+ if not root_nodes:
+ break
+ for node in root_nodes:
+ mygraph.remove(node)
mygraph.debug_print()
sys.exit(1)