RFC: DBUS & KDE 4
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
compatibility:
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.
Zack
--
This space for sale
More information about the kde-core-devel
mailing list