aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-02-06 15:40:28 +0100
committerAleksander Morgado <aleksander@lanedo.com>2013-02-06 17:32:59 +0100
commit222825d642fd3148caf3168c6e9a33f02b4f3733 (patch)
tree2cff6e164e0c3dd9a62a9be69b0cc109f09ddecd /data
parent596c9ea508c005bd1e3b01b439ac5872c926d7cf (diff)
systemd: include systemd unit file support
Allow having systemd handling the life cycle of the ModemManager process.
Diffstat (limited to 'data')
-rw-r--r--data/Makefile.am43
-rw-r--r--data/ModemManager.service.in13
-rw-r--r--data/org.freedesktop.ModemManager1.service.nosystemd.in (renamed from data/org.freedesktop.ModemManager1.service.in)0
-rw-r--r--data/org.freedesktop.ModemManager1.service.systemd.in11
4 files changed, 58 insertions, 9 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index 0f7618df..eb87359b 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,4 +1,11 @@
+edit = @sed \
+ -e 's|@sbindir[@]|$(sbindir)|g' \
+ -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
+ -e 's|@localstatedir[@]|$(localstatedir)|g' \
+ -e 's|@libexecdir[@]|$(libexecdir)|g'
+
+
# DBus Service file
dbusservicedir = $(DBUS_SYS_DIR)
dbusservice_DATA = org.freedesktop.ModemManager1.conf
@@ -14,17 +21,28 @@ org.freedesktop.ModemManager1.conf: $(top_srcdir)/data/$(dbusservice_file_nopol
endif
+# systemd unit file
+systemdsystemunitdir = $(SYSTEMD_UNIT_DIR)
+systemdsystemunit_in_files = ModemManager.service.in
+if HAVE_SYSTEMD
+systemdsystemunit_DATA = ModemManager.service
+ModemManager.service: ModemManager.service.in
+ $(edit) $< >$@
+endif
+
+
# DBus Activation file
-edit = @sed \
- -e 's|@sbindir[@]|$(sbindir)|g' \
- -e 's|@sysconfdir[@]|$(sysconfdir)|g' \
- -e 's|@localstatedir[@]|$(localstatedir)|g' \
- -e 's|@libexecdir[@]|$(libexecdir)|g'
dbusactivationdir = $(datadir)/dbus-1/system-services
-dbusactivation_in_files = org.freedesktop.ModemManager1.service.in
-dbusactivation_DATA = $(dbusactivation_in_files:.service.in=.service)
-%service: %service.in
+dbusactivation_DATA = org.freedesktop.ModemManager1.service
+dbusactivation_in_files_systemd = org.freedesktop.ModemManager1.service.systemd.in
+dbusactivation_in_files_nosystemd = org.freedesktop.ModemManager1.service.nosystemd.in
+if HAVE_SYSTEMD
+org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.systemd.in
$(edit) $< >$@
+else
+org.freedesktop.ModemManager1.service: org.freedesktop.ModemManager1.service.nosystemd.in
+ $(edit) $< >$@
+endif
# Icon
@@ -59,8 +77,15 @@ DISTCLEANFILES = \
$(dbusactivation_DATA) \
$(dbusservice_DATA)
+if HAVE_SYSTEMD
+DISTCLEANFILES += $(systemdsystemunit_DATA)
+endif
+
+
EXTRA_DIST = \
- $(dbusactivation_in_files) \
+ $(systemdsystemunit_in_files) \
+ $(dbusactivation_in_files_systemd) \
+ $(dbusactivation_in_files_nosystemd) \
$(dbusservice_file_polkit) \
$(dbusservice_file_nopolkit) \
$(icon_DATA) \
diff --git a/data/ModemManager.service.in b/data/ModemManager.service.in
new file mode 100644
index 00000000..b59caeae
--- /dev/null
+++ b/data/ModemManager.service.in
@@ -0,0 +1,13 @@
+[Unit]
+Description=Modem Manager
+After=syslog.target
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.ModemManager1
+ExecStart=@sbindir@/ModemManager
+StandardError=null
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-org.freedesktop.ModemManager1.service
diff --git a/data/org.freedesktop.ModemManager1.service.in b/data/org.freedesktop.ModemManager1.service.nosystemd.in
index 4e3a273f..4e3a273f 100644
--- a/data/org.freedesktop.ModemManager1.service.in
+++ b/data/org.freedesktop.ModemManager1.service.nosystemd.in
diff --git a/data/org.freedesktop.ModemManager1.service.systemd.in b/data/org.freedesktop.ModemManager1.service.systemd.in
new file mode 100644
index 00000000..441dc1d6
--- /dev/null
+++ b/data/org.freedesktop.ModemManager1.service.systemd.in
@@ -0,0 +1,11 @@
+# This D-Bus service activation file is only for systemd support since
+# an auto-activated NetworkManager would be quite surprising for those people
+# who have MM installed but turned off. Thus the Exec path available to
+# D-Bus is /bin/false, but systemd knows the real Exec path due to the MM
+# systemd .service file.
+
+[D-BUS Service]
+Name=org.freedesktop.ModemManager1
+Exec=/bin/false
+User=root
+SystemdService=dbus-org.freedesktop.ModemManager1.service