diff options
author | Benedikt Morbach <benedikt.morbach@googlemail.com> | 2012-01-12 15:17:26 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2012-01-17 11:08:18 +0000 |
commit | 07a6c353a26689e9907788d29d78f8b5c0212b31 (patch) | |
tree | 15976e6807e7cdaf3986a2a121282a17ba537a88 | |
parent | 38d65955f4520e13b8490dba9a0a145a95bc37fc (diff) | |
download | upower-07a6c353a26689e9907788d29d78f8b5c0212b31.tar.gz |
Install a systemd service file if systemd is used
This makes dbus defer starting upowerd to systemd instead of doing it itself
and thus puts the daemon under proper systemd supervision.
Signed-off-by: Richard Hughes <richard@hughsie.com>
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | src/Makefile.am | 27 | ||||
-rw-r--r-- | src/org.freedesktop.UPower.service.in | 1 | ||||
-rw-r--r-- | src/upower.service.in | 14 |
5 files changed, 45 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am index ee9ec84..d03baf7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -52,7 +52,8 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = upower-glib.pc # xsltproc barfs on 'make distcheck'; disable for now -DISTCHECK_CONFIGURE_FLAGS=--disable-man-pages --enable-gtk-doc +DISTCHECK_CONFIGURE_FLAGS=--disable-man-pages --enable-gtk-doc \ + --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) clean-local : rm -f *~ diff --git a/configure.ac b/configure.ac index 85ff22e..4d04cdc 100644 --- a/configure.ac +++ b/configure.ac @@ -210,6 +210,14 @@ fi AM_CONDITIONAL(HAVE_IDEVICE, [test x$have_idevice = xyes]) +# 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"]) + # export to Makefile.am AM_CONDITIONAL(BACKEND_TYPE_DUMMY, [test x$with_backend = xdummy]) AM_CONDITIONAL(BACKEND_TYPE_LINUX, [test x$with_backend = xlinux]) diff --git a/src/Makefile.am b/src/Makefile.am index b8981ce..0166861 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -182,11 +182,11 @@ TESTS = up-self-test endif -servicedir = $(datadir)/dbus-1/system-services -service_in_files = org.freedesktop.UPower.service.in -service_DATA = $(service_in_files:.service.in=.service) +dbusservicedir = $(datadir)/dbus-1/system-services +dbusservice_in_files = org.freedesktop.UPower.service.in +dbusservice_DATA = $(dbusservice_in_files:.service.in=.service) -$(service_DATA): $(service_in_files) Makefile +$(dbusservice_DATA): $(dbusservice_in_files) Makefile @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ dbusconfdir = $(sysconfdir)/dbus-1/system.d @@ -196,6 +196,15 @@ dbusconf_DATA = $(dbusconf_in_files:.conf.in=.conf) $(dbusconf_DATA): $(dbusconf_in_files) Makefile cp $< $@ +if HAVE_SYSTEMD +systemdservicedir = $(systemdsystemunitdir) +systemdservice_in_files = upower.service.in +systemdservice_DATA = $(systemdservice_in_files:.service.in=.service) + +$(systemdservice_DATA): $(systemdservice_in_files) Makefile + @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ +endif + install-data-hook: if test -w $(DESTDIR)$(prefix)/; then \ mkdir -p $(DESTDIR)$(historydir); \ @@ -205,7 +214,7 @@ CLEANFILES = $(BUILT_SOURCES) MAINTAINERCLEANFILES = \ $(dbusconf_DATA) \ - $(service_DATA) + $(dbusservice_DATA) EXTRA_DIST = \ org.freedesktop.UPower.xml \ @@ -214,10 +223,14 @@ EXTRA_DIST = \ org.freedesktop.UPower.KbdBacklight.xml \ org.freedesktop.UPower.Wakeups.xml \ up-marshal.list \ - $(service_in_files) \ + $(dbusservice_in_files) \ $(dbusconf_in_files) +if HAVE_SYSTEMD +EXTRA_DIST += $(systemdservice_in_files) +endif + clean-local : - rm -f *~ $(service_DATA) $(dbusconf_DATA) + rm -f *~ $(dbusservice_DATA) $(dbusconf_DATA) $(systemdservice_DATA) -include $(top_srcdir)/git.mk diff --git a/src/org.freedesktop.UPower.service.in b/src/org.freedesktop.UPower.service.in index 0c30555..199d7d3 100644 --- a/src/org.freedesktop.UPower.service.in +++ b/src/org.freedesktop.UPower.service.in @@ -2,4 +2,5 @@ Name=org.freedesktop.UPower Exec=@libexecdir@/upowerd User=root +SystemdService=upower.service diff --git a/src/upower.service.in b/src/upower.service.in new file mode 100644 index 0000000..3aea9e2 --- /dev/null +++ b/src/upower.service.in @@ -0,0 +1,14 @@ +[Unit] +Description=Daemon for power management + +[Service] +Type=dbus +BusName=org.freedesktop.UPower +ExecStart=@libexecdir@/upowerd + +[Install] +# We pull this in by graphical.target instead of waiting for the bus +# activation, to speed things up a little: gdm uses this anyway so it is nice +# if it is already around when gdm wants to use it and doesn't have to wait for +# it. +WantedBy=graphical.target |