packaging: Add systemd support
authorMartin Schwenke <martin@meltin.net>
Wed, 10 Jul 2013 07:19:55 +0000 (17:19 +1000)
committerMartin Schwenke <martin@meltin.net>
Wed, 10 Jul 2013 08:14:33 +0000 (18:14 +1000)
Based on an original patch by Sumit Bose <sbose@redhat.com>.

Signed-off-by: Martin Schwenke <martin@meltin.net>
(This used to be ctdb commit e43a4b7b69a21c4cec2453dcac436b64bf5d7f06)

ctdb/config/ctdb.service [new file with mode: 0644]
ctdb/packaging/RPM/ctdb.spec.in

diff --git a/ctdb/config/ctdb.service b/ctdb/config/ctdb.service
new file mode 100644 (file)
index 0000000..4ad03a8
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+Description=CTDB
+After=network.target
+
+[Service]
+Type=forking
+LimitCORE=infinity
+PIDFile=/run/ctdbd/ctdbd.pid
+ExecStart=/usr/sbin/ctdbd_wrapper /run/ctdbd/ctdbd.pid start
+ExecStop=/usr/sbin/ctdbd_wrapper /run/ctdbd/ctdbd.pid stop
+KillMode=control-group
+Restart=no
+
+[Install]
+WantedBy=multi-user.target
index a503ce81553c65a8a734a4daa2e41aec13cb743b..b87ba0b0ad38fc16c07d57318922f1040f924994 100644 (file)
@@ -1,3 +1,4 @@
+%define with_systemd  %{?_with_systemd: 1} %{?!_with_systemd: 0}
 %define initdir %{_sysconfdir}/init.d
 Name: ctdb
 Summary: Clustered TDB
@@ -16,8 +17,6 @@ Source: ctdb-%{version}.tar.gz
 Requires: coreutils, sed, gawk, iptables, iproute, procps, ethtool, sudo
 # Commands - package name might vary
 Requires: /usr/bin/killall, /bin/kill, /bin/netstat
-# Directories
-Requires: /etc/init.d
 
 Provides: ctdb = %{version}
 
@@ -57,6 +56,10 @@ Requires: libtevent >= %{libtevent_version}
 BuildRequires: pcp-libs-devel
 %endif
 
+%if %{with_systemd}
+BuildRequires: systemd-units
+%endif
+
 %description
 ctdb is the clustered database used by samba
 
@@ -110,13 +113,19 @@ rm -rf $RPM_BUILD_ROOT
 
 # Create the target build directory hierarchy
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sudoers.d
 
 make DESTDIR=$RPM_BUILD_ROOT docdir=%{_docdir} install install_tests
 
 install -m644 config/ctdb.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ctdb
+
+%if %{with_systemd}
+mkdir -p $RPM_BUILD_ROOT%{_unitdir}
+install -m 755 config/ctdb.service $RPM_BUILD_ROOT%{_unitdir}
+%else
+mkdir -p $RPM_BUILD_ROOT%{initdir}
 install -m755 config/ctdb.init $RPM_BUILD_ROOT%{initdir}/ctdb
+%endif
 
 cp config/events.d/README README.eventscripts
 cp config/notify.d.README README.notify.d
@@ -140,7 +149,13 @@ rm -rf $RPM_BUILD_ROOT
 %config(noreplace) %{_sysconfdir}/ctdb/debug-hung-script.sh
 %config(noreplace) %{_sysconfdir}/ctdb/ctdb-crash-cleanup.sh
 %config(noreplace) %{_sysconfdir}/ctdb/gcore_trace.sh
+
+%if %{with_systemd}
+%{_unitdir}/ctdb.service
+%else
 %attr(755,root,root) %{initdir}/ctdb
+%endif
+
 %attr(755,root,root) %{_sysconfdir}/ctdb/notify.d
 
 %doc README COPYING NEWS