1 |
Author: zmedico |
2 |
Date: 2008-05-04 05:25:14 +0000 (Sun, 04 May 2008) |
3 |
New Revision: 10162 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
In order to fix --tree display behave normally in --resume mode, |
9 |
properly add to the digraph all packages matched by arguments. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-05-04 04:21:58 UTC (rev 10161) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-05-04 05:25:14 UTC (rev 10162) |
16 |
@@ -4811,9 +4811,7 @@ |
17 |
|
18 |
if not isinstance(resume_data, dict): |
19 |
return False |
20 |
- favorites = resume_data.get("favorites") |
21 |
- if isinstance(favorites, list): |
22 |
- self._load_favorites(favorites) |
23 |
+ |
24 |
mergelist = resume_data.get("mergelist") |
25 |
if not isinstance(mergelist, list): |
26 |
mergelist = [] |
27 |
@@ -4876,11 +4874,30 @@ |
28 |
self._select_package = self._select_pkg_from_graph |
29 |
self.myparams.add("selective") |
30 |
|
31 |
+ favorites = resume_data.get("favorites") |
32 |
+ if isinstance(favorites, list): |
33 |
+ args = self._load_favorites(favorites) |
34 |
+ else: |
35 |
+ args = [] |
36 |
+ |
37 |
for task in serialized_tasks: |
38 |
if isinstance(task, Package) and \ |
39 |
task.operation == "merge": |
40 |
- self._add_pkg(task, None) |
41 |
+ if not self._add_pkg(task, None): |
42 |
+ return False |
43 |
|
44 |
+ # Packages for argument atoms need to be explicitly |
45 |
+ # added via _add_pkg() so that they are included in the |
46 |
+ # digraph (needed at least for --tree display). |
47 |
+ for arg in args: |
48 |
+ for atom in arg.set: |
49 |
+ pkg, existing_node = self._select_package( |
50 |
+ arg.root_config.root, atom) |
51 |
+ if existing_node is None and \ |
52 |
+ pkg is not None: |
53 |
+ if not self._add_pkg(pkg, arg): |
54 |
+ return False |
55 |
+ |
56 |
# Allow unsatisfied deps here to avoid showing a masking |
57 |
# message for an unsatisfied dep that isn't necessarily |
58 |
# masked. |
59 |
@@ -4960,6 +4977,7 @@ |
60 |
atom_arg_map[atom_key] = refs |
61 |
if arg not in refs: |
62 |
refs.append(arg) |
63 |
+ return args |
64 |
|
65 |
class UnsatisfiedResumeDep(portage.exception.PortageException): |
66 |
""" |
67 |
|
68 |
-- |
69 |
gentoo-commits@l.g.o mailing list |