summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-12 07:04:46 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-12 07:04:46 +0000
commita743cc567b636e27d83d14202afcc28cc55ac2fe (patch)
treed5d1df408c591eeb3d76e4de93617bfb6bf64366 /bin/emerge
parent54421fd308149c4b6623557f072a64131bd728ab (diff)
downloadportage-a743cc567b636e27d83d14202afcc28cc55ac2fe.tar.gz
portage-a743cc567b636e27d83d14202afcc28cc55ac2fe.tar.bz2
portage-a743cc567b636e27d83d14202afcc28cc55ac2fe.zip
In the event of a circular dependency panic, eliminate root nodes in order to reduce the noise level to a minimum.
svn path=/main/trunk/; revision=5956
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge9
1 files changed, 9 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index e97127b4f..1c8e02f6a 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -2057,6 +2057,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)