[PyQt] configuring pykde4, error

Jim Bublitz jbublitz at nwinternet.com
Wed May 21 16:27:56 BST 2008


On Wednesday 21 May 2008 07:04, Darren Dale wrote:
> On Tuesday 20 May 2008 03:29:14 pm Jim Bublitz wrote:
> > On Tuesday 20 May 2008 10:47, Darren Dale wrote:
> > > At that point, I get another "can't use default assignment operator"
> > > error:
> >
> > I'm not sure what's causing that error, which seems to be the basic
> > problem (other than having an updated configure.py). I haven't downloaded
> > the latest KDE yet, but will have to do that and see if I can reproduce
> > the problem.
> >
> > > If I comment out //%Include kencodingdetector.sip, configure.py fails:
> >
> > ...
> >
> > > Generating the C++ source for the kdeui module...
> > > sip: KEncodingDetector::AutoDetectScript is undefined
> > > Error: Unable to create the C++ code.
> > > ---------------
> > >
> > > Is there something else I should try at this point?
> >
> > KCodecAction (sip/kdeui/kcodecaction.sip) depends on KEncodingDetector.
> >
> > You can either comment out the KEncodingDetector references in
> > kcodecaction.sip or comment out that sip file in
> > sip/kdeui/kdeuimod.sip.in.
>
> I did the latter. Then I needed to comment out additional lines in
> sip/kdecore/kdecoremod.sip.in:
>
> //%Include kcharsets.sip
> //%Include kcmdlineargs.sip
> //%Include klockfile.sip
>
> At that point, I got an error that I have not been able to work around:
>
> g++ -c -Wno-deprecated-declarations -pipe -fPIC -O2 -march=k8 -mtune=k8
> -pipe -fomit-frame-pointer -Wall -W -D_REENTRANT -DQT_NO_DEBUG
> -DQT_CORE_LIB -DQT_GUI_LIB -I. -I../extra/kde404 -I/usr/kde/4.0/include
> -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui
> -I/usr/include/qt4/QtNetwork -I/usr/kde/4.0/include/sonnet
> -I/usr/include/python2.5 -I/usr/share/qt4/mkspecs/default
> -I/usr/include/qt4 -I/usr/X11R6/include -o sipkdecoreKTimeZoneSource.o
> sipkdecoreKTimeZoneSource.cpp
> /usr/kde/4.0/include/ktimezone.h: In member function 'KTimeZoneSource&
> KTimeZoneSource::operator=(const KTimeZoneSource&)':
> /usr/kde/4.0/include/ktimezone.h:1224: error: non-static const
> member 'KTimeZoneSourcePrivate* const KTimeZoneSource::d', can't use
> default assignment operator
> sipkdecoreKTimeZoneSource.cpp: In function 'void
> assign_KTimeZoneSource(void*, const void*)':
> sipkdecoreKTimeZoneSource.cpp:167: note: synthesized method
> 'KTimeZoneSource& KTimeZoneSource::operator=(const KTimeZoneSource&)' first
> required here make[1]: *** [sipkdecoreKTimeZoneSource.o] Error 1
> make[1]: Leaving directory `/home/share/packages/PyKDE4-4.0.2-1/kdecore'
> make: *** [all] Error 2
>
> configure.py fails if I comment out //%Include ktimezone.sip. I tried to
> find a work around similar to the one you suggested for KEncodingDetector,
> but was not successful. I also tried to understand what is actually causing
> these "can't use default assignment operator" errors, but unfortunately I
> don't have enough experience yet with C/C++ to follow the discussions I
> found on google. Sorry.

It's either a change in gcc or a change in the KDE source (note that the 
errors are coming from the KDE h file, not from PyKDE). You're getting into 
files now that are useful (most of the previous stuff wasn't esp needed for 
most people), and just playing whack-a-mole. It's likely to continue until 
there isn't anything of PyKDE left to compile.

I'll have to upgrade/download and see if I can set up the same environment and 
reproduce the errors you're getting (and then fix them, of course). It's 
going to take a while to accomplish all of that, but I will get back to you.

Jim


More information about the PyQt mailing list