commit: 463b2d36f3d95760e48543f1f30410aa76267538 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sun Dec 15 05:30:13 2019 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Dec 15 06:27:26 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=463b2d36
emerge: Show package USE in conflict messages Bug: https://bugs.gentoo.org/310009 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/_emerge/depgraph.py | 26 +++++++++++++++++++++----- lib/_emerge/resolver/slot_collision.py | 17 +++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index 02e0e075d..1a5448c8f 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -1285,7 +1285,10 @@ class depgraph(object): msg.append("\n\n") msg.append(indent) - msg.append(str(pkg)) + msg.append("%s %s" % (pkg, + pkg_use_display(pkg, + self._frozen_config.myopts, + modified_use=self._pkg_use_enabled(pkg)))) msg.append(" conflicts with\n") for parent, atom in parent_atoms: @@ -1302,8 +1305,15 @@ class depgraph(object): atom, marker = format_unmatched_atom( pkg, atom, self._pkg_use_enabled) + if isinstance(parent, Package): + use_display = pkg_use_display(parent, + self._frozen_config.myopts, + modified_use=self._pkg_use_enabled(parent)) + else: + use_display = "" + msg.append(2*indent) - msg.append("%s required by %s\n" % (atom, parent)) + msg.append("%s required by %s %s\n" % (atom, parent, use_display)) msg.append(2*indent) msg.append(marker) msg.append("\n") @@ -8472,14 +8482,20 @@ class depgraph(object): else: # Display the specific atom from SetArg or # Package types. + if isinstance(parent, Package): + use_display = pkg_use_display(parent, + self._frozen_config.myopts, + modified_use=self._pkg_use_enabled(parent)) + else: + use_display = "" if atom.package and atom != atom.unevaluated_atom: # Show the unevaluated atom, since it can reveal # issues with conditional use-flags missing # from IUSE. - msg.append("%s (%s) required by %s" % - (atom.unevaluated_atom, atom, parent)) + msg.append("%s (%s) required by %s %s" % + (atom.unevaluated_atom, atom, parent, use_display)) else: - msg.append("%s required by %s" % (atom, parent)) + msg.append("%s required by %s %s" % (atom, parent, use_display)) msg.append("\n") msg.append("\n") diff --git a/lib/_emerge/resolver/slot_collision.py b/lib/_emerge/resolver/slot_collision.py index f676b38c8..682a3a0a5 100644 --- a/lib/_emerge/resolver/slot_collision.py +++ b/lib/_emerge/resolver/slot_collision.py @@ -9,6 +9,7 @@ from portage import _encodings, _unicode_encode from _emerge.AtomArg import AtomArg from _emerge.Package import Package from _emerge.PackageArg import PackageArg +from _emerge.UseFlagDisplay import pkg_use_display from portage.dep import check_required_use from portage.output import colorize from portage._sets.base import InternalPackageSet @@ -260,7 +261,9 @@ class slot_conflict_handler(object): for pkg in pkgs: msg.append(indent) - msg.append("%s" % (pkg,)) + msg.append("%s %s" % (pkg, pkg_use_display(pkg, + self.depgraph._frozen_config.myopts, + modified_use=self.depgraph._pkg_use_enabled(pkg)))) parent_atoms = self.all_parents.get(pkg) if parent_atoms: #Create a list of collision reasons and map them to sets @@ -569,9 +572,15 @@ class slot_conflict_handler(object): ordered_list.append(parent_atom) for parent_atom in ordered_list: parent, atom = parent_atom + if isinstance(parent, Package): + use_display = pkg_use_display(parent, + self.depgraph._frozen_config.myopts, + modified_use=self.depgraph._pkg_use_enabled(parent)) + else: + use_display = "" if atom.soname: - msg.append("%s required by %s\n" % - (atom, parent)) + msg.append("%s required by %s %s\n" % + (atom, parent, use_display)) elif isinstance(parent, PackageArg): # For PackageArg it's # redundant to display the atom attribute. @@ -602,7 +611,7 @@ class slot_conflict_handler(object): if version_violated or slot_violated: self.is_a_version_conflict = True - cur_line = "%s required by %s\n" % (atom_str, parent) + cur_line = "%s required by %s %s\n" % (atom_str, parent, use_display) marker_line = "" for ii in range(len(cur_line)): if ii in colored_idx:
