[PyQt] Regression in sip 4.7.4 "sip: QPixmap has not been defined"

Phil Thompson phil at riverbankcomputing.com
Mon Apr 7 00:49:38 BST 2008


On Sunday 06 April 2008, Adam C Powell IV wrote:
> On Wed, 2008-04-02 at 09:48 -0400, Adam C Powell IV wrote:
> > On Tue, 2008-03-25 at 09:11 +0000, Phil Thompson wrote:
> > > On Monday 24 March 2008, Adam C Powell IV wrote:
> > > > Greetings,
> > > >
> > > > I am trying to build the Salomé suite from
> > > > http://www.salome-platform.org/ which built just fine with sip 4.7.3
> > > > but now is not working with 4.7.4.
> > > >
> > > > More specifically, I am trying to build the Debian package at
> > > > http://lyre.mit.edu/~powell/salome/ and running into trouble as
> > > > described at Debian bug 469850 http://bugs.debian.org/469850 .
> > > >
> > > > The sip command is:
> > > > /usr/bin/sip -t WS_X11 -t Qt_3_3_8b -x Qt_STYLE_INTERLACE -x
> > > > Qt_STYLE_WINDOWSXP -x Qt_ASSISTANTCLIENT -s ".cc" -c . -I
> > > > /usr/share/sip/qt/qt SALOME_PYQT_GUI.sip and although qpixmap.sip is
> > > > right in the path, it gives an error:
> > > > sip: QPixmap has not been defined
> > > >
> > > > Given that this worked fine with 4.7.3, either sip or its Debian
> > > > package seems to be broken.  How can I investigate further?
> > >
> > > Produce a small test case that demonstrates the problem against the
> > > standard SIP and PyQt packages.
> > >
> > > Phil
> >
> > Sorry about the delay.
> >
> > I'm attaching a small (trivial) file which fails in this way.  sip does
> > not attempt to open any other files in this directory.  strace output is
> > at http://lyre.mit.edu/~powell/salome/build-deps/sip.trace
> >
> > As you can see, it finds qpixmap.sip, and seems to die soon after
> > reading the last of the .sip files (at least "soon" in the trace).
> >
> > How can I diagnose further?
>
> So as a lex/yacc/sip neophyte, I'm hunting down the problem as best I
> can, and here's what I have so far:
>
> While parsing qpaintdevice.sip and qtbitmap.sip, the parser calls
> findIfaceFile().  While parsing qtbitmap.sip, it also calls
> appendToClassList().  Those are never called while parsing qpixmap.sip.
>
> Going further, I've instrumented every instance of which sets an
> iff->module (which is null for QPixmap, causing this error), and none
> are called when parsing qpixmap.sip.
>
> So there is a problem with sip and/or qpixmap.sip, such that sip is not
> getting any classes/modules from qpixmap.sip.  Something is broken.
> Any ideas?
>
> [Please include 469850 at bugs.debian.org in your reply.]
>
> Cheers,
> -Adam

I said before you should reproduce the problem with the standard source 
packages, not your distro's packages. "-t Qt_3_3_8b" does not come from the 
standard source packages.

Phil



More information about the PyQt mailing list