Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 624820 - Don't show slot conflicts for packages that are already in the merge list
Summary: Don't show slot conflicts for packages that are already in the merge list
Status: UNCONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-13 00:04 UTC by Wyatt Epp
Modified: 2023-04-13 01:27 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wyatt Epp 2017-07-13 00:04:09 UTC
I've seen this a few times, and it's always kind of baffling: I'll go to update a package, it'll pull in a bunch of deps that have slot conflicts, and they'll all block each other needlessly.   A good example just came up-- here's the merge list and the first (verbose) conflict.  Note how many of the things that require the old version of qt-core are, in fact, already slated for upgrade in this same depgraph.  This behaviour adds so much noise to the signal that the slot conflict messages become a source of confusion rather than information, and it's very tedious to tease out what is relevant and what is not:

Calculating dependencies... done!
[ebuild     U  ] media-libs/freetype-2.8:2::gentoo [2.5.5:2::gentoo] USE="X adobe-cff bzip2 cleartype_hinting%* infinality png -bindist -debug -doc -fontforge -harfbuzz -static-libs -utils (-auto-hinter%)" ABI_X86="32 (64) (-x32)" 1,830 KiB
[ebuild     U  ] dev-libs/libpcre-8.40-r1:3::gentoo [8.36:3::gentoo] USE="bzip2 cxx jit pcre16* readline recursion-limit static-libs* (unicode) zlib -libedit -pcre32" ABI_X86="32 (64) (-x32)" 1,524 KiB
[ebuild  N     ] dev-libs/double-conversion-2.0.1:0/1::gentoo  USE="-static-libs" 6,850 KiB
[ebuild  NS    ] dev-qt/qtcore-5.7.1-r3:5/5.7::gentoo [4.8.6-r2:4::gentoo] USE="-debug -icu -systemd {-test}" 43,939 KiB
[ebuild  NS    ] dev-qt/qtdbus-5.7.1:5/5.7::gentoo [4.8.6-r1:4::gentoo] USE="-debug {-test}" 0 KiB
[ebuild     U  ] media-libs/harfbuzz-1.4.5:0/0.9.18::gentoo [0.9.38:0/0.9.18::gentoo] USE="cairo glib graphite icu introspection truetype -fontconfig% -static-libs {-test}" ABI_X86="32 (64) (-x32)" 1,440 KiB
[ebuild  N     ] x11-libs/libxkbcommon-0.7.1::gentoo  USE="X -doc -static-libs {-test}" ABI_X86="32 (64) (-x32)" 608 KiB
[ebuild     U  ] dev-qt/qtcore-4.8.7-r2:4::gentoo [4.8.6-r2:4::gentoo] USE="exceptions glib iconv qt3support ssl (-aqua) -debug -icu (-libressl) -pch" ABI_X86="32 (64) (-x32)" 235,426 KiB
[ebuild     U  ] dev-qt/qttranslations-4.8.7:4::gentoo [4.8.6-r1:4::gentoo] ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] dev-qt/qtscript-4.8.7:4::gentoo [4.8.6-r2:4::gentoo] USE="exceptions jit (-aqua) -debug -pch" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] dev-qt/qtgui-4.8.7:4::gentoo [4.8.6-r4:4::gentoo] USE="accessibility cups exceptions glib mng qt3support tiff xinerama xv (-aqua) -debug -egl -gtkstyle -nas -nis -pch -trace" ABI_X86="32 (64) (-x32)" 51 KiB
[ebuild     U  ] dev-qt/qtdbus-4.8.7:4::gentoo [4.8.6-r1:4::gentoo] USE="exceptions (-aqua) -debug -pch" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] dev-qt/qtopengl-4.8.7:4::gentoo [4.8.6-r1:4::gentoo] USE="exceptions qt3support (-aqua) -debug -egl -pch" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild  NS    ] dev-qt/qtgui-5.7.1-r1:5/5.7::gentoo [4.8.6-r4:4::gentoo] USE="dbus gif gtk jpeg png udev xcb -accessibility -debug -egl -eglfs -evdev -gles2 -ibus -libinput {-test} -tslib -tuio" 0 KiB
[ebuild  N     ] dev-qt/qtwidgets-5.7.1:5/5.7::gentoo  USE="png xcb -debug -gles2 {-test}" 0 KiB
[ebuild  N     ] dev-qt/qtx11extras-5.7.1:5/5.7::gentoo  USE="-debug {-test}" 59 KiB
[ebuild  NS    ] dev-qt/qtopengl-5.7.1:5/5.7::gentoo [4.8.6-r1:4::gentoo] USE="-debug -gles2 {-test}" 0 KiB
[ebuild     U  ] dev-qt/qtsql-4.8.7-r1:4::gentoo [4.8.6-r1:4::gentoo] USE="exceptions postgres qt3support sqlite (-aqua) -debug -freetds -mysql* -oci8 -odbc -pch" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] dev-qt/qt3support-4.8.7:4::gentoo [4.8.6-r1:4::gentoo] USE="accessibility exceptions (-aqua) -debug -pch" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild     U  ] media-libs/openjpeg-2.1.1_p20160922:2/7::gentoo [2.1.0:2/7::gentoo] USE="-doc -static-libs {-test}" ABI_X86="32%* (64%*) (-x32)" 1,958 KiB
[ebuild  N     ] kde-frameworks/extra-cmake-modules-5.34.0:5/5.34::gentoo  USE="-doc {-test}" 306 KiB
[ebuild     U ~] media-video/ffmpeg-3.3.2:0/55.57.57::gentoo [2.8.5:0/54.56.56::gentoo] USE="X alsa amr bzip2 encode gpl hardcoded-tables iconv jack jpeg2k ladspa mp3 network openal opengl openssl opus postproc samba sdl theora threads truetype v4l vaapi vdpau vorbis x264 xcb xvid zlib (-altivec) -amrenc -bluray -bs2b -cdio -celt -chromaprint% -cpudetection -debug -doc -fdk -flite -fontconfig -frei0r -fribidi -gcrypt% -gme -gmp% -gnutls -gsm -iec61883 -ieee1394 -kvazaar% -libass -libcaca -libilbc% -librtmp -libsoxr -libv4l -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-mmal) -modplug -nvenc% -openh264% -oss -pic -pulseaudio -rubberband% -schroedinger -snappy -sofalizer% -speex -ssh -static-libs {-test} -twolame -vpx -wavpack -webp -x265 -zeromq% -zimg% -zvbi (-aac%*) (-aacplus%) (-armv5te%) (-armv6%) (-armv6t2%) (-armvfp%) (-examples%) (-faac%*) (-libressl%) (-neon%) (-quvi%)" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="avx mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 -3dnow -3dnowext -aes% -avx2 -fma3 -fma4 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher" 9,705 KiB
[ebuild     U  ] media-libs/phonon-4.9.1-r1::gentoo [4.8.3::gentoo] USE="gstreamer qt4 qt5* vlc (-aqua) -debug -designer* -pulseaudio (-zeitgeist)" ABI_X86="32%* (64%*) (-x32)" 315 KiB
[ebuild     U  ] media-libs/phonon-vlc-0.9.1-r1::gentoo [0.8.2::gentoo] USE="qt4 qt5* -debug" 59 KiB
[ebuild     U  ] media-libs/phonon-gstreamer-4.9.0-r1::gentoo [4.8.2::gentoo] USE="alsa network qt4 qt5* -debug" 75 KiB

Total: 25 packages (16 upgrades, 5 new, 4 in new slots), Size of downloads: 304,138 KiB

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

dev-qt/qtcore:4

  (dev-qt/qtcore-4.8.7-r2:4/4::gentoo, ebuild scheduled for merge) pulled in by
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtsql-4.8.7-r1:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtscript-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,glib=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtgui-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    >=dev-qt/qtcore-4.8.7-r2:4[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (media-libs/phonon-4.9.1-r1:0/0::gentoo, ebuild scheduled for merge)
    ^^              ^^^^^^^^^^
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtdbus-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    >=dev-qt/qtcore-4.8.7-r2:4 required by (media-libs/phonon-vlc-0.9.1-r1:0/0::gentoo, ebuild scheduled for merge)
    ^^              ^^^^^^^^^^
    ~dev-qt/qtcore-4.8.7 required by (dev-qt/qttranslations-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtopengl-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.7[aqua=,debug=,qt3support,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qt3support-4.8.7:4/4::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                            
    >=dev-qt/qtcore-4.8.7-r2:4[glib] required by (media-libs/phonon-gstreamer-4.9.0-r1:0/0::gentoo, ebuild scheduled for merge)
    ^^              ^^^^^^^^^^

  (dev-qt/qtcore-4.8.6-r2:4/4::gentoo, installed) pulled in by
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtdeclarative-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qttest-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtxmlpatterns-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,glib=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtgui-4.8.6-r4:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtopengl-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,qt3support,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qt3support-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/designer-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtmultimedia-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtsvg-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,qt3support=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtsql-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtscript-4.8.6-r2:4/4::gentoo, installed)
    ^              ^^^^^
    ~dev-qt/qtcore-4.8.6[aqua=,debug=,ssl,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?] required by (dev-qt/qtwebkit-4.8.6-r1:4/4::gentoo, installed)
    ^              ^^^^^

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2017-07-13 00:31:33 UTC
The fact that a new version got pulled in doesn't prove that the old version is irrelevant. The old version would not be displayed if it hadn't been pulled into the graph somehow. What you need to see is how the old versions got pulled into the graph, and you won't even know that they got pulled in unless we display them somehow.
Comment 2 Wyatt Epp 2017-07-13 14:54:41 UTC
(In reply to Zac Medico from comment #1)
> The fact that a new version got pulled in doesn't prove that the old version
> is irrelevant. The old version would not be displayed if it hadn't been
> pulled into the graph somehow. What you need to see is how the old versions
> got pulled into the graph, and you won't even know that they got pulled in
> unless we display them somehow.

Sorry, I wasn't trying to imply that's the case.  What I'm after here is improvement of the feedback to tell me precisely what is causing the conflict.  Like the example I pasted (the first of nine):

There's a line that says ~dev-qt/qtcore-4.8.6 is required by dev-qt/qt3support-4.8.6-r1, but both qtcore-4.8.7 and qt3support-4.8.7 are scheduled for merge-- all things being equal, qt3support isn't relevant to qtcore when we're talking about slot conflicts.  This is an example of what I consider noise in this context.

It's not until we go down to the dev-qt/qt3support section that we see the real conflict creators for this package are apparently dev-qt/designer-4.8.6-r1 and dev-qt/qtdeclarative-4.8.6-r1 (and then, we only see it if we have --verbose-conflicts because the short form is showing dev-qt/qtgui-4.8.6-r4, which is also slated for upgrade in this depgraph).  _Those_ are not in the merge list.  They are the signal that I want to see flagged as causing conflict with bright colours (or optionally pulled into the merge list? Undecided on that one).

If depgraph calculation was just a few seconds, I probably wouldn't mind the way things are nearly so much, but the above `emerge -1upv --verbose-conflicts media-libs/phonon-vlc vlc ffmpeg` time'd in at 1m37.228s and I have an IVB i7 with a nice SSD.  And that's before I can even know if I succeeded or failed-- once I find out there's a problem, I need to go through the very verbose output, possibly rerunning the calculation with a switch to show enough data that it's actionable.

When it eats so much time, the emerge/troubleshoot cycle becomes very slow and frustrating for humans, and it's in everyone's best interest to eliminate as much of this cycle as possible by improving the content and format of the output.

From what I've seen, the root causes of conflict are generally rather few in number, so I think it might be worth considering an inversion of the format.  Put the root culprits front-and-centre so users can cut to the chase and make decisions about what should be done.

Here's a little mock-up showing the sort of output I would like to have:

Total: 25 packages (16 upgrades, 5 new, 4 in new slots), Size of downloads: 304,138 KiB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict.  The following
!!! packages have constraints that cannot be resolved with this depgraph:

~dev-qt/designer-4.8.6
    Version constraint (~dev-qt/qtcore-4.8.6) blocks (dev-qt/qtcore-4.8.7-r2:4::gentoo, ebuild scheduled for merge)
    USE constraint     (qt3support ? ~dev-qt/qt3support-4.8.6) blocks (dev-qt/qt3support-4.8.7:4::gentoo, ebuild scheduled for merge)
    Version constraint (~dev-qt/qtscript-4.8.6) blocks (dev-qt/qtscript-4.8.7:4::gentoo, ebuild scheduled for merge)
    (...and 5 more)

~dev-qt/qtdeclarative-4.8.6
    USE constraint     (declarative ? ~dev-qt/qt3support-4.8.6) blocks (dev-qt/qt3support-4.8.7:4::gentoo, ebuild scheduled for merge)
    Version constraint (~dev-qt/qtsql-4.8.6) blocks (dev-qt/qtsql-4.8.7-r1:4/4::gentoo, ebuild scheduled for merge)
    Version constraint (~dev-qt/qtscript-4.8.6) blocks (dev-qt/qtscript-4.8.7:4::gentoo, ebuild scheduled for merge)
    (...and 7 more)

~dev-qt/qttest-4.8.6
    Version constraint (~dev-qt/qtcore-4.8.6) blocks (dev-qt/qtcore-4.8.7-r2:4::gentoo, ebuild scheduled for merge)

!!! Some conflicting packages have updates available. Adding the following
!!! updates to your dependency graph may allow the merge to continue:

=dev-qt/designer-4.8.7:4::gentoo
=dev-qt/qtdeclarative-4.8.7:4::gentoo
=dev-qt/qttest-4.8.7:4::gentoo

Would you like to add these packages to the merge list? [Yes/No] n

!!! Some conflicts are triggered by the presence of USE flags.  You may be able
!!! to resolve this problem with the following USE changes:

>=dev-qt/designer-4.8.6 -declarative -qt3support

Would you like to add these changes to your config files? [Yes/No]