1 |
Author: zmedico |
2 |
Date: 2010-02-24 05:15:19 +0000 (Wed, 24 Feb 2010) |
3 |
New Revision: 15446 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/depgraph.py |
7 |
Log: |
8 |
Fix a logic error which causes blockers from installed packages to be |
9 |
ignored in some cases. Thanks to Brian Dolbec (dol-sen) for reporting. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/depgraph.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/depgraph.py 2010-02-24 04:55:26 UTC (rev 15445) |
15 |
+++ main/trunk/pym/_emerge/depgraph.py 2010-02-24 05:15:19 UTC (rev 15446) |
16 |
@@ -141,6 +141,10 @@ |
17 |
# uninstallation but may not have been added to the graph |
18 |
# if the graph is not complete yet. |
19 |
self._blocked_world_pkgs = {} |
20 |
+ # Contains packages whose dependencies have been traversed. |
21 |
+ # This use used to check if we have accounted for blockers |
22 |
+ # relevant to a package. |
23 |
+ self._traversed_pkg_deps = set() |
24 |
self._slot_collision_info = {} |
25 |
# Slot collision nodes are not allowed to block other packages since |
26 |
# blocker validation is only able to account for one package per slot. |
27 |
@@ -1211,6 +1215,7 @@ |
28 |
return 0 |
29 |
finally: |
30 |
portage.dep._dep_check_strict = True |
31 |
+ self._dynamic_config._traversed_pkg_deps.add(pkg) |
32 |
return 1 |
33 |
|
34 |
def _add_pkg_dep_string(self, pkg, dep_root, dep_priority, dep_string, |
35 |
@@ -2848,6 +2853,8 @@ |
36 |
cpv = pkg.cpv |
37 |
stale_cache.discard(cpv) |
38 |
pkg_in_graph = self._dynamic_config.digraph.contains(pkg) |
39 |
+ pkg_deps_added = \ |
40 |
+ pkg in self._dynamic_config._traversed_pkg_deps |
41 |
|
42 |
# Check for masked installed packages. Only warn about |
43 |
# packages that are in the graph in order to avoid warning |
44 |
@@ -2864,7 +2871,7 @@ |
45 |
|
46 |
blocker_atoms = None |
47 |
blockers = None |
48 |
- if pkg_in_graph: |
49 |
+ if pkg_deps_added: |
50 |
blockers = [] |
51 |
try: |
52 |
blockers.extend( |