From da3ad6bd4e0adc5ee928f1886c9c147c637706f2 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 9 Jul 2011 15:54:47 -0700 Subject: circular_dependency: show debug graph earlier This might help in some cases like bug 374397 where we're troubleshooting the circular_dependency code. --- pym/_emerge/depgraph.py | 3 +-- pym/_emerge/resolver/circular_dependency.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 899d04e30..64ed50e27 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -5497,8 +5497,7 @@ class depgraph(object): noiselevel=-1) portage.writemsg("\n", noiselevel=-1) - if handler.circular_dep_message is None or \ - "--debug" in self._frozen_config.myopts: + if handler.circular_dep_message is None: handler.debug_print() portage.writemsg("\n", noiselevel=-1) diff --git a/pym/_emerge/resolver/circular_dependency.py b/pym/_emerge/resolver/circular_dependency.py index 9a3286c5c..994e2022d 100644 --- a/pym/_emerge/resolver/circular_dependency.py +++ b/pym/_emerge/resolver/circular_dependency.py @@ -4,10 +4,12 @@ from __future__ import print_function from itertools import chain, product +import logging from portage.dep import use_reduce, extract_affecting_use, check_required_use, get_required_use_flags from portage.exception import InvalidDependString from portage.output import colorize +from portage.util import writemsg_level from _emerge.DepPrioritySatisfiedRange import DepPrioritySatisfiedRange class circular_dependency_handler(object): @@ -17,6 +19,14 @@ class circular_dependency_handler(object): self.graph = graph self.all_parent_atoms = depgraph._dynamic_config._parent_atoms + if "--debug" in depgraph._frozen_config.myopts: + # Show this debug output before doing the calculations + # that follow, so at least we have this debug info + # if we happen to hit a bug later. + writemsg_level("\n\ncircular dependency graph:\n\n", + level=logging.DEBUG, noiselevel=-1) + self.debug_print() + self.cycles, self.shortest_cycle = self._find_cycles() #Guess if it is a large cluster of cycles. This usually requires #a global USE change. -- cgit v1.2.3-1-g7c22