KDBus migration

This page collects information that can help in porting applications and services to kdbus. It is also meant to guide distributors in making decisions about dbus vs. kdbus.

Basics

The terminology of kdbus varies a little from traditional D-Bus. Where D-Bus has system and session busses, kdbus talks about machine and user busses.

System bus

Systemd will ship a bridge that translates between the traditional dbus and kdbus, called systemd-bus-proxyd. This proxy does support the XML security policies that dbus uses. This means that any service will transparently continue to work as-is, systemd will connect it via the proxy.

Applications and services that want to directly connect to kdbus should use a library for this. Systemd ships one, and there are patches to make GDBus support kdbus as a transport as well. Those patches need some work before they are ready to be merged.

Bus activation and security policies for kdbus are provided by .busname systemd units.

kdbus does not provide security policies in the same was as dbus. This should not be much of a problem for services that are already using polkit to decide which requests to handle. Other services should move their security policy to polkit or a similar framework before porting to kdbus.

Session bus

The session bus does not have security policies today, so the lack of security policies on kdbus does not matter here.

To use kdbus as a replacement for the session bus, we need to switch to systemd for user sessions first.

References

MatthiasClasen/KDBusMigration (last edited 2014-10-20 22:44:37 by DavidKing)