[PyQt] sip changesets 71a8ee38b2c6 & 948e06cb1921 (sip 4.19.1) break QGIS

Phil Thompson phil at riverbankcomputing.com
Wed Feb 22 09:32:20 GMT 2017


On 22 Feb 2017, at 3:49 am, Doug Newgard <scimmia at archlinux.info> wrote:
> 
> QGIS builds fine with sip 4.19, but fails with 4.19.1. I bisected and found
> that these two changesets are where things go wrong, it builds fine with
> 6b23496bd532 and earlier but fails with the following errors with 948e06cb1921
> and later.
> 
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp:5798:7: error: delet
> ed function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’
> }
>      ^
> In file included from /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/gui/qgsfiledownloader.sip
> :33:0:
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: error: ove
> rriding non-deleted function ‘virtual QgsFileDownloader::~QgsFileDownloader()’
>    ~QgsFileDownloader();
>    ^
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp:5798:7: note: ‘virtu
> al sipQgsFileDownloader::~sipQgsFileDownloader()’ is implicitly deleted because the default definiti
> on would be ill-formed:
> }
>      ^
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp:5798:7: error: ‘virt
> ual QgsFileDownloader::~QgsFileDownloader()’ is private within this context
> In file included from /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/gui/qgsfiledownloader.sip
> :33:0:
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: note: decl
> ared private here
>    ~QgsFileDownloader();
>    ^
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp: In constructor ‘sip
> QgsFileDownloader::sipQgsFileDownloader(QUrl, QString, bool)’:
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp:5830:122: error: ‘Qg
> sFileDownloader::~QgsFileDownloader()’ is private within this context
> bool sipQgsFileDownloader::eventFilter( ::QObject*a0, ::QEvent*a1)
> 
>                     ^
> In file included from /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/gui/qgsfiledownloader.sip
> :33:0:
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/python/../src/gui/qgsfiledownloader.h:94:5: note: declared private here
>    ~QgsFileDownloader();
>    ^
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp: In function ‘void release_QgsFileDownloader(void*, int)’:
> /home/dnewgard/PKGBUILDs/qgis/src/qgis-2.18.3/build/python/gui/sip_guipart3.cpp:6028:64: error: use of deleted function ‘virtual sipQgsFileDownloader::~sipQgsFileDownloader()’
>                return NULL;
>                                                               ^
> 
> 
> I know little about sip, is this a regression with sip or something that QGIS
> needs to fix? With both changesets talking about fixing regressions, I
> wouldn't expect them to break things, so I'm trying here first.

You need to compare the definitions of the QgsFileDownloader dtor in the .h and .sip files.

Phil


More information about the PyQt mailing list