[PyQt] SIP/PyQt ABI breakages

Rex Dieter rdieter at math.unl.edu
Mon Nov 21 20:31:26 GMT 2011


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)?

-- rex



More information about the PyQt mailing list