PyQt5 5.6.x presumably needs the 5.6.x version of the Qt libraries. However, it doesn't attempt to update webkit: # emerge -pv PyQt5 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-python/PyQt5-5.6.1_pre1604271126::gentoo [5.5.1::gentoo] USE="dbus declarative* gui multimedia* network opengl printsupport sql* svg webkit widgets x11extras* xmlpatterns* -debug -designer -doc -examples -gles2 -help -positioning -sensors -serialport -testlib -webchannel -websockets" PYTHON_TARGETS="python2_7 python3_5 -python3_3 -python3_4" 0 KiB Also waiting is: # emerge -pv qtwebkit These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-qt/qtwebkit-5.6.0:5/5.6::gentoo [5.4.2:5/5::gentoo] USE="gstreamer jit%* opengl printsupport webp -debug -geolocation% -gstreamer010 -multimedia -orientation% -qml {-test} -webchannel% (-udev%*)" 34,476 KiB Thus, the PyQt5 build, without updating qtwebkit, fails: x86_64-pc-linux-gnu-g++ -c -O2 -pipe -march=core2 -ggdb -fno-exceptions -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WEBKITWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/python2.7 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWebKitWidgets -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtWebKit -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. -I/usr/lib64/qt5/mkspecs/linux-g++ -o sipQtWebKitWidgetsQWebPageExtensionOption.o sipQtWebKitWidgetsQWebPageExtensionOption.cpp /mnt/builder/portage.build/portage/dev-python/PyQt5-5.6.1_pre1604271126/work/PyQt5_gpl-5.6.1.dev1604271126-python2_7/QtWebKitWidgets/sipQtWebKitWidgetsQWebHitTestResult.cpp: In function ‘PyObject* meth_QWebHitTestResult_linkTitleString(PyObject*, PyObject*)’: /mnt/builder/portage.build/portage/dev-python/PyQt5-5.6.1_pre1604271126/work/PyQt5_gpl-5.6.1.dev1604271126-python2_7/QtWebKitWidgets/sipQtWebKitWidgetsQWebHitTestResult.cpp:553:42: error: ‘const class QWebHitTestResult’ has no member named ‘linkTitleString’ sipRes = new QString(sipCpp->linkTitleString()); ^ Makefile:658: recipe for target 'sipQtWebKitWidgetsQWebHitTestResult.o' failed
(In reply to Andrew John Hughes from comment #0) > PyQt5 5.6.x presumably needs the 5.6.x version of the Qt libraries. No, it does not. > # emerge -pv qtwebkit > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild U ] dev-qt/qtwebkit-5.6.0:5/5.6::gentoo [5.4.2:5/5::gentoo] > USE="gstreamer jit%* opengl printsupport webp -debug -geolocation% > -gstreamer010 -multimedia -orientation% -qml {-test} -webchannel% (-udev%*)" > 34,476 KiB You have qtwebkit-5.4.2 (which btw is no longer available in the tree), while the rest of your Qt installation is at 5.5.1 or later. We stopped supporting "unaligned" versions of Qt modules in 5.5.1(-r1) because it was a maintenance hassle, and because several 3rd party projects (e.g. PyQt5) assumed all modules are at the same version. TL;DR: You need to update to qtwebkit-5.5.1 or later. > Thus, the PyQt5 build, without updating qtwebkit, fails: > > x86_64-pc-linux-gnu-g++ -c -O2 -pipe -march=core2 -ggdb -fno-exceptions > -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC > -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WEBKITWIDGETS_LIB > -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_WEBKIT_LIB -DQT_GUI_LIB > -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/python2.7 > -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWebKitWidgets -isystem > /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtWidgets -isystem > /usr/include/qt5/QtWebKit -isystem /usr/include/qt5/QtGui -isystem > /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -I. > -I/usr/lib64/qt5/mkspecs/linux-g++ -o > sipQtWebKitWidgetsQWebPageExtensionOption.o > sipQtWebKitWidgetsQWebPageExtensionOption.cpp > /mnt/builder/portage.build/portage/dev-python/PyQt5-5.6.1_pre1604271126/work/ > PyQt5_gpl-5.6.1.dev1604271126-python2_7/QtWebKitWidgets/ > sipQtWebKitWidgetsQWebHitTestResult.cpp: In function ‘PyObject* > meth_QWebHitTestResult_linkTitleString(PyObject*, PyObject*)’: > /mnt/builder/portage.build/portage/dev-python/PyQt5-5.6.1_pre1604271126/work/ > PyQt5_gpl-5.6.1.dev1604271126-python2_7/QtWebKitWidgets/ > sipQtWebKitWidgetsQWebHitTestResult.cpp:553:42: error: ‘const class > QWebHitTestResult’ has no member named ‘linkTitleString’ > sipRes = new QString(sipCpp->linkTitleString()); > ^ > Makefile:658: recipe for target 'sipQtWebKitWidgetsQWebHitTestResult.o' > failed This is bug 563898. *** This bug has been marked as a duplicate of bug 563898 ***
(In reply to Davide Pesavento from comment #1) > (In reply to Andrew John Hughes from comment #0) > > PyQt5 5.6.x presumably needs the 5.6.x version of the Qt libraries. > > No, it does not. Ok, I see: # Minimal supported version of Qt. QT_PV="5.4.2:5" So, from bug 563898, I gather the problem was that Qt packages have been allowed to upgrade to 5.5 without taking QtWebKit with them. Is that correct? So, after https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf3cf2b99bb97b0ac13850a3537c72d0cc389f12, others won't encounter this? > > > # emerge -pv qtwebkit > > > > These are the packages that would be merged, in order: > > > > Calculating dependencies... done! > > [ebuild U ] dev-qt/qtwebkit-5.6.0:5/5.6::gentoo [5.4.2:5/5::gentoo] > > USE="gstreamer jit%* opengl printsupport webp -debug -geolocation% > > -gstreamer010 -multimedia -orientation% -qml {-test} -webchannel% (-udev%*)" > > 34,476 KiB > > You have qtwebkit-5.4.2 (which btw is no longer available in the tree), > while the rest of your Qt installation is at 5.5.1 or later. We stopped > supporting "unaligned" versions of Qt modules in 5.5.1(-r1) because it was a > maintenance hassle, and because several 3rd party projects (e.g. PyQt5) > assumed all modules are at the same version. > > TL;DR: You need to update to qtwebkit-5.5.1 or later. > Yes, I'm well aware of how to fix it. I was filing the bug as it looks like a missing dependency on the QtWebKit version at first glance.
(In reply to Andrew John Hughes from comment #2) > So, from bug 563898, I gather the problem was that Qt packages have been > allowed to upgrade to 5.5 without taking QtWebKit with them. Is that correct? > So, after > https://gitweb.gentoo.org/repo/gentoo.git/commit/ > ?id=bf3cf2b99bb97b0ac13850a3537c72d0cc389f12, others won't encounter this? Correct. > > TL;DR: You need to update to qtwebkit-5.5.1 or later. > > > > Yes, I'm well aware of how to fix it. I was filing the bug as it looks like > a missing dependency on the QtWebKit version at first glance. Well the deps have already been fixed long ago. However you first need to upgrade to 5.5.1 to get the correct ones. We can't change the dependencies retroactively on already installed packages.