From 5a0e91c290dad87f14feb1bb0d67557944634953 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 3 Nov 2008 08:00:07 +0000 Subject: Bug #245358 - For unsatisfied dependencies, display the parent nodes and the argument that pulled them in. svn path=/main/trunk/; revision=11805 --- pym/_emerge/__init__.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'pym/_emerge/__init__.py') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 6cf6ddc22..f65fda5dc 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5288,10 +5288,6 @@ class depgraph(object): xinfo='"%s"' % arg # Discard null/ from failed cpv_expand category expansion. xinfo = xinfo.replace("null/", "") - if myparent: - xfrom = '(dependency required by '+ \ - green('"%s"' % myparent[2]) + \ - red(' [%s]' % myparent[0]) + ')' masked_packages = [] missing_use = [] missing_licenses = [] @@ -5386,8 +5382,24 @@ class depgraph(object): show_mask_docs() else: print "\nemerge: there are no ebuilds to satisfy "+green(xinfo)+"." - if myparent: - print xfrom + + # Show parent nodes and the argument that pulled them in. + node = myparent + msg = [] + while node is not None: + msg.append('(dependency required by "%s" [%s])' % \ + (colorize('INFORM', str(node.cpv)), node.type_name)) + parent = None + for parent in self.digraph.parent_nodes(node): + if isinstance(parent, DependencyArg): + msg.append('(dependency required by "%s" [argument])' % \ + (colorize('INFORM', str(parent)))) + parent = None + break + node = parent + for line in msg: + print line + print def _select_pkg_highest_available(self, root, atom, onlydeps=False): -- cgit v1.2.3-1-g7c22