summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am3
-rw-r--r--configure.ac8
-rw-r--r--src/Makefile.am27
-rw-r--r--src/org.freedesktop.UPower.service.in1
-rw-r--r--src/upower.service.in14
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