Source: budgie-desktop Version: 10.2.6-1 Severity: normal User: d...@packages.debian.org Usertags: dbus-launch default-dbus-session-bus
As described in <https://lists.debian.org/debian-devel/2016/08/msg00554.html> I'm part way through a mass-bug-filing to reduce how much dbus-launch is used in Debian. As a result of debian/patches/nm-applet.diff, budgie-desktop currently wraps nm-applet in dbus-launch, which (if successful) results in a new, private session dbus-daemon being run by nm-applet, for as long as nm-applet is running. This is incorrect in a number of ways. * There is no dependency on dbus-x11, which is the package containing the dbus-launch executable. If dbus-launch is not present, the desktop file will just fail to launch. * dbus-launch is X11-specific legacy code, which does several things, all of them badly. If you genuinely want a private session dbus-daemon for the nm-applet, dbus-run-session is the right tool for the job. * Having a private dbus-daemon for the nm-applet is very likely to be entirely the wrong thing to do. The purpose of the session dbus-daemon is to let processes communicate. Starting a new, private one of those creates "its own little world", with processes inside that world failing to communicate with processes outside it. If a process uses a D-Bus bus name as a mutex to prevent concurrent modification of its data files, this could potentially even lead to data loss. * Your use of dbus-launch prevents nm-applet from picking up a pre-created "user bus" on systems that have the dbus-user-session package installed. This takes precedence over dbus-x11, if both are installed. * If dbus-x11 is installed, then one of its responsibilities is to start a session bus for each X11 login session (via an Xsession.d snippet). A sysadmin can disable this, but if they do so, they cannot validly complain that D-Bus is broken. * I think I can confidently say that nm-applet is run with a valid $DISPLAY, and uses either libdbus or GDBus for its D-Bus communications. This means that if dbus-x11 is installed, *and* there is no running session bus (for example because the sysadmin explicitly disabled it), *and* nm-applet uses the session bus, then nm-applet will automatically start a session bus via the "autolaunch" mechanism that it *will* share with the rest of the desktop environment. In summary, whatever problem you are solving, debian/patches/nm-applet.diff is the wrong answer. Please describe the problem that it is intended to solve. I am 95% confident that the correct answer is to remove that patch without replacement. If I am wrong about that, then the binary package that contains budgie-desktop-nm-applet.desktop should depend on dbus (>= 1.8), and the patch should replace dbus-launch with dbus-run-session. S