Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Mon, 02 May 2011 03:10:23
Message-Id: 60564a32c71ce9362e9329c7fd87783699c2c4b4.zmedico@gentoo
1 commit: 60564a32c71ce9362e9329c7fd87783699c2c4b4
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Mon May 2 03:09:33 2011 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Mon May 2 03:09:33 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=60564a32
7
8 depgraph: queue ignored deps for later traversal
9
10 This will fix an issue with some build-time deps being ignored by
11 --complete-graph in cases when --with-bdeps is not enabled. It
12 should help --rebuild to find more rebuilds in this case.
13
14 ---
15 pym/_emerge/depgraph.py | 41 ++++++++++++++++++++++++++++-------------
16 1 files changed, 28 insertions(+), 13 deletions(-)
17
18 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
19 index 2401541..80d701c 100644
20 --- a/pym/_emerge/depgraph.py
21 +++ b/pym/_emerge/depgraph.py
22 @@ -374,6 +374,7 @@ class _dynamic_depgraph_config(object):
23
24 self._autounmask = depgraph._frozen_config.myopts.get('--autounmask', 'n') == True
25 self._success_without_autounmask = False
26 + self._traverse_ignored_deps = False
27
28 for myroot in depgraph._frozen_config.trees:
29 self.sets[myroot] = _depgraph_sets()
30 @@ -898,8 +899,9 @@ class depgraph(object):
31
32 self._rebuild.add(dep_pkg, dep)
33
34 - if (not dep.collapsed_priority.ignored and
35 - not self._add_pkg(dep_pkg, dep)):
36 + ignore = dep.collapsed_priority.ignored and \
37 + not self._dynamic_config._traverse_ignored_deps
38 + if not ignore and not self._add_pkg(dep_pkg, dep):
39 return 0
40 return 1
41
42 @@ -1300,7 +1302,7 @@ class depgraph(object):
43 deps = (
44 (depend_root, edepend["DEPEND"],
45 self._priority(buildtime=True,
46 - optional=pkg.built,
47 + optional=(pkg.built or ignore_build_time_deps),
48 ignored=ignore_build_time_deps),
49 pkg.built or ignore_build_time_deps),
50 (myroot, edepend["RDEPEND"],
51 @@ -1479,11 +1481,17 @@ class depgraph(object):
52 self._dynamic_config._ignored_deps.append(dep)
53
54 if not ignored:
55 - if not self._add_dep(dep,
56 - allow_unsatisfied=allow_unsatisfied):
57 - return 0
58 - if is_virt and dep.child is not None:
59 - traversed_virt_pkgs.add(dep.child)
60 + if dep_priority.ignored:
61 + if is_virt and dep.child is not None:
62 + traversed_virt_pkgs.add(dep.child)
63 + dep.child = None
64 + self._dynamic_config._ignored_deps.append(dep)
65 + else:
66 + if not self._add_dep(dep,
67 + allow_unsatisfied=allow_unsatisfied):
68 + return 0
69 + if is_virt and dep.child is not None:
70 + traversed_virt_pkgs.add(dep.child)
71
72 selected_atoms.pop(pkg)
73
74 @@ -1565,11 +1573,17 @@ class depgraph(object):
75 self._dynamic_config._ignored_deps.append(dep)
76
77 if not ignored:
78 - if not self._add_dep(dep,
79 - allow_unsatisfied=allow_unsatisfied):
80 - return 0
81 - if is_virt and dep.child is not None:
82 - traversed_virt_pkgs.add(dep.child)
83 + if dep_priority.ignored:
84 + if is_virt and dep.child is not None:
85 + traversed_virt_pkgs.add(dep.child)
86 + dep.child = None
87 + self._dynamic_config._ignored_deps.append(dep)
88 + else:
89 + if not self._add_dep(dep,
90 + allow_unsatisfied=allow_unsatisfied):
91 + return 0
92 + if is_virt and dep.child is not None:
93 + traversed_virt_pkgs.add(dep.child)
94
95 if debug:
96 writemsg_level("Exiting... %s\n" % (pkg,),
97 @@ -3916,6 +3930,7 @@ class depgraph(object):
98 # Make the graph as complete as possible by traversing build-time
99 # dependencies if they happen to be installed already.
100 self._dynamic_config.myparams["bdeps"] = "y"
101 + self._dynamic_config._traverse_ignored_deps = True
102 already_deep = self._dynamic_config.myparams.get("deep") is True
103 if not already_deep:
104 self._dynamic_config.myparams["deep"] = True