From a524f21fc85e899455d13301c3d435077c694ece Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 1 May 2011 14:17:06 -0700 Subject: depgraph: traverse bdeps in complete mode This makes the graph as complete as possible, and can help --rebuild to find more rebuilds. --- pym/_emerge/create_depgraph_params.py | 4 ++++ pym/_emerge/depgraph.py | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/create_depgraph_params.py b/pym/_emerge/create_depgraph_params.py index 09863479a..ae7a8aed6 100644 --- a/pym/_emerge/create_depgraph_params.py +++ b/pym/_emerge/create_depgraph_params.py @@ -17,6 +17,10 @@ def create_depgraph_params(myopts, myaction): # rebuilt_binaries: replace installed packages with rebuilt binaries myparams = {"recurse" : True} + bdeps = myopts.get("--with-bdeps") + if bdeps is not None: + myparams["bdeps"] = bdeps + if myaction == "remove": myparams["remove"] = True myparams["complete"] = True diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index f1c111fb1..4753bd24a 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1245,7 +1245,7 @@ class depgraph(object): ignore_build_time_deps = False if pkg.built and not removal_action: - if self._frozen_config.myopts.get("--with-bdeps", "n") == "y": + if self._dynamic_config.myparams.get("bdeps", "n") == "y": # Pull in build time deps as requested, but marked them as # "optional" since they are not strictly required. This allows # more freedom in the merge order calculation for solving @@ -1257,7 +1257,7 @@ class depgraph(object): else: ignore_build_time_deps = True - if removal_action and self._frozen_config.myopts.get("--with-bdeps", "y") == "n": + if removal_action and self._dynamic_config.myparams.get("bdeps", "y") == "n": ignore_build_time_deps = True if removal_action: @@ -3854,6 +3854,9 @@ class depgraph(object): self._select_package = self._select_pkg_from_installed else: self._select_package = self._select_pkg_from_graph + # Make the graph as complete as possible by traversing build-time + # dependencies if they happen to be installed already. + self._dynamic_config.myparams["bdeps"] = "y" already_deep = self._dynamic_config.myparams.get("deep") is True if not already_deep: self._dynamic_config.myparams["deep"] = True -- cgit v1.2.3-1-g7c22