Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emerge: Show package USE in conflict messages #485

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
26 changes: 21 additions & 5 deletions lib/_emerge/depgraph.py
Expand Up @@ -1285,7 +1285,10 @@ def _show_missed_update_slot_conflicts(self, missed_updates):
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:
Expand All @@ -1302,8 +1305,15 @@ def _show_missed_update_slot_conflicts(self, missed_updates):
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")
Expand Down Expand Up @@ -8472,14 +8482,20 @@ def _show_unsatisfied_blockers(self, blockers):
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")
Expand Down
17 changes: 13 additions & 4 deletions lib/_emerge/resolver/slot_collision.py
Expand Up @@ -9,6 +9,7 @@
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
Expand Down Expand Up @@ -260,7 +261,9 @@ def _prepare_conflict_msg_and_check_for_specificity(self):

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
Expand Down Expand Up @@ -569,9 +572,15 @@ def highlight_violations(atom, version, use, slot_violated):
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.
Expand Down Expand Up @@ -602,7 +611,7 @@ def highlight_violations(atom, version, use, slot_violated):
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:
Expand Down