[PyKDE] [PATCH] Fix compilation of PyKDE snapshot20050628

Jim Bublitz jbublitz at nwinternet.com
Wed Jun 29 21:13:41 BST 2005

On Wednesday 29 June 2005 12:18, Sebastian Kügler wrote:
> Hi Jim,
> On Tuesday 28 June 2005 23:25, Jim Bublitz wrote:
> > The latest sip snapshot this was tested against was the 06/05
> > snapshot. I haven't done a lot of testing with this, so please test
> > and report any problems. This snapshot still requires gcc3.3.
> I got a couple of the following errors compiling the snapshot under
> Kubuntu (sip 4.2.1, gcc 4.0(!), kde 3.4.1):
> make[1]: Entering directory `/usr/local/PyKDE-snapshot20050628/kdeui'
> g++ -c -Wno-deprecated-declarations -pipe -fPIC -O2 -Wall -W
> -I/usr/include/kde -I/usr/include/python2.4 -I/usr/share/qt3/include
> -I/usr/X11R6/include -o sipkdeuipart0.o sipkdeuipart0.cpp
> In file included from sipkdeuiKListView.h:50,
>                  from sipkdeuiKListViewSearchLineWidget.h:32,
>                  from sipkdeuipart0.cpp:92:
> sip/kdeui/klistview.sip:269:19: qlist.h: No such file or directory
> sip/kdeui/kkeydialog.sip: In function `PyObject*
> convertFrom_IntDict(void*)':
> sip/kdeui/kkeydialog.sip:209: warning: taking address of temporary
> make[1]: *** [sipkdeuipart0.o] Error 1
> make[1]: Leaving directory `/usr/local/PyKDE-snapshot20050628/kdeui'
> make: *** [all] Error 2
> If I recall correctly, qlist had been deprecated in favor of qptrlist
> some time ago, not all distributions supply the compatibility qlist
> anymore.
> Attached patch fixes the compile problems. Please consider applying.

There are some compiler/distribution related bugs I haven't fixed yet - QList 
is one and gcc4 stuff is another. I'll get to these as soon as possible.

> > This includes a fix to allow DCOP under PyKDE to handle bool types as
> > return values.

> The problem with bools as return types is not solved, however. Adding a
> couple of prints reveals that in dcopext.py:def marshall() "args" and
> "argtypes" are empty, so it doesn't do much.

> Any hints where I should look for debugging this?

If you're still debugging the sample program you posted, you're not passing 
any args with the call, so marshall() shouldn't see any. You can look at what 
unmarshall returns - that's where the return data is handled; the example 
program you posted (and some other tests) work correctly here. Again, be sure 
you're looking at the second element of the tuple, not the first as the 
example program was originally written. The dcop call will return a tuple of 
the form (valid, result). 'valid' will always be True if the call succeeded 
(and the call was always succeeding - it just sent back result == None for 
any bool) - you want to look at 'result'.


More information about the PyQt mailing list