On Tuesday 28 October 2003 11:39 pm, Hans-Peter Jansen wrote: > Hi Phil, > > On Tuesday 28 October 2003 12:31, Phil Thompson wrote: > > SIP v4.0pre3 is now available from the usual place. If you are > > using it to build PyQt you will need a current PyQt snapshot. > > I finally got around updating to SuSE 9.0, and made a first > attempt to build rpms for sip4 & PyQt. > > First impression: very well. sip4 makes the whole project looking > __much__ nicer. Congratulations. > > sip4 built well, but PyQt-20031027 refused to link the GL stuff > properly: ld: cannot find -lXmu > I had to apply this patch to get through it: > > --- sip/qtgl/qtglmod.sip~ 2003-10-28 02:06:23.000000000 +0100 > +++ sip/qtgl/qtglmod.sip 2003-10-28 23:11:30.000000000 +0100 > @@ -59,7 +59,7 @@ > TEMPLATE = lib > TARGET = @BLX_TARGET_LIB@ > DESTDIR = @PYQT_MODDIR@ > -CONFIG += @BLX_CONFIG_LIB@ opengl @PYQT_WARN@ > +CONFIG += @BLX_CONFIG_LIB@ opengl x11 @PYQT_WARN@ > INCLUDEPATH = @BLX_INCLUDEPATH@ > DEFINES = @BLX_DEFINES@ > LIBS += @PYQT_QT_MODULE@ @BLX_LIBS@ > > > Unfortunately, sip4 seem to have problems with class variables of > certain Qt derived classes, and throws errors like: > > Traceback (most recent call last): > File "/home/hp/src/python/qt/epsutil/epsutil.py", line 288, in polish > m = self.cfg.model > AttributeError: cfg > Traceback (most recent call last): > File "main.py", line 46, in ? > w = mainWindow(app) > File "/home/hp/src/python/qt/epsutil/epsutil.py", line 237, in __init__ > wh = self.cfg.mainScreenSize > AttributeError: cfg > Speicherzugriffsfehler > > Here is the corresponding source excerpt: > > class mainWindow(epsDial): > def __init__(self, app, parent = None, name = None, fl = 0): > self.app = app > self.model = None > self.cfg = config.Config() > self.cfg.load() > if styleDict.has_key(self.cfg.style): > app.setStyle(styleDict[self.cfg.style]()) > # set up parent > epsDial.__init__(self, parent, name, fl) > wh = self.cfg.mainScreenSize > if wh: > self.resize(wh[0], wh[1]) > xy = self.cfg.mainScreenLocation > if xy: > self.move(xy[0], xy[1]) > > You see, self.cfg definitely exists at that point. > > Any ideas?
There are two unrelated bugs - fixes will be in tonight's snapshot, or apply the attached patch. Phil
--- siplib.c.orig Wed Oct 29 13:04:33 2003 +++ siplib.c Wed Oct 29 13:05:46 2003 @@ -2964,6 +2964,9 @@ { PyObject *meth; + if (sipInterpreter == NULL) + return NULL; + #ifdef WITH_THREAD *gil = PyGILState_Ensure(); #endif @@ -3899,10 +3902,6 @@ PyErr_SetString(PyExc_TypeError,"keyword arguments are not supported"); return -1; } - - /* Create the instance dictionary. */ - if ((self -> dict = PyDict_New()) == NULL) - return -1; /* See if there is an existing C++ instance waiting to be wrapped. */ if ((sipNew = sipGetPending(&sipFlags)) == NULL)