commit:     44971d397c63e16b134d9b93b06ce3b8db768aca
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 29 05:18:30 2015 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Jul 29 18:43:21 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=44971d39

slot_conflict_handler: suggest --verbose-conflicts (bug 556172)

A suggestion to use --verbose-conflicts is now shown when relevant:

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-libs/icu:0

  (dev-libs/icu-54.1-r1:0/54a::gentoo, ebuild scheduled for merge) pulled in by
    <dev-libs/icu-55.1 (Argument)

  (dev-libs/icu-55.1:0/55::gentoo, installed) pulled in by
    dev-libs/icu:0/55 required by 
(app-office/libreoffice-bin-4.4.3.2:0/0::gentoo, installed)
                ^^^^^
    >=dev-libs/icu-51.2-r1:0/55=[abi_x86_32(-),abi_x86_64(-)] required by 
(dev-libs/libxml2-2.9.2-r1:2/2::gentoo, installed)
                          ^^^^^^
    (and 19 more with the same problems)

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

X-Gentoo-Bug: 556172
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=556172
Acked-by: Alexander Berntsen <bernalex <AT> gentoo.org>

 pym/_emerge/resolver/slot_collision.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/pym/_emerge/resolver/slot_collision.py 
b/pym/_emerge/resolver/slot_collision.py
index 5473d72..cfb5885 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -242,6 +242,7 @@ class slot_conflict_handler(object):
                """
                _pkg_use_enabled = self.depgraph._pkg_use_enabled
                verboseconflicts = "--verbose-conflicts" in self.myopts
+               any_omitted_parents = False
                msg = self.conflict_msg
                indent = "  "
                msg.append("\n!!! Multiple package instances within a single " 
+ \
@@ -596,6 +597,7 @@ class slot_conflict_handler(object):
                                        
                                        omitted_parents = 
num_all_specific_atoms - len(selected_for_display)
                                        if omitted_parents:
+                                               any_omitted_parents = True
                                                msg.append(2*indent)
                                                if len(selected_for_display) > 
1:
                                                        msg.append("(and %d 
more with the same problems)\n" % omitted_parents)
@@ -604,7 +606,14 @@ class slot_conflict_handler(object):
                                else:
                                        msg.append(" (no parents)\n")
                                msg.append("\n")
-               msg.append("\n")
+
+               if any_omitted_parents:
+                       msg.append(colorize("INFORM",
+                               "NOTE: Use the '--verbose-conflicts'"
+                               " option to display parents omitted above"))
+                       msg.append("\n\n")
+               else:
+                       msg.append("\n")
 
        def get_explanation(self):
                msg = ""

Reply via email to