[PyKDE] 10.0 official rpms for PyKDE

Jim Bublitz jbublitz at nwinternet.com
Wed May 26 18:14:01 BST 2004

On Wednesday 26 May 2004 01:27, Joachim Werner wrote:
> > KDE 3.2.3 is due in the next few weeks (last time I looked at the KDE
> > release schedule), and the next PyKDE release should be ready very
> > shortly after that.  Phil has just released sip 3.10.2 (which the next
> > PyKDE release will require) and hopefully the last sip4 rc (which PyKDE
> > should work with), so sip 4.0 should be fairly close. Phil is also
> > planning a PyQt update shortly. So everything should be in sync then.

> > If the last kdelibs 3.3rc is binary compatible with the final release, I
> > could have PyKDE complete *before* the final. But then in theory, 3.3 is
> > supposed to be binary compatible with 3.2, I believe.

> > The problem in doing that is that the final rpms from SuSE, Mankdrake and
> > whatever RH/Fedora is doing now are never compatible with "official" KDE
> > source code (I get the source either from kde.org or uk.kde.org) - eg
> > KFileShare::setShared on SuSE 3.1.x later rpm releases, similar stuff on
> > Mdk or RH, QXEmbed with some distros, etc. It only takes one modified or
> > deleted method to make PyKDE essentially unusable - PyKDE binds nearly
> > every method in the kdelibs modules it supports, which most apps don't
> > do.

> > That being the case, I'd be shooting myself in the foot by doing a
> > release ahead of the official KDE 3.3 rpms and not testing against those.
> > Usually, I only build against the latest KDE on SuSE, but test earlier
> > versions against Mdk and RH.

>  From the SUSE point of view I'd be fine if I could get hold of late
> betas or release candidates a week or two after the KDE release that
> preceeds our SUSE LINUX product. The enterprise products are always
> based on the same code base, and we can make sure during the enterprise
> beta phase that we become aware of any changes in KDE that would break

> That would mean that we can get things in sync during the beta phase and
> release the latest KDE with the latest bindings.

>  From what you are saying this might work for the next SUSE LINUX. :-)

I wouldn't mind doing this for any distribution. I can't promise to test 
against every beta/rc since both the download time and build time/build 
problems can be a lot of extra work. I can try to keep up with the rc 
releases and submit packages to you.

Generally there are two problems: keeping PyKDE and sip in sync and keeping my 
tools in sync with KDE. We should be entering a phase where PyKDE and sip 
"get along" very well in terms of sip changes that affect PyKDE and KDE 
changes that require sip enhancements from Phil. Minor releases like KDE 
3.2.3 should require almost no work on my part. Major releases like KDE 3.3.0 
have required more work in the past because new C++ language features appear 
(nested template-based classes in kconfigskeleton in KDE 3.2) and the kdelibs 
hierarchy sometimes gets rearranged (for example kfile was folded into libkio 
quite some time ago).

I'm expecting though that KDE 3.3 will be fairly easy as major releases go 
because both sip and PyKDE tools have improved a lot as far as C++ features 
supported. KDE4 may be harder, but there will probably be a lot of time to 
work out those issues. Most of the problems will show up in the early betas, 
so if I work with those, I should be able to have a final release fairly 

> I can't speak for the other distros, but I guess none of them release
> their final products earlier than a couple of weeks after a major KDE
> release ...

> > I have enough problems when I do test (eg, the current problems with
> > kdeui not finding kdefx on Mdk 10.0, which doesn't happen on Mdk 9.x, any
> > SuSE after 8.1 or RH9.x).

> If there are any automated tests we could run them as part of our QA
> efforts. And of course we can provide betas to you ...

The major issue is that the code base the distro uses has to match the code 
base PyKDE is written against in that every class/method has to continue to 
exist and every method has to have the same argument list (as well as the 
obvious - having a compatible sip/PyQt version).  If that doesn't happen, one 
or more PyKDE modules won't be loadable under Python. So all that's necessary 
is to run the importtest.py script that comes with PyKDE. All that does is 
try to import each module. New methods shouldn't cause a problem - PyKDE just 
won't know about them. Repairing any problems is usually pretty trivial - 
comment out missing stuff, or modify an argument list.

You could probably run importtest.py as part of the rpm install if you wanted 

That doesn't guarantee that PyKDE is 100% correct, but it does guarantee that 
everything is compatible and PyKDE is usable.

As far as betas, I assume that involves downloading a few CDs worth of data. 
I'm on a satellite link and it isn't the most reliable bandwidth for 
downloads that large. However, Hans-Peter Jansen is very familiar with PyKDE 
build procedures and problems, and becoming familiar quickly with PyKDE 
internals, so he might be a good candidate to do that kind of testing - if 
he's interested. I'd support him as much as needed, of course.

I hope my earlier post wasn't taken as being angry or flaming - I'm very 
interested in working with SuSE or other distributors, but the main concern 
is getting something usable and reliable to PyKDE users (which I haven't 
always succeeded at).

Just let me know how you want to handle this and we'll see if it can be worked 


More information about the PyQt mailing list