Ubuntu 26.10 is switching to dbus-broker

D-Bus is a message bus that lets processes communicate on a Linux system.
While originally born for the open Linux Desktop, D-Bus is now widely used across a variety of different environments including Desktop, Server and IoT.

On Ubuntu Desktop, it is used by every application to integrate with the desktop environment, or to communicate with system services such as connecting to Wi-Fi, mounting a USB drive, or adjusting the screen brightness.

Starting with Ubuntu 26.10, the default D-Bus implementation changes from dbus-daemon to dbus-broker. Both the system bus and the per-user session bus will be provided by dbus-broker.

Upgrades and fresh installs are both affected equally.

Why?

dbus-daemon is the reference implementation of D-Bus and has been the default on virtually every Linux distribution for over a decade. It’s stable and well-understood, but it was designed in a different era. Today, it struggles to keep up with the performance and reliability requirements of the new world.

dbus-broker is a newer implementation, built from scratch with an asynchronous, event-driven architecture targeting modern Linux. Compared to dbus-daemon it offers better accounting, reliability and scalability.

You may read more about it on the original presentation of dbus-broker: Rethinking the D-Bus Message Bus

What changes for users?

Nothing. dbus-broker is a drop-in replacement. Same protocol, same config files, same bus policies. Apps, desktop environments, snaps — everything keeps working as before.

Why did this take so long?

You might be aware that some other distributions made the switch over to dbus-broker years ago. The path for adoption in Ubuntu took longer, primarily for two reasons:

  1. It is Ubuntu policy that two packages offering the same functionality shouldn’t both exist in main. So before dbus-broker could be promoted, every package in main had to stop depending on dbus-daemon so that it could get demoted.
    The final holdout was GDM, the GNOME log-in manager: it relied on dbus-run-session, a tool provided by dbus-daemon used to launch an isolated bus for each greeter instance (for example, once locally and once in a remote-desktop connection). GDM was reworked in version 49 to drop this dependency, and thus the path was clear to demote dbus-daemon.

  2. Ubuntu also mediates D-Bus messages via AppArmor to restrict access to certain privileged interfaces, both for a subset of critical deb packages as well as for any snap. Integrating AppArmor in dbus-broker has been a long work-in-progress, and it was only recently that it gained feature-parity with dbus-daemon.

We are extremely grateful for the work that happened upstream in both GDM and dbus-broker, that now allows Ubuntu to switch over!

Implementation details

dbus-broker ships systemd units dbus-broker.service for both the system and user instances that shadow via an alias the dbus.service units from dbus-daemon.

On 26.10, dbus-broker moves to main and gets installed by default, overriding the dbus.service units and thus taking over as the bus implementation. dbus and dbus-daemon move to universe and becomes uninstallable, unless you have installed any dependency from universe that still explicitly depends on it, for example by requiring the dbus-run-session tool, often used to run integration tests.

Even if dbus-daemon remains installed on the system, dbus-broker will by default have priority, unless you manually disable it with systemctl disable dbus-broker and systemctl --user --global disable dbus-broker for the system and session bus respectively.

Try it today on Ubuntu 26.04 LTS

If you’re on 26.04 LTS, or on the development release 26.10, you can test dbus-broker now:

  1. Install dbus-broker:

    sudo apt install dbus-broker
    
  2. Reboot

  3. Report any issues on Launchpad

The implementation remains largely unchanged between 26.04 LTS and 26.10.
Early testing helps — bug reports before 26.10 mean fewer surprises at release.

Revert back

In order to revert back to dbus-daemon:

  1. Ensure that dbus-daemon is installed:
    sudo apt install dbus
    
  2. Disable dbus-broker
    sudo systemctl disable dbus-broker
    sudo systemctl --user --global disable dbus-broker
    
  3. Reboot
  4. Optionally, uninstall dbus-broker:
    sudo apt remove dbus-broker
    

Reporting problems

Please file bugs against dbus-broker on Launchpad. For other discussion, use Ubuntu Discourse.

13 Likes

Awesome! Does the 26.04 dbus-broker have the same AppArmor mediation as 26.10? (Basically, will it have the same protections as the current dbus-daemon if used for testing?)

Yes, AppArmor mediation is enabled and, for the most part, working well in 26.04 already.

26.10 does include some additional fixes, namely: apparmor: synchronize with dbus-daemon(1) by dvdhrm · Pull Request #426 · bus1/dbus-broker · GitHub

2 Likes

Do you know why this is the policy? I’m just curious.

Any package that shall be part of a default Ubuntu installation has to be in main (or restricted) to guarantee a higher level of quality control and maintenance for the default user experience.

Further packages, not installed by default, can also be added via the supported seeds, usually because they represent an important yet optional workload to the Ubuntu userbase.

That’s from the first link you quoted… if you have to split the work for this “higher level of quality control and maintenance” between two packages providing the same features you obviously either need more manpower or degrade the quality…

3 Likes

I just switched and no issue so far. Congrats @aleasto :tada:

2 Likes

I don’t know if it was just a coincidence, but I had a minor issue with the OBS-Studio Snap where it wasn’t showing the tray icon. I uninstalled the Snap, reinstalled it, and it was still failing. It didn’t cause any problems with the DPKG version. I was about to report it to the Snapcrafters GitHub because I thought it was a Snap-related issue, but then I remembered that I switched to dbus-broker a few days ago to test it out. I tried disabling it, and the icon appeared again. I’ll do some more testing with other applications just in case. Other than that, it’s been a week of working and gaming without any issues. I hope this message helps. When I do more testing this weekend, I will report it on Launchpad. @aleasto

5 Likes