systemd: install systemd unit files
Subsystems (2)
PATCH 1/1 systemd: install systemd unit files
This also enables bus activation for bluetoothd, but only if systemd is running. Only if that's the case we can make sure in a race-free fashion that bluetoothd is not started twice at the same time.
--- Makefile.am | 21 ++++++++++++++++++--- configure.ac | 9 +++++++++ scripts/.gitignore | 1 + scripts/bluetooth.service.in | 12 ++++++++++++ scripts/org.bluez.service | 5 +++++ 5 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 scripts/.gitignore create mode 100644 scripts/bluetooth.service.in create mode 100644 scripts/org.bluez.service
Makefile.am +18 -3
@@ -301,7 +301,8 @@ endif CLEANFILES += $(rules_DATA) EXTRA_DIST += scripts/bluetooth.rules \ - scripts/bluetooth-hid2hci.rules scripts/bluetooth-serial.rules + scripts/bluetooth-hid2hci.rules scripts/bluetooth-serial.rules \ + scripts/bluetooth.service.in scripts/org.bluez.service if PCMCIA udevdir = $(libexecdir)/udev
@@ -309,6 +310,20 @@ udevdir = $(libexecdir)/udev dist_udev_SCRIPTS = scripts/bluetooth_serial endif +if HAVE_SYSTEMD +systemdsystemunit_DATA = \ + scripts/bluetooth.service + +scripts/bluetooth.service: scripts/bluetooth.service.in + @$(SED) -e "s|\@sbindir\@|$(sbindir)|" $< >$@ + +dbussystemservicesdir = $(datadir)/dbus-1/system-services + +dbussystemservices_DATA = \ + scripts/org.bluez.service + +endif + EXTRA_DIST += doc/manager-api.txt \ doc/adapter-api.txt doc/device-api.txt \ doc/service-api.txt doc/agent-api.txt doc/attribute-api.txt \
@@ -328,9 +343,9 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = bluez.pc -DISTCHECK_CONFIGURE_FLAGS = --disable-udevrules +DISTCHECK_CONFIGURE_FLAGS = --disable-udevrules --with-systemdsystemunitdir= -DISTCLEANFILES = $(pkgconfig_DATA) +DISTCLEANFILES = $(pkgconfig_DATA) scripts/bluetooth.service MAINTAINERCLEANFILES = Makefile.in \ aclocal.m4 configure config.h.in config.sub config.guess \
configure.ac +9 -0
@@ -64,5 +64,14 @@ if (test "${enable_netlink}" = "yes"); then fi AM_CONDITIONAL(NETLINK, test "${enable_netlink}" = "yes") +# systemd + +AC_ARG_WITH([systemdsystemunitdir], + AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), + [], + [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) +AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) +AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"]) + AC_OUTPUT(Makefile scripts/bluetooth.rules doc/version.xml src/bluetoothd.8 bluez.pc)
scripts/.gitignore new file +1 -0
@@ -0,0 +1 @@ +bluetooth.service
scripts/bluetooth.service.in new file +12 -0
@@ -0,0 +1,12 @@ +[Unit] +Description=Bluetooth Manager +After=syslog.target + +[Service] +Type=dbus +BusName=org.bluez +ExecStart=@sbindir@/bluetoothd -n +StandardOutput=syslog + +[Install] +WantedBy=bluetooth.target
scripts/org.bluez.service new file +5 -0
@@ -0,0 +1,5 @@ +[D-BUS Service] +Name=org.bluez +Exec=/bin/false +User=root +SystemdService=bluetooth.service
Signature · 8 lines
1.7.0.1 Lennart -- Lennart Poettering - Red Hat, Inc.
Hi Lennart,
Quoted 13 lines · Lennart Poettering
This also enables bus activation for bluetoothd, but only if systemd is running. Only if that's the case we can make sure in a race-free fashion that bluetoothd is not started twice at the same time.
--- Makefile.am | 21 ++++++++++++++++++--- configure.ac | 9 +++++++++ scripts/.gitignore | 1 + scripts/bluetooth.service.in | 12 ++++++++++++ scripts/org.bluez.service | 5 +++++ 5 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 scripts/.gitignore create mode 100644 scripts/bluetooth.service.in create mode 100644 scripts/org.bluez.service
Looks fine to me, but I'll let Marcel handle pushing it upstream since he had issues with the previous version (on IRC) that I didn't see myself.
Johan