summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2015-09-24 17:32:24 +0100
committerRichard Hughes <richard@hughsie.com>2015-09-29 14:55:59 +0100
commita47a96de5e80acc75409bb3696a309bb92ab6430 (patch)
treea4858a6a10c0f5d2f9ce73af14809ec0657c8bc9
parentdfe3d0c32e686f40d8c4ec831a100eb944bde5d0 (diff)
downloadcolord-a47a96de5e80acc75409bb3696a309bb92ab6430.tar.gz
Add a systemd user service corresponding to the D-Bus session service
This ensures that it ends up in its own cgroup under systemd user sessions where dbus-daemon uses systemd activation, rather than being treated as part of dbus.service. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92165 Signed-off-by: Richard Hughes <richard@hughsie.com>
-rw-r--r--contrib/colord.spec.in1
-rw-r--r--contrib/session-helper/Makefile.am8
-rw-r--r--contrib/session-helper/colord-session.service.in7
-rw-r--r--contrib/session-helper/org.freedesktop.ColorHelper.service.in1
4 files changed, 17 insertions, 0 deletions
diff --git a/contrib/colord.spec.in b/contrib/colord.spec.in
index 1c75001..2c8a698 100644
--- a/contrib/colord.spec.in
+++ b/contrib/colord.spec.in
@@ -200,6 +200,7 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_libexecdir}/colord-session
%{_datadir}/dbus-1/interfaces/org.freedesktop.ColorHelper.xml
%{_datadir}/dbus-1/services/org.freedesktop.ColorHelper.service
+/usr/lib/systemd/user/colord-session.service
# sane helper
%if 0%{?enable_sane}
diff --git a/contrib/session-helper/Makefile.am b/contrib/session-helper/Makefile.am
index 06a4bda..9f45753 100644
--- a/contrib/session-helper/Makefile.am
+++ b/contrib/session-helper/Makefile.am
@@ -62,6 +62,12 @@ $(dbusservicemain_DATA): $(dbusservicemain_in_files) Makefile
@sed -e "s|\@servicedir\@|$(libexecdir)|" $< | \
sed -e "s|\@daemon_user\@|$(daemon_user)|" > $@
+systemduserdir = $(prefix)/lib/systemd/user
+systemduser_in_files = colord-session.service.in
+systemduser_DATA = $(systemduser_in_files:.service.in=.service)
+$(systemduser_DATA): $(systemduser_in_files) Makefile
+ @sed -e "s|\@servicedir\@|$(libexecdir)|" $< > $@
+
if CD_BUILD_SESSION_EXAMPLE
noinst_PROGRAMS = \
colord-session-example
@@ -93,10 +99,12 @@ gsettings_SCHEMAS = $(gsettings_schemas_in_files:.gschema.xml.in=.gschema.xml)
EXTRA_DIST = \
$(gsettings_schemas_in_files) \
+ $(systemduser_in_files) \
$(dbusservicemain_in_files)
DISTCLEANFILES = \
$(dbusservicemain_DATA) \
+ $(systemduser_DATA) \
org.freedesktop.ColorHelper.gschema.xml
-include $(top_srcdir)/git.mk
diff --git a/contrib/session-helper/colord-session.service.in b/contrib/session-helper/colord-session.service.in
new file mode 100644
index 0000000..086a8fd
--- /dev/null
+++ b/contrib/session-helper/colord-session.service.in
@@ -0,0 +1,7 @@
+[Unit]
+Description=Color management helper
+
+[Service]
+Type=dbus
+BusName=org.freedesktop.ColorHelper
+ExecStart=@servicedir@/colord-session
diff --git a/contrib/session-helper/org.freedesktop.ColorHelper.service.in b/contrib/session-helper/org.freedesktop.ColorHelper.service.in
index abcfb7f..28a8568 100644
--- a/contrib/session-helper/org.freedesktop.ColorHelper.service.in
+++ b/contrib/session-helper/org.freedesktop.ColorHelper.service.in
@@ -1,3 +1,4 @@
[D-BUS Service]
Name=org.freedesktop.ColorHelper
Exec=@servicedir@/colord-session
+SystemdService=colord-session.service