[PyKDE] sip, private structs, gcc-2.96, PyKDE2 beta

Bill Soudan wes0472 at rit.edu
Tue Mar 26 03:58:53 GMT 2002

Hi all,

Trying to get PyKDE2-3.0beta1 installed.  After fixing the cast problem in
kdecorecmodule.cpp (I'm using gcc2.96 on a vanilla Red Hat 7.2 install), I
ran across this one:

make[2]: Entering directory `/usr/local/src/PyKDE2-3.0beta1/kio'
/bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I..  
-I/usr/include/python2.2 -I/usr/local/include/sip -I/usr/lib/qt2/include  
-I/usr/X11R6/include -I/usr/include/kde/  -fno-exceptions -I 
/usr/include/kde//kio -I../extraH/ -I ../kdecore -O2 -c kiocmodule.cpp
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/python2.2 
-I/usr/local/include/sip -I/usr/lib/qt2/include -I/usr/X11R6/include 
-I/usr/include/kde/ -fno-exceptions -I /usr/include/kde//kio -I../extraH/ 
-I ../kdecore -O2 -c kiocmodule.cpp  -fPIC -DPIC -o kiocmodule.lo
In file included from kiocmodule.cpp:98:
sipkioKServiceTypeProfileService.h: In function
*sipForceConvertTo_KServiceTypeProfile_Service (PyObject *, int *)':
/usr/include/kde/kuserprofile.h:176: `struct
KServiceTypeProfile::Service' is private
sipkioKServiceTypeProfileService.h:46: within this context

Looks like gcc2.96 might be a little more strict about access specifiers 
than previous versions?  KServiceTypeProfile defines the Service struct as 
private, see line 176 of kuserprofile.h from kde-2.2.

I think the real problem here is that sip is generating code for a private
struct.  Private attributes are, after all, private, so this looks like a 
bug in sip to me.

I can get past the error by removing all references to the private struct.  
I'm not sure if this is absolutely correct, but the kio/ directory
compiles and links at least.  If you'd like a patch, let me know.


More information about the PyQt mailing list