[PyQt] SIP/PyQt ABI breakages
Phil Thompson
phil at riverbankcomputing.com
Mon Nov 21 22:14:06 GMT 2011
On Mon, 21 Nov 2011 14:31:26 -0600, Rex Dieter <rdieter at math.unl.edu>
wrote:
> Phil Thompson wrote:
>
>> On Mon, 21 Nov 2011 11:04:05 +0000, Jeremy Sanders
>> <jeremy at jeremysanders.net> wrote:
>>> Hi - I've been seeing some ABI breakages in PyQt applications (which
>>> compile
>>> against PyQt and SIP) in some Linux packages recently:
>>>
>>> e.g., https://bugzilla.redhat.com/show_bug.cgi?id=755355
>>> https://bugs.launchpad.net/ubuntu/+source/pykde4/+bug/826321
>>>
>>
>
http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/e44754a502fd95c0/8c71c436a17dac1f?show_docid=8c71c436a17dac1f
>>>
>>> This seemed to happen somewhere between sip 4.12.1 and 4.12.3 or
>>> PyQt4-4.8.3
>>> and PyQt4-4.8.4 (at least for Veusz in Fedora 15).
>>>
>>> Was there an explict change where the PyQt4.QtCore module version
>> changed?
>>> I
>>> can't see it in the changelogs. It's unclear to me whether it was a
>> change
>>> in sip or PyQt that caused the problem.
>>>
>>> Is there a better way to deal with breakage when SIP or PyQt4 is
>> updated?
>>
>> That's the right way to deal with it - raise an exception when it
detects
>> that incompatible versions are being used. The bugs are in the binary
>> packages that are dependent on SIP and PyQt - they need to be rebuilt
>> when
>> the internal ABI changes. Obviously I need to do a better job in
>> documenting when those changes happen - but I would expect packagers to
>> be
>> slightly more on the ball than they seem to be.
>
> In this case, the abi as reported by sip, SIP_API_MAJOR_NR
> SIP_API_MINOR_NR
> went from 8.0 to 8.1, so I'd expect items built against sip-4.12 with
> MAJOR.MINOR 8.0 to be compatible with a 8.1 runtime. Seems not to be
the
> case here.
>
> Unless there's some other way to track ABI (in PyQt or elsewhere)?
No, the bug reports mentioned related to the PyQt internal version which
is a different thing.
Phil
More information about the PyQt
mailing list