Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 581564 - dev-python/PyQt5-5.6.1 depends on wrong Qt versions
Summary: dev-python/PyQt5-5.6.1 depends on wrong Qt versions
Status: RESOLVED DUPLICATE of bug 563898
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-29 15:38 UTC by Andrew John Hughes
Modified: 2016-04-30 23:45 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 Andrew John Hughes 2016-04-29 15:38:09 UTC
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
Comment 1 Davide Pesavento (RETIRED) gentoo-dev 2016-04-30 12:01:27 UTC
(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 ***
Comment 2 Andrew John Hughes 2016-04-30 23:28:35 UTC
(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.
Comment 3 Davide Pesavento (RETIRED) gentoo-dev 2016-04-30 23:45:36 UTC
(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.