[Kde-bindings] Building PyKDE with SIP v4.15.x

Simon Edwards simon at simonzone.com
Mon Sep 2 17:30:07 UTC 2013


Hi Phil,

The -P flag is on, but I'm getting errors such as "blah blah some method 
is protected in this context." How can I in the generated C++ code see 
whether the protected/public hack is in place and working?

cheers,

Simon

On 08/27/2013 11:27 AM, Phil Thompson wrote:
> I've been looking at the issues when building PyKDE using recent versions
> of SIP (ie. v4.15.x). Here is an explanation of what (I think) is going on
> and what needs to be done to fix it.
>
> In short it's a combination of SIP, PyQt and PyKDE bugs. I believe that
> the SIP and PyQt bugs are now fixed.
>
> PyKDE has a number of bugs where some private reimplementations of
> virtuals are missing from the .sip files. Two examples are
> Akonadi::FavoriteCollectionsModel::setSourceModel() and
> KRecursiveFilterProxyModel::filterAcceptsRow(). Prior to SIP v4.15 this
> resulted in the generation of incorrect, but compilable, code. Changes in
> SIP v4.15 meant that, if the .sip files are correct, then the correct code
> is generated. If not then the generated code will not compile.
>
> The changes in SIP v4.15 were themselves buggy (but that didn't affect
> PyQt) and that was only partially resolved in SIP v4.15.1. The current SIP
> snapshot is fixed properly.
>
> There is a completely separate bug in PyQt v4.10.3 which means bad code is
> generated only if bindings are created for a sub-class of
> QSyntaxHighlighter and the -P flag is not passed to sip. PyKDE seems to
> fall into that category. The result is the compiler complaining about
> qtgui_wrap_ancestors().
>
> So...
>
> - Switch to using the current SIP snapshot. I will release a new version
> of SIP when these issues are resolved.
>
> - Work through each compilation failure updating the .sip files as
> appropriate. Let me know of any issues that don't seem to be attributable
> to what I have described.
>
> - Update the PyKDE build process so that -P is always passed to sip. This
> will result is smaller bindings anyway. If you really don't want to do
> this then switch to the current PyQt4 snapshot.
>
> Phil
>
> _______________________________________________
> Kde-bindings mailing list
> Kde-bindings at kde.org
> https://mail.kde.org/mailman/listinfo/kde-bindings
>


-- 
Simon Edwards
simon at simonzone.com
Nijmegen, The Netherlands


More information about the Kde-bindings mailing list