10th June 2005 by Derek Kite

This Week...

DCOP Client/Server implemented for KDE win32. New videodvd:/ kioslave does on the fly decryption from DVD. Kopete implements Yahoo! Stealth feature. Opening of WebCore development yields fruit: DOMParser, and CSS fixes.
Changing major versions of KDE present opportunities to make the major changes needed to improve the platform. But how will third party KDE 3 applications run? Martijn Klingens started a thread entitled "Compatibility between KDE 3 and KDE 4" [1]. Here are some of the issues:
Please add to the list below anything that is missing. Also please correct anything that's wrong, I'm working off the top of my head now. A first incomplete start:
  • KDE 3 apps using DCOP expect a DCOP server using a given binary protocol. The KDE 3 DCOP server is found using ~/.DCOPserver_$hostname_$display, and uses the ICE protocol for authentication. KDE 4 will need a DCOP server that has the same semantics, or a compatibility replacement. Are there problems to be expected here, or will this stay in a way that's KDE 3 compatible?
  • KDE 3 apps expect a ksycoca using a specific binary layout. ksycoca is designed to be upwards compatible within KDE versions, but not necessarily to survive major upgrades to e.g. internal representations of variables. Are there problems to be expected here wrt Qt 3/4 ?
  • $KDEHOME and $KDEDIRS have a defined meanign that will have to be preserved
  • $KDEDIR is scheduled for removal since KDE 2, and KDE 2 and KDE 3 both also support $KDEDIRS, so this is a special case that we can remove now after 5 years of extended support.
  • Kiosk profiles are governed through /etc/kde3rc under SuSE, but not for a vanilla KDE, where it is just /etc/kderc. The profiles themselves default to /etc/kde-profile and /etc/kde-user-profile. Potential problems arise in overlapping config files (kdeglobals for KDE 3 and 4), so KDE 4 will need a more future-proof naming scheme.
  • KDE libraries have to coexist alongside. That can be handled by just setting $PREFIX accordingly though, AFAICS
  • kdeinit and notably kded need precautions to work with older binaries. (Which? What are the usage patterns?)
  • DCOP interfaces will need to remain compatible or provide compatibility wrappers, at least for the major applications.
  • kdialog will need to stay syntax compatible.
Thiago Macieira added another issue:[2]
There's the problem of Qt's datastream changing internally, but we have already solved that in the KDE4 port by explicitly setting the stream version. QDataStream and all the classes support backwards-compatible marshalling since Qt 1.x, so it is quite easy.
Maksim Orlovich who has been working on the porting effort described his experience with DCOP: [3]
Yep,and I've tested this to some extent early in the port (e.g. talking to KDE3 apps using a KDE4 dcop command), but not extensively. A problem is that tons of code marshalls manually, so there need to be zillions of setVersion calls (or better, the code needs to be converted to use DCOPRef). Some of the marshalling is quite sloppy, too, though.

KBuildSycoca situation is similar: with setVersion calls in place, last I checked it could open my 3.x ksycoca file. And of course ksycoca itself is designed to be expandable in a backwards compatible way, with version numbers and everything.
Thiago Macieira reminds us of the proposed direction regarding DCOP and D-BUS [4]
But from the ideas we got last time we discussed D-BUS here, I'd say that it is feasible to give full access to the new environment, not just a compatibility area. In other words, I think the conclusion was:
  • KDE4 apps will speak D-BUS natively
  • KDE3 apps can talk to KDE4 apps normally, and vice-versa
  • KDE3 apps cannot talk to non-KDE D-BUS apps
  • non-KDE D-BUS apps can send simple messages that are to be relayed into DCOP
This would, of course, require that we have a dcopserver. In fact, if we want to support DCOP at all, we'll need dcopserver.

Statistics

Commits 2860 by 202 developers, 53426 lines modified, 2587 new files
Open Bugs 8988
Open Wishes 8402
Bugs Opened 321 in the last 7 days
Bugs Closed 325 in the last 7 days

Commit Summary

Module Commits
l10n
429
 
stable
343
 
extragear
281
 
work
273
 
www
267
 
kdepim
173
 
kdeedu
135
 
koffice
131
 
kdenonbeta
111
 
digikam
97
 
Lines Developer Commits
2005
 
Laurent Montel
107
 
369
 
David Faure
75
 
2021
 
Nikolas Zimmermann
67
 
499
 
Pino Toscano
57
 
132
 
Pedro Morais
56
 
626
 
Dirk Mueller
56
 
219
 
Gilles Caulier
55
 
763
 
Albert Astals Cid
54
 
303
 
Rinse de Vries
52
 
869
 
George Staikos
43
 

Internationalization (i18n) Status

Language Percentage Complete
British English (en_GB)
99.42%
 
Swedish (sv)
97.73%
 
Portuguese (pt)
95.9%
 
Danish (da)
95.15%
 
Estonian (et)
93.38%
 
Italian (it)
92.74%
 
French (fr)
92.27%
 
Serbian (sr)
91.29%
 
Dutch (nl)
91%
 
Spanish (es)
90.7%
 

Bug Killers

Person Bugs Closed
Aaron J. Seigo
18
 
Thiago Macieira
18
 
Andreas Gungl
14
 
Daniel Molkentin
12
 
Andreas Beckermann
12
 
Luboš Luňák
12
 
Maks Orlovich
11
 
Till Adam
11
 
James Richard Tyrer
10
 
Albert Astals Cid
10
 

No commits found