On systems using systemd dbus will use the SystemdServices= directive,
but on non-systemd systems the so called "traditional dbus activation"
method involves reading the Exec= directive. Setting that to /bin/false
means this service is not relevant on non-systemd systems, but
apparently there's an interest from users of such systems to use
iwd (and possibly ead). Thus hook up the expansion of the paths in the
Exec= directive of the dbus service files to allow the traditional dbus
activation to start respective daemon.

Signed-off-by: Andreas Henriksson <andr...@fatal.se>
---
 Makefile.am                      | 11 ++++++-----
 src/net.connman.iwd.service      |  5 -----
 src/net.connman.iwd.service.in   |  5 +++++
 wired/net.connman.ead.service    |  5 -----
 wired/net.connman.ead.service.in |  5 +++++
 5 files changed, 16 insertions(+), 15 deletions(-)
 delete mode 100644 src/net.connman.iwd.service
 create mode 100644 src/net.connman.iwd.service.in
 delete mode 100644 wired/net.connman.ead.service
 create mode 100644 wired/net.connman.ead.service.in

diff --git a/Makefile.am b/Makefile.am
index 57c694d..006d1d1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -250,7 +250,7 @@ dist_dbus_data_DATA += src/iwd-dbus.conf
 endif
 
 if SYSTEMD_SERVICE
-src_iwd_DEPENDENCIES += src/iwd.service
+src_iwd_DEPENDENCIES += src/iwd.service src/net.connman.iwd.service
 
 systemd_unit_DATA += src/iwd.service
 dbus_bus_DATA += src/net.connman.iwd.service
@@ -328,7 +328,7 @@ dist_dbus_data_DATA += wired/ead-dbus.conf
 endif
 
 if SYSTEMD_SERVICE
-wired_ead_DEPENDENCIES += wired/ead.service
+wired_ead_DEPENDENCIES += wired/ead.service wired/net.connman.ead.service
 
 systemd_unit_DATA += wired/ead.service
 dbus_bus_DATA += wired/net.connman.ead.service
@@ -524,8 +524,8 @@ unit_test_p2p_LDADD = $(ell_ldadd)
 
 TESTS = $(unit_tests)
 
-EXTRA_DIST = src/genbuiltin src/iwd.service.in src/net.connman.iwd.service \
-                       wired/ead.service.in wired/net.connman.ead.service \
+EXTRA_DIST = src/genbuiltin src/iwd.service.in src/net.connman.iwd.service.in \
+                       wired/ead.service.in wired/net.connman.ead.service.in \
                        src/80-iwd.link src/pkcs8.conf unit/gencerts.cnf \
                        $(manual_pages) $(patsubst %.1,%.rst, \
                                        $(patsubst %.5,%.rst, \
@@ -539,7 +539,8 @@ if MAINTAINER_MODE
 AM_CFLAGS += -DHAVE_PKCS8_SUPPORT
 endif
 
-CLEANFILES = src/iwd.service wired/ead.service
+CLEANFILES = src/iwd.service wired/ead.service \
+            src/net.connman.iwd.service wired/net.connman.ead.service
 
 DISTCHECK_CONFIGURE_FLAGS = --disable-dbus-policy --disable-systemd-service \
                                --enable-sim-hardcoded \
diff --git a/src/net.connman.iwd.service b/src/net.connman.iwd.service
deleted file mode 100644
index d8ece4c..0000000
--- a/src/net.connman.iwd.service
+++ /dev/null
@@ -1,5 +0,0 @@
-[D-BUS Service]
-Name=net.connman.iwd
-Exec=/bin/false
-User=root
-SystemdService=iwd.service
diff --git a/src/net.connman.iwd.service.in b/src/net.connman.iwd.service.in
new file mode 100644
index 0000000..a7cb7ed
--- /dev/null
+++ b/src/net.connman.iwd.service.in
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=net.connman.iwd
+Exec=@libexecdir@/iwd
+User=root
+SystemdService=iwd.service
diff --git a/wired/net.connman.ead.service b/wired/net.connman.ead.service
deleted file mode 100644
index 24af96b..0000000
--- a/wired/net.connman.ead.service
+++ /dev/null
@@ -1,5 +0,0 @@
-[D-BUS Service]
-Name=net.connman.ead
-Exec=/bin/false
-User=root
-SystemdService=ead.service
diff --git a/wired/net.connman.ead.service.in b/wired/net.connman.ead.service.in
new file mode 100644
index 0000000..63e5011
--- /dev/null
+++ b/wired/net.connman.ead.service.in
@@ -0,0 +1,5 @@
+[D-BUS Service]
+Name=net.connman.ead
+Exec=@libexecdir@/ead
+User=root
+SystemdService=ead.service

Reply via email to