From a7ed1f67ee5dbbdbe45e15e6461b5f7c886747d8 Mon Sep 17 00:00:00 2001
From: Michel Alexandre Salim <michel@sylvestre.me>
Date: Sun, 27 May 2012 17:34:49 +0700
Subject: [PATCH] On systems with SystemD, install the service descriptor for
 nix-worker, and enable and start it

---
 misc/systemd/nix-worker.service | 12 ++++++++++++
 nix.spec.in                     | 16 ++++++++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 misc/systemd/nix-worker.service

diff --git a/misc/systemd/nix-worker.service b/misc/systemd/nix-worker.service
new file mode 100644
index 000000000..170108885
--- /dev/null
+++ b/misc/systemd/nix-worker.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Helper daemon for managing secure, multi-user Nix stores
+After=syslog.target
+
+[Service]
+Type=simple
+#PIDFile=/var/run/tuned/tuned.pid
+#BusName=com.redhat.tuned
+ExecStart=/usr/bin/nix-worker --daemon
+
+[Install]
+WantedBy=multi-user.target
diff --git a/nix.spec.in b/nix.spec.in
index cbbd65e91..44ea8d7c9 100644
--- a/nix.spec.in
+++ b/nix.spec.in
@@ -137,6 +137,14 @@ done
 # (until this is fixed in the relevant Makefile)
 chmod -x $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/nix.sh
 
+# systemd not available on RHEL yet
+%if ! 0%{?rhel} 
+# install systemd service descriptor
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/systemd/system
+cp -p misc/systemd/nix-worker.service \
+  $RPM_BUILD_ROOT%{_prefix}/lib/systemd/system/
+%endif
+
 # Copy the byte-compiled mode file by hand
 cp -p misc/emacs/nix-mode.elc $RPM_BUILD_ROOT%{_emacs_sitelispdir}/
 
@@ -165,6 +173,11 @@ done
 %post
 chgrp %{nixbld_group} /nix/store
 chmod 1775 /nix/store
+%if ! 0%{?rhel}
+# Enable and start Nix worker
+systemctl enable nix-worker.service
+systemctl start  nix-worker.service
+%endif
 
 %files
 %doc COPYING AUTHORS README
@@ -174,6 +187,9 @@ chmod 1775 /nix/store
 %{perl_vendorarch}/*
 %exclude %dir %{perl_vendorarch}/auto/
 %{_prefix}/libexec/*
+%if ! 0%{?rhel}
+%{_prefix}/lib/systemd/system/nix-worker.service
+%endif
 %{_datadir}/emacs/site-lisp/nix-mode.el
 %{_datadir}/nix
 %{_mandir}/man1/nix-*.1*
-- 
GitLab