summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-12-12 21:25:36 +0000
committerZac Medico <zmedico@gentoo.org>2008-12-12 21:25:36 +0000
commitc3be86d8d02168115a5e5591b38b96a7c59cfffe (patch)
tree12310ce9ac92a495520da671167c3416537f293b
parente1474e8f318b5a699a4cf9516387ae198ac5ebb0 (diff)
downloadportage-c3be86d8d02168115a5e5591b38b96a7c59cfffe.tar.gz
portage-c3be86d8d02168115a5e5591b38b96a7c59cfffe.tar.bz2
portage-c3be86d8d02168115a5e5591b38b96a7c59cfffe.zip
When in --debug mode, make the depgraph call self.digraph.debug_print() to
display the final digraph state. This should help when troubleshooting problems with blockers that don't resolve automatically, by making it easier to see what pulled in unwanted packages. (trunk r12185) svn path=/main/branches/2.1.6/; revision=12220
-rw-r--r--pym/_emerge/__init__.py6
-rw-r--r--pym/portage/__init__.py12
2 files changed, 13 insertions, 5 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 9a4ad224c..559894bc6 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -6399,6 +6399,12 @@ class depgraph(object):
self._process_slot_conflicts()
def _serialize_tasks(self):
+
+ if "--debug" in self.myopts:
+ writemsg("\ndigraph:\n\n", noiselevel=-1)
+ self.digraph.debug_print()
+ writemsg("\n", noiselevel=-1)
+
scheduler_graph = self.digraph.copy()
mygraph=self.digraph.copy()
# Prune "nomerge" root nodes if nothing depends on them, since
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 3a68ec2f9..931947a66 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -536,15 +536,17 @@ class digraph(object):
len(self.order)
def debug_print(self):
+ def output(s):
+ writemsg(s, noiselevel=-1)
for node in self.nodes:
- print node,
+ output("%s " % (node,))
if self.nodes[node][0]:
- print "depends on"
+ output("depends on\n")
else:
- print "(no children)"
+ output("(no children)\n")
for child in self.nodes[node][0]:
- print " ",child,
- print "(%s)" % self.nodes[node][0][child]
+ output(" %s (%s)\n" % \
+ (child, self.nodes[node][0][child],))
#parse /etc/env.d and generate /etc/profile.env