diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2015-02-09 19:02:43 +0000 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2015-02-24 11:15:37 +0000 |
commit | 263aca37ecf5f977f68d87b54f2fb30584725781 (patch) | |
tree | 9b18710b118a49d9d47553326957e904eecdce70 /bus/Makefile.am | |
parent | 614e5aa8723484d351005b4bbbeed9b4ef8332ee (diff) | |
download | dbus-263aca37ecf5f977f68d87b54f2fb30584725781.tar.gz |
Optionally install systemd user units for a per-user bus
The socket path used here, $XDG_RUNTIME_DIR/bus, does not match
what was used in user-session-units, but is what Lennart recommended
on fd.o #61303, and is also what kdbus will use for its bus proxy.
Installation of these units switches D-Bus to a different model of
the system: instead of considering each login session (approximately,
each password typed in) to be its own session, the user-session model
is that all concurrent logins by the same user form one large session.
This allows the same bus to be shared by a graphical session, cron jobs,
tty/ssh sessions, screen/tmux sessions and so on.
Because this is a different world-view, it is compile-time optional:
OS builders can choose which world their OS will live in. The default
is still the login-session model used in earlier D-Bus releases,
but might change to the user-session model in future. Explicit
configuration is recommended.
In OSs that support both models (either for sysadmin flexibility or as
a transitional measure), the OS builder should enable the user bus
units, but split them off into a dpkg binary package, RPM subpackage etc.;
the sysadmin can choose whether to enable the user-session model by
choosing whether to install that package.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=61301
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Diffstat (limited to 'bus/Makefile.am')
-rw-r--r-- | bus/Makefile.am | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am index 1db7c9e1..ac2b4fce 100644 --- a/bus/Makefile.am +++ b/bus/Makefile.am @@ -250,6 +250,10 @@ if HAVE_SYSTEMD $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants ln -fs ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service endif +if DBUS_ENABLE_USER_SESSION + $(mkinstalldirs) $(DESTDIR)$(systemduserunitdir)/sockets.target.wants + ln -fs ../dbus.socket $(DESTDIR)$(systemduserunitdir)/sockets.target.wants/dbus.socket +endif if DBUS_UNIX install-exec-hook: @@ -301,13 +305,23 @@ endif if HAVE_SYSTEMD SCRIPT_IN_FILES += \ dbus.service.in \ - dbus.socket.in + dbus.socket.in \ + systemd-user/dbus.service.in \ + systemd-user/dbus.socket.in \ + $(NULL) systemdsystemunit_DATA = \ dbus.service \ dbus.socket endif +if DBUS_ENABLE_USER_SESSION +systemduserunit_DATA = \ + systemd-user/dbus.service \ + systemd-user/dbus.socket \ + $(NULL) +endif + #### Extra dist EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) |