Bug report #16071
SIP 4.19 breaks QGIS build
Status: | Closed | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Unknown | ||
Affected QGIS version: | 2.18.2 | Regression?: | No |
Operating System: | MacOS | Easy fix?: | No |
Pull Request or Patch supplied: | No | Resolution: | |
Crashes QGIS or corrupts data: | No | Copied to github as #: | 23986 |
Description
It seems that QGIS is incompatible with the newest SIP 4.19 release:
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/build/python/core/sip_corepart1.cpp:86260:9: error: virtual function 'dataType' has a different return type ('int') than the function it overrides (which has return type 'QGis::DataType') :info:build int dataType(int) const; :info:build ~~~ ^ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/python/../src/core/raster/qgsrasterprojector.h:101:20: note: overridden virtual function is here :info:build QGis::DataType dataType( int bandNo ) const override; :info:build ~~~~~~~~~~~~~~ ^ :info:build Loaded 182/183 from /opt/local/share/gdal/vertcs.csv :info:build Loaded 153/154 from /opt/local/share/gdal/compdcs.csv :info:build Loaded 148/149 from /opt/local/share/gdal/geoccs.csv :info:build Loading epsg.wkt :info:build Loading esri_extra.wkt :info:build 6063 WKTs loaded :info:build make[2]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/build' :info:build make[2]: Nothing to be done for `src/gui/CMakeFiles/qgis_gui.dir/build'. :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/build' :info:build [ 59%] Built target qgis_gui :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/auth/basic/CMakeFiles/basicauthmethod.dir/build.make src/auth/basic/CMakeFiles/basicauthmethod.dir/depend :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/auth/identcert/CMakeFiles/identcertauthmethod.dir/build.make src/auth/identcert/CMakeFiles/identcertauthmethod.dir/depend :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/auth/pkipaths/CMakeFiles/pkipathsauthmethod.dir/build.make src/auth/pkipaths/CMakeFiles/pkipathsauthmethod.dir/depend :info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make -f src/auth/pkipkcs12/CMakeFiles/pkcs12authmethod.dir/build.make src/auth/pkipkcs12/CMakeFiles/pkcs12authmethod.dir/depend :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/build/python/core/sip_corepart2.cpp:130799:27: error: call to implicitly-deleted copy constructor of '::QgsVectorLayerFeatureIterator' :info:build sipCpp = new ::QgsVectorLayerFeatureIterator(*a0); :info:build ^ ~~~ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/python/../src/core/qgsvectorlayerfeatureiterator.h:196:42: note: copy constructor of 'QgsVectorLayerFeatureIterator' is implicitly deleted because field 'mExpressionContext' has an inaccessible copy constructor :info:build QScopedPointer<QgsExpressionContext> mExpressionContext; :info:build ^ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/python/core/qgsexception.sip:8:19: error: use of undeclared identifier 'sipExportedExceptions__core' :info:build PyErr_SetString(sipException_QgsCsException, sipExceptionRef.what().toUtf8().constData() ); :info:build ^ :info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gis_qgis/QGIS/work/QGIS-2_18_2/build/python/core/sipAPI_core.h:20150:37: note: expanded from macro 'sipException_QgsCsException' :info:build #define sipException_QgsCsException sipExportedExceptions__core[0] :info:build ^
I’m not sure, however, whether this is a bug in SIP or something in QGIS. Any help would be appreciated.
TiA,
Vincent
Associated revisions
adapt bindings to sip 4.19 (fixes #16071)
adapt bindings to sip 4.19 (fixes #16071)
(cherry picked from commit 718581ffb12b723f9a3c0ae01b7ec2d8aed9d4bb)
Fix build against recent sip/PyQt4:
qgsfiledownloader.sip:33:0:
src/gui/qgsfiledownloader.h:94:5: error: overriding non-deleted function 'virtual QgsFileDownloader::~QgsFileDownloader()'
RuntimeError: qgis._core cannot import type 'QList<QVariant>' from PyQt4.QtCore
(cherry picked from commit 85a0db24f32351f6096cd8282f03ad5c2f4e6ef5)
fixes #16071
History
#1 Updated by Donovan Cameron almost 8 years ago
Here's the error trying to build from QGIS git repo for 2.18 release on Linux with sip 4.19:
[ 97%] Generating gui/sip_guipart0.cpp, gui/sip_guipart1.cpp, gui/sip_guipart2.cpp, gui/sip_guipart3.cpp sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/gui/gui.sip:2: %Module version numbers are deprecated and ignored sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/core/core.sip:2: %Module version numbers are deprecated and ignored sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/core/conversions.sip:750: /DocType/ is deprecated sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/core/conversions.sip:1876: /DocType/ is deprecated sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/core/qgsfeature.sip:7: /DocType/ is deprecated sip: Deprecation warning: /tmp/makepkg/qgis/src/qgis/python/core/qgspallabeling.sip:2: /DocType/ is deprecated Scanning dependencies of target python_module_qgis__gui [ 97%] Building CXX object python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart0.cpp.o /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp: In member function ‘virtual void sipQgsSpinBox::fixup(QString&) const’: /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:11721:25: error: ‘sipName_QString’ was not declared in this scope if (!sipMeth) ^ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:11729:25: error: ‘sipName_QString’ was not declared in this scope sipVH__gui_1(sipGILState, 0, sipPySelf, sipMeth, a0); ^~~~~~~~~~~~~~~ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp: In member function ‘virtual void sipQgsDoubleSpinBox::fixup(QString&) const’: /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:22066:25: error: ‘sipName_QString’ was not declared in this scope ^ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:22074:25: error: ‘sipName_QString’ was not declared in this scope sip_gilstate_t sipGILState; ^~~~~~~ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp: In member function ‘virtual void sipQgsDateTimeEdit::fixup(QString&) const’: /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:26183:25: error: ‘sipName_QString’ was not declared in this scope if (!sipMeth) ^ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:26191:25: error: ‘sipName_QString’ was not declared in this scope int sipQgsDateTimeEdit::metric( ::QPaintDevice::PaintDeviceMetric a0) const ^~~~~~~~~~~~~~~ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp: In member function ‘virtual QValidator::State sipQgsDateTimeEdit::validate(QString&, int&) const’: /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:26212:25: error: ‘sipName_QString’ was not declared in this scope ^ /tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart0.cpp:26219:25: error: ‘sipName_QString’ was not declared in this scope } ^ make[2]: *** [python/CMakeFiles/python_module_qgis__gui.dir/build.make:647: python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart0.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:3866: python/CMakeFiles/python_module_qgis__gui.dir/all] Error 2
#2 Updated by Jürgen Fischer almost 8 years ago
Should be fixed in master with 6a56cb0
#3 Updated by Donovan Cameron almost 8 years ago
Ah! If it were to happen, it's gonna be a little bit of work to cherry pick and get it back ported.
Can downgrade pyqt4 and sip packages for now =P
#4 Updated by vince - almost 8 years ago
Jürgen Fischer wrote:
Should be fixed in master with 6a56cb0
It’s better, but I get a missing “qgis_python.h” error message later. Is that related?
Thanks,
Vincent
#5 Updated by Xavier Corredor Llano almost 8 years ago
Jürgen Fischer wrote:
Should be fixed in master with 6a56cb0
Hi Jurgen, the master branch compiles well with the sip 4.19 but the patch is only for the master branch, is possible to provide a patch for the 2.18 branch?
Thanks!
#6 Updated by vince - almost 8 years ago
Xavier Corredor Llano wrote:
Hi Jurgen, the master branch compiles well with the sip 4.19 but the patch is only for the master branch, is possible to provide a patch for the 2.18 branch?
It still does not compile on MacOS. I get a missing “qgis_python.h” file message.
Where does that file stem from?
#7 Updated by Xavier Corredor Llano almost 8 years ago
vince - wrote:
Xavier Corredor Llano wrote:
Hi Jurgen, the master branch compiles well with the sip 4.19 but the patch is only for the master branch, is possible to provide a patch for the 2.18 branch?
It still does not compile on MacOS. I get a missing “qgis_python.h” file message.
Where does that file stem from?
I don't know, I tested on Archlinux
#8 Updated by Drei Eck almost 8 years ago
Making the stable and the long term support relese usable would be really nice and important, for production use.
I also cannot use QGIS right now because of this, old binary also not usable anymore due to library incompatibilities after system upgrade.
(I have also arch linux and am going to use 2.18 release.)
#9 Updated by Xavier Corredor Llano almost 8 years ago
- Target version set to Version 2.18
Hi @vince, please add Linux platform and it would be good to increase the priority, the stable version of Qgis is unusable with this problem for all OS with sip 4.19
#10 Updated by Jürgen Fischer almost 8 years ago
- Status changed from Open to Closed
Fixed in changeset 718581ffb12b723f9a3c0ae01b7ec2d8aed9d4bb.
#11 Updated by Drei Eck almost 8 years ago
- % Done changed from 0 to 100
Thank you, much appreciated.
#12 Updated by Doug Newgard almost 8 years ago
- Status changed from Closed to Reopened
A fix for 2.14 LTS would be appreciated as well.
#13 Updated by Drei Eck almost 8 years ago
- Target version changed from Version 2.18 to Version 2.14
- % Done changed from 100 to 50
#14 Updated by Jürgen Fischer almost 8 years ago
- Status changed from Reopened to Closed
Fixed in changeset 70f51aeedac0013247457c9274fcef746447796c.
#15 Updated by Donovan Cameron almost 8 years ago
- Status changed from Closed to Reopened
- Target version changed from Version 2.14 to Version 2.18
sip 4.19.1 breaks build again for 2.18.3:
[ 97%] Building CXX object python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart3.cpp.o
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp:5798:7: error: deleted function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’
}
^
In file included from /tmp/makepkg/qgis/src/qgis/python/gui/qgsfiledownloader.sip:33:0:
/tmp/makepkg/qgis/src/qgis/python/../src/gui/qgsfiledownloader.h:94:5: error: overriding non-deleted function ‘virtual QgsFileDownloader::~QgsFileDownloader()’
~QgsFileDownloader();
^
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp:5798:7: note: ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’ is implicitly deleted because the default definition would be ill-formed:
}
^
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp:5798:7: error: ‘virtual QgsFileDownloader::~QgsFileDownloader()’ is private within this context
In file included from /tmp/makepkg/qgis/src/qgis/python/gui/qgsfiledownloader.sip:33:0:
/tmp/makepkg/qgis/src/qgis/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here
~QgsFileDownloader();
^
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp: In constructor ‘sipQgsFileDownloader::sipQgsFileDownloader(QUrl, QString, bool)’:
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp:5830:122: error: ‘QgsFileDownloader::~QgsFileDownloader()’ is private within this context
bool sipQgsFileDownloader::eventFilter( ::QObject*a0, ::QEvent*a1)
^
In file included from /tmp/makepkg/qgis/src/qgis/python/gui/qgsfiledownloader.sip:33:0:
/tmp/makepkg/qgis/src/qgis/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here
~QgsFileDownloader();
^
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp: In function ‘void release_QgsFileDownloader(void*, int)’:
/tmp/makepkg/qgis/src/qgis/build/python/gui/sip_guipart3.cpp:6028:64: error: use of deleted function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’
return NULL;
^
make[2]: *** [python/CMakeFiles/python_module_qgis__gui.dir/build.make:719: python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart3.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3866: python/CMakeFiles/python_module_qgis__gui.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
#16 Updated by Bruno Friedmann almost 8 years ago
Donovan what's your build env ?
At least qgis and qgis-ltr still build here at openSUSE with sip-4.19.1
#17 Updated by Donovan Cameron almost 8 years ago
I'm building on Arch Linux 64-bit.
Just tried building QGIS 2.18.3.r77.g7800ee83dd but still get the same error.
Thought it was a long tail dependency issue with SIP, attempted to re-compile pyqt4 and qscintilla but didn't help.
#18 Updated by Xavier Corredor Llano over 7 years ago
Confirmed problems while building using Qgis 2.18.4 with python2-sip and sip 4.19.1 in Archlinux:
[ 90%] Building CXX object src/app/CMakeFiles/qgis_app.dir/openstreetmap/qgsosmexportdialog.cpp.o /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp:5798:7: error: deleted function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’ } ^ In file included from /Tmp_build/qgis/src/qgis-2.18.4/python/gui/qgsfiledownloader.sip:33:0: /Tmp_build/qgis/src/qgis-2.18.4/python/../src/gui/qgsfiledownloader.h:94:5: error: overriding non-deleted function ‘virtual QgsFileDownloader::~QgsFileDownloader()’ ~QgsFileDownloader(); ^ /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp:5798:7: note: ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’ is implicitly deleted because the default definition would be ill-formed: } ^ /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp:5798:7: error: ‘virtual QgsFileDownloader::~QgsFileDownloader()’ is private within this context In file included from /Tmp_build/qgis/src/qgis-2.18.4/python/gui/qgsfiledownloader.sip:33:0: /Tmp_build/qgis/src/qgis-2.18.4/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here ~QgsFileDownloader(); ^ /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp: In constructor ‘sipQgsFileDownloader::sipQgsFileDownloader(QUrl, QString, bool)’: /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp:5830:122: error: ‘QgsFileDownloader::~QgsFileDownloader()’ is private within this context bool sipQgsFileDownloader::eventFilter( ::QObject*a0, ::QEvent*a1) ^ In file included from /Tmp_build/qgis/src/qgis-2.18.4/python/gui/qgsfiledownloader.sip:33:0: /Tmp_build/qgis/src/qgis-2.18.4/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here ~QgsFileDownloader(); ^ /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp: In function ‘void release_QgsFileDownloader(void*, int)’: /Tmp_build/qgis/src/qgis-2.18.4/build/python/gui/sip_guipart3.cpp:6028:64: error: use of deleted function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’ return NULL;
#19 Updated by Bruno Friedmann over 7 years ago
Ok this is also seen in openSUSE build qgis 2.18.3 and sip 4.19.1
[ 658s] [ 87%] Building CXX object python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart3.cpp.o
[ 660s] [ 87%] Linking CXX executable ../../../output/bin/qgis_projectionissues
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp:10952:7: error: deleted function 'virtual sipQgsFileDownloader::~sipQgsFileDownloader()'
[ 660s] sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[1],sipPySelf,NULL,sipName_eventFilter);
[ 660s] ^~~~~~~~~~~~~~~~~~~~
[ 660s] In file included from /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/gui/qgsfiledownloader.sip:33:0:
[ 660s] /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: error: overriding non-deleted function 'virtual QgsFileDownloader::~QgsFileDownloader()'
[ 660s] ~QgsFileDownloader();
[ 660s] ^
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp:10952:7: note: 'virtual sipQgsFileDownloader::~sipQgsFileDownloader()' is implicitly deleted because the default definition would be ill-formed:
[ 660s] sipMeth = sipIsPyMethod(&sipGILState,&sipPyMethods[1],sipPySelf,NULL,sipName_eventFilter);
[ 660s] ^~~~~~~~~~~~~~~~~~~~
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp:10952:7: error: 'virtual QgsFileDownloader::~QgsFileDownloader()' is private within this context
[ 660s] In file included from /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/gui/qgsfiledownloader.sip:33:0:
[ 660s] /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here
[ 660s] ~QgsFileDownloader();
[ 660s] ^
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp: In constructor 'sipQgsFileDownloader::sipQgsFileDownloader(QUrl, QString, bool)':
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp:10984:122: error: 'QgsFileDownloader::~QgsFileDownloader()' is private within this context
[ 660s]
[ 660s] ^
[ 660s] In file included from /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/gui/qgsfiledownloader.sip:33:0:
[ 660s] /home/abuild/rpmbuild/BUILD/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here
[ 660s] ~QgsFileDownloader();
[ 660s] ^
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp: In function 'void release_QgsFileDownloader(void*, int)':
[ 660s] /home/abuild/rpmbuild/BUILD/temp/python/gui/sip_guipart3.cpp:11188:64: error: use of deleted function 'virtual sipQgsFileDownloader::~sipQgsFileDownloader()'
[ 660s] {"downloadCompleted()", "\\1downloadCompleted(self)", 0, 0},
[ 660s] ^
[ 662s] [ 87%] Building CXX object src/app/CMakeFiles/qgis_app.dir/qgsdisplayangle.cpp.o
[ 662s] [ 87%] Building CXX object tests/src/gui/CMakeFiles/qgis_dockwidget.dir/qgis_dockwidget_automoc.cpp.o
[ 662s] [ 88%] Linking CXX executable ../../../output/bin/qgis_dockwidget
[ 663s] make[2]: *** [python/CMakeFiles/python_module_qgis__gui.dir/build.make:719: python/CMakeFiles/python_module_qgis__gui.dir/gui/sip_guipart3.cpp.o] Error 1
[ 663s] make[2]: *** Waiting for unfinished jobs....
#20 Updated by Donovan Cameron over 7 years ago
- Status changed from Reopened to Closed
- % Done changed from 50 to 100
Looks like the latest 85a0db24f32351f6096cd8282f03ad5c2f4e6ef5 allows compiling with sip 4.19.1 - many thanks!
#21 Updated by Bruno Friedmann over 7 years ago
To definitively fix the things, the same patch should be applied on 2.14 branch so it will not be lost next release.
Thanks for the work
#22 Updated by Jürgen Fischer about 7 years ago
- Category set to Unknown