Summary: | dev-python/PyQt4-4.10.3-r3: ‘pyqt4ClassTypeDef’ has no member named ‘qt4_flags’ | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | PM <mitaspiotr> |
Component: | [OLD] Library | Assignee: | Qt Bug Alias <qt> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | adaptee, atykhonov, chris+gentoo-bugzilla, chris, gmturner007, grozin, kde, mackal.cook, markpariente, matrix47, octoploid, orzel, polidevk.polidevk, proteuss, rose, uwelk, xmw, yuriy, zeekec |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
PyQt4-4.10.3-r4-ebuild.patch
PyQt4-4.10.3-sip_4_15_5_compat.patch PyQt4-4.10.3-r4-ebuild.patch |
Description
PM
2014-04-01 12:11:26 UTC
* python3_2: running run_in_build_dir default make[1]: Entering directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_2/qpy' make[2]: Entering directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_2/qpy/QtCore' x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_qabstracteventdispatcher.o qpycore_qabstracteventdispatcher.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_chimera.o qpycore_chimera.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_chimera_signature.o qpycore_chimera_signature.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_chimera_storage.o qpycore_chimera_storage.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_classinfo.o qpycore_classinfo.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_init.o qpycore_init.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_misc.o qpycore_misc.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_post_init.o qpycore_post_init.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_pyqtboundsignal.o qpycore_pyqtboundsignal.cpp qpycore_chimera.cpp: In member function ‘void Chimera::set_flag()’: qpycore_chimera.cpp:557:50: error: ‘pyqt4ClassTypeDef’ has no member named ‘qt4_flags’ _is_flag = ((pyqt4ClassTypeDef *)_type)->qt4_flags & 0x01; ^ x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_pyqtconfigure.o qpycore_pyqtconfigure.cpp x86_64-pc-linux-gnu-g++ -c -march=corei7 -O2 -pipe -fno-strict-aliasing -Wall -W -fPIC -D_REENTRANT -DQT_DISABLE_DEPRECATED_BEFORE=0x040900 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/python3.2 -I../../QtCore -I. -I. -o qpycore_pyqtmethodproxy.o qpycore_pyqtmethodproxy.cpp Makefile:290: recipe for target 'qpycore_chimera.o' failed make[2]: *** [qpycore_chimera.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_2/qpy/QtCore' Makefile:3: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_2/qpy' Makefile:3: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: dev-python/PyQt4-4.10.3-r3::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-python/PyQt4-4.10.3-r3::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-python/PyQt4-4.10.3-r3::gentoo'`. * The complete build log is located at '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/environment'. * Working directory: '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_2' * S: '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3' Downgrading sip-4.15.5 -> 4.15.4 fixes this on my ~amd64. Same here. Downgrade to sip-4.15.4 fixed the issue with PyQt4. this appears to have been caused by an untested sip bump by python team, and also the prefix patch was dropped for some reason (In reply to Michael Palimaka (kensington) from comment #4) > this appears to have been caused by an untested sip bump by python team, and > also the prefix patch was dropped for some reason Indeed. And this is so annoying... It isn't the first time PyQt4 is broken because someone randomly bumps sip without bumping PyQt4 at the same time. Come on guys, I though you'd know by now... sip/PyQt4 *must* be handled together, just like shiboken/pyside, qscintilla/qscintilla-python, ... it's been like this for *ever*. Or even better, don't touch packages that you know nothing about. @idella4, can you explain why you dropped the patch? He rebased the patch and fixed that bit now. Arfrever also advised that fixing PyQt4 will also break pykde4. This bug brakes 'emerge --update --newuse --deep --with-bdeps=y --keep-going --backtrack=30 @world'. It fails with: Makefile:293: recipe for target 'qpycore_chimera.o' failed make[2]: *** [qpycore_chimera.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_3/qpy/QtCore' Makefile:3: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_3/qpy' Makefile:3: recipe for target 'all' failed make: *** [all] Error 2 * ERROR: dev-python/PyQt4-4.10.3-r3::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=dev-python/PyQt4-4.10.3-r3::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-python/PyQt4-4.10.3-r3::gentoo'`. * The complete build log is located at '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/environment'. * Working directory: '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3-python3_3' * S: '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/work/PyQt-x11-gpl-4.10.3' >>> Failed to emerge dev-python/PyQt4-4.10.3-r3, Log file: >>> '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/build.log' *** Resuming merge... Calculating dependencies... done! * One or more packages are either masked or have missing dependencies: * * >=dev-python/sip-4.15.0:0/10=[python_targets_python2_7(-),python_targets_python3_3(-),-python_single_target_python2_6(-),-python_single_target_python2_7(-),-python_single_target_python3_2(-),-python_single_target_python3_3(-)] pulled in by: * (dev-python/PyQt4-4.10.3-r3:0/0::gentoo, installed) * * The resume list contains packages that are either masked or have * unsatisfied dependencies. Please restart/continue the operation * manually, or use --skipfirst to skip the first package in the list and * any other packages that may be masked or have missing dependencies. * * The following package has failed to build or install: * * (dev-python/PyQt4-4.10.3-r3:0/0::gentoo, ebuild scheduled for merge), Log file: * '/var/tmp/portage/dev-python/PyQt4-4.10.3-r3/temp/build.log' * root@wildcat:/root(7)# qlist -Iv sip dev-python/sip-4.15.5 net-libs/sofia-sip-1.12.11 root@wildcat:/root(8)# emerge -pvD sip These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-python/sip-4.15.5:0/11 USE="doc -debug" PYTHON_TARGETS="python2_7 python3_3 -python2_6 -python3_2" 0 kB Masking =dev-python/sip-4.15.5 seems to solve the issue so far. + 02 Apr 2014; Patrick Lauer <patrick@gentoo.org> package.mask, + thirdpartymirrors: + Mask broken sip release #506452 That should momentarily avoid breakage ... (In reply to Patrick Lauer from comment #9) > + 02 Apr 2014; Patrick Lauer <patrick@gentoo.org> package.mask, > + thirdpartymirrors: > + Mask broken sip release #506452 > > That should momentarily avoid breakage ... The release is not broken, it is the bump that is broken. This combination builds ok (tested in a local overlay): dev-python/sip-4.15.5 dev-python/PyQt4-4.10.4 (just renamed dev-python/PyQt4-4.10.3-r3.ebuild) kde-base/pykde4-4.11.5:4 With this patch: https://bugs.kde.org/show_bug.cgi?id=332223#c3 Applied like: argus / # diff -ur /usr/portage/kde-base/pykde4/pykde4-4.11.5.ebuild /usr/local/portage/kde-base/pykde4/pykde4-4.11.5.ebuild --- /usr/portage/kde-base/pykde4/pykde4-4.11.5.ebuild 2014-02-25 13:01:20.000000000 +1100 +++ /usr/local/portage/kde-base/pykde4/pykde4-4.11.5.ebuild 2014-04-02 18:45:59.777455461 +1100 @@ -60,6 +60,9 @@ # See bug 322351 use arm && epatch "${FILESDIR}/${PN}-4.10.1-arm-sip.patch" + # https://bugs.kde.org/show_bug.cgi?id=332223#c3 + epatch "${FILESDIR}/${PN}-4.12.3-sip-4.15.5.patch" + sed -e 's/kpythonpluginfactory /kpython${PYTHON_SHORT_VERSION}pluginfactory /g' \ -i kpythonpluginfactory/CMakeLists.txt || die argus / # After speaking with the python team, the have agreed to be removed from the sip/PyQt4 metadata. *** Bug 506698 has been marked as a duplicate of this bug. *** Created attachment 375724 [details, diff]
PyQt4-4.10.3-r4-ebuild.patch
Several more changes were required here. This first patch modifies the ebuild to only apply the patch when sip-4.15.5 or greater is used so that we don't break i.e.: sip-4.15.4 compatibility.
Created attachment 375726 [details, diff]
PyQt4-4.10.3-sip_4_15_5_compat.patch
This is the patch to be placed in ${PORTDIR}/dev-python/PyQt4/files
This resolves all the issues I had compiling against sip-4.15.5, after finding corresponding changes between sip-4.15.4 and sip-4.15.5 for each compile failure. It does /not/ resolve several -Wnarrowing (C++11 incompatibility?) warnings I saw scrolling past during the build.
Created attachment 375728 [details, diff]
PyQt4-4.10.3-r4-ebuild.patch
Oops, my previous "patch" wasn't a patch at all, but some other silly thing -- here's the real patch this time.
Does latest pykde4 build against sip-4.16 and PyQt4-4.11 ? (In reply to Davide Pesavento from comment #17) > Does latest pykde4 build against sip-4.16 and PyQt4-4.11 ? @kde, if not, can you apply the patch mentioned in comment #11 please? I tried to test, but couldn't build PyQt4: make[2]: Entering directory `/var/tmp/portage/dev-python/PyQt4-4.11/work/PyQt-x11-gpl-4.11-python3_2/qpy/QtGui' x86_64-pc-linux-gnu-g++ -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -o w_qpygui -L/usr/lib64/qt4 -lQtGui -L/usr/lib64 -L/usr/lib64/qt4 -L/usr/X11R6/lib -lQtCore -lgthread-2.0 -lrt -lglib-2.0 -lpthread /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../lib64/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2: error: ld returned 1 exit status make[2]: *** [w_qpygui] Error 1 make[2]: Leaving directory `/var/tmp/portage/dev-python/PyQt4-4.11/work/PyQt-x11-gpl-4.11-python3_2/qpy/QtGui' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/dev-python/PyQt4-4.11/work/PyQt-x11-gpl-4.11-python3_2/qpy' make: *** [all] Error 2 pykde4-4.13.3 (from overlay, will be in tree soon) builds fine with latest masked PyQt4/sip. When it's moved to the tree, I'll drop PyQt4/sip masks & old versions. (In reply to Michael Palimaka (kensington) from comment #20) > pykde4-4.13.3 (from overlay, will be in tree soon) builds fine with latest > masked PyQt4/sip. When it's moved to the tree, I'll drop PyQt4/sip masks & > old versions. Sounds good to me. Also please restrict previous pykde4 versions to <sip-4.16 and/or <PyQt4-4.11 (or something like that) if needed. pykde4-4.13.3 just hit the tree on ~amd64 but the masks are still in place which breaks anyone trying to upgrade to kde 4.13.3 :( All taken care of now. |