1 |
commit: 463b2d36f3d95760e48543f1f30410aa76267538 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Dec 15 05:30:13 2019 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Dec 15 06:27:26 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=463b2d36 |
7 |
|
8 |
emerge: Show package USE in conflict messages |
9 |
|
10 |
Bug: https://bugs.gentoo.org/310009 |
11 |
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> |
12 |
|
13 |
lib/_emerge/depgraph.py | 26 +++++++++++++++++++++----- |
14 |
lib/_emerge/resolver/slot_collision.py | 17 +++++++++++++---- |
15 |
2 files changed, 34 insertions(+), 9 deletions(-) |
16 |
|
17 |
diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py |
18 |
index 02e0e075d..1a5448c8f 100644 |
19 |
--- a/lib/_emerge/depgraph.py |
20 |
+++ b/lib/_emerge/depgraph.py |
21 |
@@ -1285,7 +1285,10 @@ class depgraph(object): |
22 |
msg.append("\n\n") |
23 |
|
24 |
msg.append(indent) |
25 |
- msg.append(str(pkg)) |
26 |
+ msg.append("%s %s" % (pkg, |
27 |
+ pkg_use_display(pkg, |
28 |
+ self._frozen_config.myopts, |
29 |
+ modified_use=self._pkg_use_enabled(pkg)))) |
30 |
msg.append(" conflicts with\n") |
31 |
|
32 |
for parent, atom in parent_atoms: |
33 |
@@ -1302,8 +1305,15 @@ class depgraph(object): |
34 |
atom, marker = format_unmatched_atom( |
35 |
pkg, atom, self._pkg_use_enabled) |
36 |
|
37 |
+ if isinstance(parent, Package): |
38 |
+ use_display = pkg_use_display(parent, |
39 |
+ self._frozen_config.myopts, |
40 |
+ modified_use=self._pkg_use_enabled(parent)) |
41 |
+ else: |
42 |
+ use_display = "" |
43 |
+ |
44 |
msg.append(2*indent) |
45 |
- msg.append("%s required by %s\n" % (atom, parent)) |
46 |
+ msg.append("%s required by %s %s\n" % (atom, parent, use_display)) |
47 |
msg.append(2*indent) |
48 |
msg.append(marker) |
49 |
msg.append("\n") |
50 |
@@ -8472,14 +8482,20 @@ class depgraph(object): |
51 |
else: |
52 |
# Display the specific atom from SetArg or |
53 |
# Package types. |
54 |
+ if isinstance(parent, Package): |
55 |
+ use_display = pkg_use_display(parent, |
56 |
+ self._frozen_config.myopts, |
57 |
+ modified_use=self._pkg_use_enabled(parent)) |
58 |
+ else: |
59 |
+ use_display = "" |
60 |
if atom.package and atom != atom.unevaluated_atom: |
61 |
# Show the unevaluated atom, since it can reveal |
62 |
# issues with conditional use-flags missing |
63 |
# from IUSE. |
64 |
- msg.append("%s (%s) required by %s" % |
65 |
- (atom.unevaluated_atom, atom, parent)) |
66 |
+ msg.append("%s (%s) required by %s %s" % |
67 |
+ (atom.unevaluated_atom, atom, parent, use_display)) |
68 |
else: |
69 |
- msg.append("%s required by %s" % (atom, parent)) |
70 |
+ msg.append("%s required by %s %s" % (atom, parent, use_display)) |
71 |
msg.append("\n") |
72 |
|
73 |
msg.append("\n") |
74 |
|
75 |
diff --git a/lib/_emerge/resolver/slot_collision.py b/lib/_emerge/resolver/slot_collision.py |
76 |
index f676b38c8..682a3a0a5 100644 |
77 |
--- a/lib/_emerge/resolver/slot_collision.py |
78 |
+++ b/lib/_emerge/resolver/slot_collision.py |
79 |
@@ -9,6 +9,7 @@ from portage import _encodings, _unicode_encode |
80 |
from _emerge.AtomArg import AtomArg |
81 |
from _emerge.Package import Package |
82 |
from _emerge.PackageArg import PackageArg |
83 |
+from _emerge.UseFlagDisplay import pkg_use_display |
84 |
from portage.dep import check_required_use |
85 |
from portage.output import colorize |
86 |
from portage._sets.base import InternalPackageSet |
87 |
@@ -260,7 +261,9 @@ class slot_conflict_handler(object): |
88 |
|
89 |
for pkg in pkgs: |
90 |
msg.append(indent) |
91 |
- msg.append("%s" % (pkg,)) |
92 |
+ msg.append("%s %s" % (pkg, pkg_use_display(pkg, |
93 |
+ self.depgraph._frozen_config.myopts, |
94 |
+ modified_use=self.depgraph._pkg_use_enabled(pkg)))) |
95 |
parent_atoms = self.all_parents.get(pkg) |
96 |
if parent_atoms: |
97 |
#Create a list of collision reasons and map them to sets |
98 |
@@ -569,9 +572,15 @@ class slot_conflict_handler(object): |
99 |
ordered_list.append(parent_atom) |
100 |
for parent_atom in ordered_list: |
101 |
parent, atom = parent_atom |
102 |
+ if isinstance(parent, Package): |
103 |
+ use_display = pkg_use_display(parent, |
104 |
+ self.depgraph._frozen_config.myopts, |
105 |
+ modified_use=self.depgraph._pkg_use_enabled(parent)) |
106 |
+ else: |
107 |
+ use_display = "" |
108 |
if atom.soname: |
109 |
- msg.append("%s required by %s\n" % |
110 |
- (atom, parent)) |
111 |
+ msg.append("%s required by %s %s\n" % |
112 |
+ (atom, parent, use_display)) |
113 |
elif isinstance(parent, PackageArg): |
114 |
# For PackageArg it's |
115 |
# redundant to display the atom attribute. |
116 |
@@ -602,7 +611,7 @@ class slot_conflict_handler(object): |
117 |
if version_violated or slot_violated: |
118 |
self.is_a_version_conflict = True |
119 |
|
120 |
- cur_line = "%s required by %s\n" % (atom_str, parent) |
121 |
+ cur_line = "%s required by %s %s\n" % (atom_str, parent, use_display) |
122 |
marker_line = "" |
123 |
for ii in range(len(cur_line)): |
124 |
if ii in colored_idx: |