1 |
commit: a524f21fc85e899455d13301c3d435077c694ece |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun May 1 21:17:06 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun May 1 21:17:06 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a524f21f |
7 |
|
8 |
depgraph: traverse bdeps in complete mode |
9 |
|
10 |
This makes the graph as complete as possible, and can help --rebuild to |
11 |
find more rebuilds. |
12 |
|
13 |
--- |
14 |
pym/_emerge/create_depgraph_params.py | 4 ++++ |
15 |
pym/_emerge/depgraph.py | 7 +++++-- |
16 |
2 files changed, 9 insertions(+), 2 deletions(-) |
17 |
|
18 |
diff --git a/pym/_emerge/create_depgraph_params.py b/pym/_emerge/create_depgraph_params.py |
19 |
index 0986347..ae7a8ae 100644 |
20 |
--- a/pym/_emerge/create_depgraph_params.py |
21 |
+++ b/pym/_emerge/create_depgraph_params.py |
22 |
@@ -17,6 +17,10 @@ def create_depgraph_params(myopts, myaction): |
23 |
# rebuilt_binaries: replace installed packages with rebuilt binaries |
24 |
myparams = {"recurse" : True} |
25 |
|
26 |
+ bdeps = myopts.get("--with-bdeps") |
27 |
+ if bdeps is not None: |
28 |
+ myparams["bdeps"] = bdeps |
29 |
+ |
30 |
if myaction == "remove": |
31 |
myparams["remove"] = True |
32 |
myparams["complete"] = True |
33 |
|
34 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
35 |
index f1c111f..4753bd2 100644 |
36 |
--- a/pym/_emerge/depgraph.py |
37 |
+++ b/pym/_emerge/depgraph.py |
38 |
@@ -1245,7 +1245,7 @@ class depgraph(object): |
39 |
|
40 |
ignore_build_time_deps = False |
41 |
if pkg.built and not removal_action: |
42 |
- if self._frozen_config.myopts.get("--with-bdeps", "n") == "y": |
43 |
+ if self._dynamic_config.myparams.get("bdeps", "n") == "y": |
44 |
# Pull in build time deps as requested, but marked them as |
45 |
# "optional" since they are not strictly required. This allows |
46 |
# more freedom in the merge order calculation for solving |
47 |
@@ -1257,7 +1257,7 @@ class depgraph(object): |
48 |
else: |
49 |
ignore_build_time_deps = True |
50 |
|
51 |
- if removal_action and self._frozen_config.myopts.get("--with-bdeps", "y") == "n": |
52 |
+ if removal_action and self._dynamic_config.myparams.get("bdeps", "y") == "n": |
53 |
ignore_build_time_deps = True |
54 |
|
55 |
if removal_action: |
56 |
@@ -3854,6 +3854,9 @@ class depgraph(object): |
57 |
self._select_package = self._select_pkg_from_installed |
58 |
else: |
59 |
self._select_package = self._select_pkg_from_graph |
60 |
+ # Make the graph as complete as possible by traversing build-time |
61 |
+ # dependencies if they happen to be installed already. |
62 |
+ self._dynamic_config.myparams["bdeps"] = "y" |
63 |
already_deep = self._dynamic_config.myparams.get("deep") is True |
64 |
if not already_deep: |
65 |
self._dynamic_config.myparams["deep"] = True |