bluez: re-add bluetoothd systemd service, previous patch didn't work.

This commit is contained in:
Juan RP 2012-05-24 16:47:26 +02:00
parent c9acfc70f3
commit d1ba075b53
3 changed files with 16 additions and 133 deletions

View File

@ -0,0 +1,10 @@
[Unit]
Description=Bluetooth Manager
[Service]
Type=dbus
BusName=org.bluez
ExecStart=/usr/sbin/bluetoothd -n
[Install]
WantedBy=bluetooth.target

View File

@ -1,121 +0,0 @@
From 0080ce8a37152b0ee7750799e01de3bf810f8caf Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 21 Jul 2010 19:20:44 +0200
Subject: [PATCH] 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 | 13 +++++++++++++
scripts/org.bluez.service | 5 +++++
5 files changed, 46 insertions(+), 3 deletions(-)
create mode 100644 scripts/.gitignore
create mode 100644 scripts/bluetooth.service.in
create mode 100644 scripts/org.bluez.service
diff --git a/Makefile.am b/Makefile.am
index aecc8f2..6e18003 100644
--- Makefile.am
+++ Makefile.am
@@ -387,10 +387,25 @@ endif
rules_DATA = $(foreach file,$(udev_files), scripts/97-$(notdir $(file)))
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
+
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
EXTRA_DIST += doc/manager-api.txt \
doc/adapter-api.txt doc/device-api.txt \
@@ -417,9 +432,9 @@ pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = bluez.pc
-DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles
+DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles --with-systemdsystemunitdir=
-DISTCLEANFILES = $(pkgconfig_DATA)
+DISTCLEANFILES = $(pkgconfig_DATA) scripts/bluetooth.service
MAINTAINERCLEANFILES = Makefile.in \
aclocal.m4 configure config.h.in config.sub config.guess \
diff --git a/configure.ac b/configure.ac
index bc2658c..b4502ab 100644
--- configure.ac
+++ configure.ac
@@ -71,5 +71,14 @@ if (test -n "${path_systemdunit}"); then
fi
AM_CONDITIONAL(SYSTEMD, test -n "${path_systemdunit}")
+# 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 src/bluetooth.service bluez.pc)
diff --git a/scripts/.gitignore b/scripts/.gitignore
new file mode 100644
index 0000000..4b9f765
--- /dev/null
+++ scripts/.gitignore
@@ -0,0 +1 @@
+bluetooth.service
diff --git a/scripts/bluetooth.service.in b/scripts/bluetooth.service.in
new file mode 100644
index 0000000..d0089ea
--- /dev/null
+++ scripts/bluetooth.service.in
@@ -0,0 +1,13 @@
+[Unit]
+Description=Bluetooth Manager
+After=syslog.target
+
+[Service]
+Type=dbus
+BusName=org.bluez
+ExecStart=@sbindir@/bluetoothd -n
+StandardOutput=syslog
+
+[Install]
+WantedBy=bluetooth.target
+Alias=dbus-org.bluez.service
diff --git a/scripts/org.bluez.service b/scripts/org.bluez.service
new file mode 100644
index 0000000..dd7ae8f
--- /dev/null
+++ scripts/org.bluez.service
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=org.bluez
+Exec=/bin/false
+User=root
+SystemdService=dbus-org.bluez.service
--
1.7.6

View File

@ -1,15 +1,15 @@
# Template file for 'bluez' # Template file for 'bluez'
pkgname=bluez pkgname=bluez
version=4.99 version=4.99
revision=2 revision=3
distfiles="${KERNEL_SITE}/bluetooth/$pkgname-$version.tar.xz" distfiles="${KERNEL_SITE}/bluetooth/$pkgname-$version.tar.xz"
build_style=gnu-configure build_style=gnu-configure
configure_args="--libexecdir=/lib --enable-gstreamer --enable-dund configure_args="--libexecdir=/lib --enable-gstreamer --enable-dund
--enable-alsa --enable-usb --enable-tools --enable-bccmd --enable-alsa --enable-usb --enable-tools --enable-bccmd
--enable-hid2hci --enable-dfutool --enable-hidd --enable-pand --enable-hid2hci --enable-dfutool --enable-hidd --enable-pand
--enable-cups --enable-capng --enable-pnat --enable-wiimote --enable-cups --enable-capng --enable-pnat --enable-wiimote --disable-test"
--with-systemdsystemunitdir=/lib/systemd/system --disable-test" subpackages="bluez-alsa bluez-compat bluez-gstreamer libbluetooth libbluetooth-devel"
makedepends="automake>=1.11.3_1 pkg-config flex libudev-devel readline-devel gst-plugins-base-devel alsa-lib-devel dbus-devel glib-devel libusb-compat-devel libcap-ng-devel libsndfile-devel cups-devel" makedepends="pkg-config flex libudev-devel readline-devel gst-plugins-base-devel dbus-devel glib-devel libusb-compat-devel libcap-ng-devel libsndfile-devel cups-devel"
short_desc="Bluetooth tools and daemons" short_desc="Bluetooth tools and daemons"
maintainer="Juan RP <xtraeme@gmail.com>" maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.bluez.org/" homepage="http://www.bluez.org/"
@ -21,6 +21,7 @@ long_desc="
BlueZ is the official Linux Bluetooth protocol stack. It is an Open Source BlueZ is the official Linux Bluetooth protocol stack. It is an Open Source
project distributed under GNU General Public License (GPL)." project distributed under GNU General Public License (GPL)."
systemd_services="bluetooth.service on"
make_dirs="/var/lib/bluetooth 0755 root root" make_dirs="/var/lib/bluetooth 0755 root root"
conf_files=" conf_files="
/etc/bluetooth/main.conf /etc/bluetooth/main.conf
@ -30,15 +31,8 @@ conf_files="
/etc/bluetooth/audio.conf /etc/bluetooth/audio.conf
/etc/bluetooth/serial.conf" /etc/bluetooth/serial.conf"
subpackages="$pkgname-alsa $pkgname-compat $pkgname-gstreamer libbluetooth"
subpackages="$subpackages libbluetooth-devel"
pre_configure() {
autoreconf -fi
}
post_install() { post_install() {
vinstall ${FILESDIR}/bluetooth.service 644 lib/systemd/system
for f in network input audio serial; do for f in network input audio serial; do
vinstall ${f}/${f}.conf 644 etc/bluetooth vinstall ${f}/${f}.conf 644 etc/bluetooth
done done