1 |
Author: zmedico |
2 |
Date: 2008-06-27 20:58:40 +0000 (Fri, 27 Jun 2008) |
3 |
New Revision: 10817 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Generate and log eerror messages for any packages that need to be dropped |
9 |
due to unsatisfied dependencies when --keep-going is enabled. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/_emerge/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/_emerge/__init__.py 2008-06-27 15:55:18 UTC (rev 10816) |
15 |
+++ main/trunk/pym/_emerge/__init__.py 2008-06-27 20:58:40 UTC (rev 10817) |
16 |
@@ -52,6 +52,7 @@ |
17 |
import portage.locks |
18 |
import portage.exception |
19 |
from portage.data import secpass |
20 |
+from portage.elog.messages import eerror |
21 |
from portage.util import normalize_path as normpath |
22 |
from portage.util import writemsg |
23 |
from portage.sets import load_default_config, SETPREFIX |
24 |
@@ -5958,15 +5959,40 @@ |
25 |
break |
26 |
if mergelist[0][-1] != "merge": |
27 |
break |
28 |
+ |
29 |
# Skip the first one because it failed to build or install. |
30 |
+ pkg_key = tuple(mergelist[0]) |
31 |
del mergelist[0] |
32 |
+ failed_pkg = None |
33 |
+ for task in self._mergelist: |
34 |
+ if task == pkg_key: |
35 |
+ failed_pkg = task |
36 |
+ break |
37 |
+ if failed_pkg is None: |
38 |
+ break |
39 |
if not mergelist: |
40 |
break |
41 |
- mylist = self._calc_resume_list() |
42 |
+ |
43 |
+ mylist, dropped_tasks = self._calc_resume_list() |
44 |
clear_caches(self.trees) |
45 |
if not mylist: |
46 |
break |
47 |
- self.curval += 1 |
48 |
+ |
49 |
+ if dropped_tasks: |
50 |
+ |
51 |
+ def _eerror(lines): |
52 |
+ for l in lines: |
53 |
+ eerror(l, phase="other", key=failed_pkg.cpv) |
54 |
+ |
55 |
+ msg = [] |
56 |
+ msg.append("One or more packages have been " + \ |
57 |
+ "dropped due to unsatisfied dependencies:") |
58 |
+ msg.append("") |
59 |
+ msg.extend(" " + str(task) for task in dropped_tasks) |
60 |
+ msg.append("") |
61 |
+ _eerror(msg) |
62 |
+ del _eerror, msg |
63 |
+ del dropped_tasks |
64 |
self._mergelist = mylist |
65 |
|
66 |
return rval |
67 |
@@ -5994,20 +6020,12 @@ |
68 |
|
69 |
if not success: |
70 |
mydepgraph.display_problems() |
71 |
- return None |
72 |
+ return (None, None) |
73 |
|
74 |
- if dropped_tasks: |
75 |
- portage.writemsg("!!! One or more packages have been " + \ |
76 |
- "dropped due to\n" + \ |
77 |
- "!!! masking or unsatisfied dependencies:\n\n", |
78 |
- noiselevel=-1) |
79 |
- for task in dropped_tasks: |
80 |
- portage.writemsg(" " + str(task) + "\n", noiselevel=-1) |
81 |
- portage.writemsg("\n", noiselevel=-1) |
82 |
- |
83 |
mylist = mydepgraph.altlist() |
84 |
mydepgraph.break_refs(mylist) |
85 |
- return mylist |
86 |
+ mydepgraph.break_refs(dropped_tasks) |
87 |
+ return (mylist, dropped_tasks) |
88 |
|
89 |
def _poll_child_processes(self): |
90 |
""" |
91 |
|
92 |
-- |
93 |
gentoo-commits@l.g.o mailing list |