[PyKDE] PyKDE-3.11rc1 build failure (against kdelibs-3.2.3)

Jim Bublitz jbublitz at nwinternet.com
Wed Jun 2 17:51:00 BST 2004


On Wednesday 02 June 2004 08:17, Rex Dieter wrote:
> Rex Dieter wrote:
> >> Additionally, you may try this:
> >> for i in $(find sip -name \*-kde322.diff); do
> >>     cp $i $(echo $i | sed "s|kde322|kde323|g")
> >> done
> >> cp -a extra/kde322 extra/kde323
> >
> > thanks, that appears to have done the trick
>
> Spoke too soon... build fails later now.  (kdelibs-3.2.3, rh90, gcc-3.2.2):
>
> $make
> make[1]: Entering directory `/usr/local/tmp/BUILD/PyKDE-3.11rc1/dcop'
> make[1]: `libdcopcmodule.so' is up to date.
> make[1]: Leaving directory `/usr/local/tmp/BUILD/PyKDE-3.11rc1/dcop'
> make[1]: Entering directory `/usr/local/tmp/BUILD/PyKDE-3.11rc1/kdecore'
> g++ -c -Wno-deprecated-declarations -pipe -fPIC -O2 -march=i386
> -mcpu=i686 -w -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I.
> -I../extra/kde323 -I/usr/include/kde -I/usr/include/python2.2
> -I/usr/lib/qt-3.3/include -I/usr/X11R6/include -o kdecorepart0.o
> kdecorepart0.cpp
> /usr/lib/qt-3.3/include/qptrlist.h: In member function `void
>     QPtrList<type>::deleteItem(void*) [with type = KIconThemeDir]':
> kdecorepart0.cpp:104810:   instantiated from here
> /usr/lib/qt-3.3/include/qptrlist.h:150: invalid use of undefined type
> `struct
>     KIconThemeDir'
> ../extra/kde323/kicontheme.h:23: forward declaration of `struct
> KIconThemeDir'
> make[1]: *** [kdecorepart0.o] Error 1
> make[1]: Leaving directory `/usr/local/tmp/BUILD/PyKDE-3.11rc1/kdecore'

Pete got you on the right track - I always forget to create the new extra/kde* 
directory. KIconThemeDir is a struct or class defined in the cpp file, so sip 
can't access it. Normally this isn't a problem for sip, but KIconThemeDir has 
a long history of screwing up. To make things worse, over the last few 
releases it hasn't screwed up all the time, so I haven't always remembered to 
modify the h file. Apparently in your case it works on Fedora without 
modification.

All you need to do is edit extra/kde323/kicontheme.h and comment out the two 
lines that reference KIconThemeDir (one forward declaration near the 
beginning, and a private variable declaration near the end of the file).

To be strictly rigorous, you should duplicate extra/kde322 as kde323, but by 
copying the same set of h files from KDE 3.2.3 sources in to extra/kde323.
There probably aren't any changes in this release though. The only one that 
requires modification any longer is kicontheme.h. The others just aren't 
always present in kde3/include.

Jim




More information about the PyQt mailing list