1 |
Author: grobian |
2 |
Date: 2009-08-26 09:52:04 +0000 (Wed, 26 Aug 2009) |
3 |
New Revision: 14158 |
4 |
|
5 |
Modified: |
6 |
main/branches/prefix/pym/_emerge/Scheduler.py |
7 |
main/branches/prefix/pym/_emerge/depgraph.py |
8 |
Log: |
9 |
Merged from trunk -r14151:14155 |
10 |
|
11 |
| 14154 | Show log paths when displaying the list of failed packages | |
12 |
| zmedico | for --keep-going. | |
13 |
|
14 |
| 14155 | Inside depgraph._show_unsatisfied_dep(), show reasons for | |
15 |
| zmedico | packages masked due to backtracking. | |
16 |
|
17 |
|
18 |
Modified: main/branches/prefix/pym/_emerge/Scheduler.py |
19 |
=================================================================== |
20 |
--- main/branches/prefix/pym/_emerge/Scheduler.py 2009-08-26 09:50:07 UTC (rev 14157) |
21 |
+++ main/branches/prefix/pym/_emerge/Scheduler.py 2009-08-26 09:52:04 UTC (rev 14158) |
22 |
@@ -857,6 +857,7 @@ |
23 |
self._failed_pkgs_all.extend(failed_pkgs) |
24 |
del failed_pkgs[:] |
25 |
|
26 |
+ printer = portage.output.EOutput() |
27 |
background = self._background |
28 |
failure_log_shown = False |
29 |
if background and len(self._failed_pkgs_all) == 1: |
30 |
@@ -895,7 +896,6 @@ |
31 |
self._failed_pkgs_die_msgs and \ |
32 |
not mod_echo_output: |
33 |
|
34 |
- printer = portage.output.EOutput() |
35 |
for mysettings, key, logentries in self._failed_pkgs_die_msgs: |
36 |
root_msg = "" |
37 |
if mysettings["ROOT"] != "/": |
38 |
@@ -926,17 +926,20 @@ |
39 |
else: |
40 |
msg = "The following package has " + \ |
41 |
"failed to build or install:" |
42 |
- prefix = bad(" * ") |
43 |
- writemsg(prefix + "\n", noiselevel=-1) |
44 |
- from textwrap import wrap |
45 |
- for line in wrap(msg, 72): |
46 |
- writemsg("%s%s\n" % (prefix, line), noiselevel=-1) |
47 |
- writemsg(prefix + "\n", noiselevel=-1) |
48 |
+ |
49 |
+ printer.eerror("") |
50 |
+ for line in textwrap.wrap(msg, 72): |
51 |
+ printer.eerror(line) |
52 |
+ printer.eerror("") |
53 |
for failed_pkg in self._failed_pkgs_all: |
54 |
- writemsg("%s\t%s\n" % (prefix, |
55 |
- colorize("INFORM", str(failed_pkg.pkg))), |
56 |
- noiselevel=-1) |
57 |
- writemsg(prefix + "\n", noiselevel=-1) |
58 |
+ msg = " %s" % (colorize('INFORM', failed_pkg.pkg.__str__()),) |
59 |
+ log_path = self._locate_failure_log(failed_pkg) |
60 |
+ if log_path is not None: |
61 |
+ msg += ", Log file:" |
62 |
+ printer.eerror(msg) |
63 |
+ if log_path is not None: |
64 |
+ printer.eerror(" '%s'" % colorize('INFORM', log_path)) |
65 |
+ printer.eerror("") |
66 |
|
67 |
if self._failed_pkgs_all: |
68 |
return 1 |
69 |
|
70 |
Modified: main/branches/prefix/pym/_emerge/depgraph.py |
71 |
=================================================================== |
72 |
--- main/branches/prefix/pym/_emerge/depgraph.py 2009-08-26 09:50:07 UTC (rev 14157) |
73 |
+++ main/branches/prefix/pym/_emerge/depgraph.py 2009-08-26 09:52:04 UTC (rev 14158) |
74 |
@@ -1891,9 +1891,8 @@ |
75 |
metadata, mreasons = get_mask_info(root_config, cpv, |
76 |
pkgsettings, db, pkg_type, built, installed, db_keys) |
77 |
if metadata is not None: |
78 |
- pkg = Package(built=built, cpv=cpv, |
79 |
- installed=installed, metadata=metadata, |
80 |
- root_config=root_config) |
81 |
+ pkg = self._pkg(cpv, pkg_type, root_config, |
82 |
+ installed=installed) |
83 |
if pkg.cp != atom.cp: |
84 |
# A cpv can be returned from dbapi.match() as an |
85 |
# old-style virtual match even in cases when the |
86 |
@@ -1901,6 +1900,11 @@ |
87 |
# Filter out any such false matches here. |
88 |
if not atom_set.findAtomForPackage(pkg): |
89 |
continue |
90 |
+ if pkg in self._dynamic_config._runtime_pkg_mask: |
91 |
+ backtrack_reasons = \ |
92 |
+ self._dynamic_config._runtime_pkg_mask[pkg] |
93 |
+ mreasons.append('backtracking: %s' % \ |
94 |
+ ', '.join(sorted(backtrack_reasons))) |
95 |
if mreasons: |
96 |
masked_pkg_instances.add(pkg) |
97 |
if atom.use: |