Zack Rusin zack at kde.org
Wed Sep 29 16:07:34 BST 2004

On Wednesday 29 September 2004 10:51, Waldo Bastian wrote:
> 2) Provide DBUS support, deprecate DCOP, convert at runtime all DCOP
> IPC to DBUS to provide 100% backwards compatibility.

I like that one, so the steps necessary to keep 100% backwards 
1) Provide dcop binary which maps the interfaces e.g. "kdesktop 
KScreensaverIface lock" would become 
"org.kde.kdesktop.KScreensaverIface.lock" or even better 
"org.freedesktop.screensaver.lock" and emit it via D-BUS. It does the 
translation only in the case if KScreensaverIface  is not registered 
with DCOP. So by default using the dcop binary always prefers DCOP over 
DBUS interfaces (go figure).

2) Write a kded module which listens for DCOP signals and forwards them 
correctly. Might be even off by default and people who need KDE 3.x 
compatability would turn it on.

Mapping "kdesktop KScreensaverIface lock" to 
"org.kde.kdesktop.KScreensaverIface.lock"  is of course trivial but 
mapping "kdesktop KScreensaverIface lock" to 
"org.freedesktop.screensaver.lock" might seem harder. But it really 
isn't. We have a very finite amount of interfaces in 
libs/base/pim/network that we'd have to map. One hash could easily 
cover our whole cvs.

I think this covers us "protocol compatability" wise. Then there's 
source compatibility. And the question is whether we'd want to have 
libdcopxxx or whatever we'd call it, that wraps DCOP interfaces and use 
D-BUS underneath. Since we're breaking BC in KDE 4.0, I'd argue that 
it's a waste of time to be even trying to do that. But it is feasible 
and not too hard.


This space for sale

More information about the kde-core-devel mailing list