Created attachment 466110 [details] emerge --info dev-python/QtPy ignores already installed PyQt5 that satisfies a superset of required USEFLAGS. I have dev-python/PyQt5 installed with the following USE: dev-python/PyQt5-5.7.1::gentoo was built with the following: USE="dbus gui network opengl printsupport svg webkit widgets -bluetooth -debug -declarative -designer -doc -examples -gles2 -help -location -multimedia -positioning -sensors -serialport -sql -testlib -webchannel -webengine -websockets -x11extras -xmlpatterns" ABI_X86="64" PYTHON_TARGETS="python2_7 python3_5 -python3_4" If I try to install QtPy with the exact USEFLAGS supported by PyQt5, all is fine and nothing unnecessary gets pulled: USE="gui webkit" emerge -a QtPy These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-python/QtPy-1.2.1 USE="gui opengl svg webkit -designer -testlib" PYTHON_TARGETS="python2_7 python3_5 -python3_4" However if I only need a subset of the features, PyQt5, which arguably satisfies the demand, gets ignored and PyQt4 gets pulled: USE="gui" emerge -a QtPy These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] app-eselect/eselect-qtgraphicssystem-1.1.1 [ebuild NS ] dev-qt/qtcore-4.8.7-r2 [5.7.1-r1] USE="exceptions glib iconv pch ssl (-aqua) -debug -icu -libressl -qt3support" ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qttranslations-4.8.7 [5.7.1] ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qtdbus-4.8.7 [5.7.1] USE="exceptions pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qtscript-4.8.7 [5.7.1] USE="exceptions jit pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qtgui-4.8.7 [5.7.1] USE="accessibility cups exceptions glib gtkstyle mng pch tiff xv (-aqua) -debug -egl -nas -nis -qt3support -trace -xinerama" ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qtsvg-4.8.7 [5.7.1] USE="accessibility exceptions pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" [ebuild NS ] dev-qt/qtopengl-4.8.7 [5.7.1] USE="exceptions pch (-aqua) -debug -egl -qt3support" ABI_X86="(64) -32 (-x32)" [ebuild N ] dev-python/PyQt4-4.12 USE="X dbus opengl svg -compat -debug -declarative -designer -doc -examples -help -kde -multimedia -phonon -script -scripttools -sql -testlib -webkit -xmlpatterns" PYTHON_TARGETS="python2_7 python3_5 -python3_4" [ebuild N ] dev-python/QtPy-1.2.1 USE="gui opengl svg -designer -testlib -webkit" PYTHON_TARGETS="python2_7 python3_5 -python3_4" So, in summary if QtPy does not need a functionality (in my case webkit) but an already installer provider supports it, it gets ignored.
Could you please add the output of 'USE="gui" emerge -av QtPy PyQt5'? It would be interesting to see what happens when it's explicitly pulled in at the same time.
It does what I am trying to avoid: USE="gui" emerge -av QtPy PyQt5 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] app-eselect/eselect-qtgraphicssystem-1.1.1::gentoo 2 KiB [ebuild R ] dev-python/PyQt5-5.7.1::gentoo USE="dbus gui network opengl printsupport svg webkit widgets -bluetooth -debug -declarative -designer -doc -examples -gles2 -help -location -multimedia -positioning -sensors -serialport -sql -testlib -webchannel -webengine -websockets -x11extras -xmlpatterns" PYTHON_TARGETS="python2_7 python3_5 -python3_4" 0 KiB [ebuild NS ] media-libs/gstreamer-0.10.36-r2:0.10::gentoo [1.10.4:1.0::gentoo] USE="introspection nls orc {-test}" ABI_X86="(64) -32 (-x32)" 2 955 KiB [ebuild NS ] media-libs/gst-plugins-base-0.10.36-r2:0.10::gentoo [1.10.4:1.0::gentoo] USE="introspection nls orc" ABI_X86="(64) -32 (-x32)" 2 309 KiB [ebuild N ] media-libs/gst-plugins-ugly-0.10.19-r1:0.10::gentoo USE="nls orc" ABI_X86="(64) -32 (-x32)" 862 KiB [ebuild N ] media-libs/gst-plugins-bad-0.10.23-r4:0.10::gentoo USE="nls orc" ABI_X86="(64) -32 (-x32)" 3 087 KiB [ebuild NS ] media-libs/gst-plugins-good-0.10.31-r2:0.10::gentoo [1.10.4:1.0::gentoo] USE="nls orc" ABI_X86="(64) -32 (-x32)" 2 674 KiB [ebuild N ] media-plugins/gst-plugins-xvideo-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-x-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-ogg-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-vorbis-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-alsa-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-theora-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-cdparanoia-0.10.36-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-vp8-0.10.23-r3:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-assrender-0.10.23-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-mad-0.10.19-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-faad-0.10.23-r2:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-mpeg2dec-0.10.19-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-dts-0.10.23-r1:0.10::gentoo USE="orc" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-xvid-0.10.23-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-dv-0.10.31-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-x264-0.10.19-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-dvdread-0.10.19-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-a52dec-0.10.19-r1:0.10::gentoo USE="orc" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-flac-0.10.31-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-resindvd-0.10.23-r1:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild NS ] dev-qt/qtcore-4.8.7-r2:4::gentoo [5.7.1-r1:5/5.7::gentoo] USE="exceptions glib iconv pch ssl (-aqua) -debug -icu -libressl -qt3support" ABI_X86="(64) -32 (-x32)" 235 426 KiB [ebuild NS ] dev-qt/qttranslations-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild NS ] dev-qt/qtdbus-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] USE="exceptions pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild NS ] dev-qt/qtscript-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] USE="exceptions jit pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild NS ] dev-qt/qtgui-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] USE="accessibility cups exceptions glib gtkstyle mng pch tiff xv (-aqua) -debug -egl -nas -nis -qt3support -trace -xinerama" ABI_X86="(64) -32 (-x32)" 51 KiB [ebuild NS ] dev-qt/qtsvg-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] USE="accessibility exceptions pch (-aqua) -debug" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild NS ] dev-qt/qtopengl-4.8.7:4::gentoo [5.7.1:5/5.7::gentoo] USE="exceptions pch (-aqua) -debug -egl -qt3support" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-pulse-0.10.31-r2:0.10::gentoo ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] media-plugins/gst-plugins-meta-0.10-r11:0.10::gentoo USE="X a52 aac alsa cdda dts dv dvd flac libass mp3 mpeg ogg pulseaudio theora vorbis vpx x264 xv xvid -dvb -http -jack -lame -libvisual -mms -modplug -musepack -opus -oss -taglib -v4l -vcd -wavpack" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] dev-qt/qtphonon-4.8.7:4::gentoo USE="dbus exceptions pch (-aqua) -debug -qt3support" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild N ] dev-python/PyQt4-4.12::gentoo USE="X dbus opengl phonon svg -compat -debug -declarative -designer -doc -examples -help -kde -multimedia -script -scripttools -sql -testlib -webkit -xmlpatterns" PYTHON_TARGETS="python2_7 python3_5 -python3_4" 11 060 KiB [ebuild R ] dev-python/QtPy-1.2.1::gentoo USE="gui opengl svg -designer -testlib -webkit*" PYTHON_TARGETS="python2_7 python3_5 -python3_4" 0 KiB
Oh, I think I see it: RDEPEND=" ... || ( dev-python/PyQt5[${PYTHON_USEDEP},designer=,opengl=,svg=,webkit=] dev-python/PyQt4[${PYTHON_USEDEP},designer=,opengl=,svg=,webkit=] dev-python/pyside[${PYTHON_USEDEP},designer=,opengl=,svg=,webkit=] ) ... " so PyQt5[webkit] does not satisfy QtPy[-webkit] because the ebuild states that they must have identical values. I wonder if it makes more sense for these to be '?' USE deps instead of '='.
I think it makes sense, those features are independent from each other. I can't think of any downside to having more Qt modules compiled-in than necessary.
In the absence of any other comments, I'm going to go ahead and push this.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=649ce73ba08a5fd8af802937b3b44fab8e9a4a82 commit 649ce73ba08a5fd8af802937b3b44fab8e9a4a82 Author: Michael Palimaka <kensington@gentoo.org> AuthorDate: 2017-09-28 12:21:39 +0000 Commit: Michael Palimaka <kensington@gentoo.org> CommitDate: 2017-09-28 12:21:56 +0000 dev-python/QtPy: version bump 1.3.1 Closes: https://bugs.gentoo.org/602528 Closes: https://bugs.gentoo.org/611856 Package-Manager: Portage-2.3.8, Repoman-2.3.3 dev-python/QtPy/Manifest | 1 + dev-python/QtPy/QtPy-1.3.1.ebuild | 55 +++++++++++++++++++++++++++++++++++++++ dev-python/QtPy/metadata.xml | 3 +++ 3 files changed, 59 insertions(+)