Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: lib/_emerge/, lib/_emerge/resolver/
Date: Sun, 15 Dec 2019 06:49:02
Message-Id: 1576391246.463b2d36f3d95760e48543f1f30410aa76267538.zmedico@gentoo
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: