[PATCH 4/4] Add systemd unit file for kojira

Dennis Gilmore dennis at ausil.us
Sat Jun 6 20:05:19 UTC 2015


Signed-off-by: Dennis Gilmore <dennis at ausil.us>
---
 koji.spec           | 22 ++++++++++++++++++++++
 util/Makefile       | 23 ++++++++++++++++-------
 util/kojira.service | 14 ++++++++++++++
 3 files changed, 52 insertions(+), 7 deletions(-)
 create mode 100644 util/kojira.service

diff --git a/koji.spec b/koji.spec
index fbe04b7..d1e4181 100644
--- a/koji.spec
+++ b/koji.spec
@@ -132,6 +132,11 @@ Group: Applications/Internet
 License: LGPLv2
 Requires: postgresql-python
 Requires: %{name} = %{version}-%{release}
+%if %{use_systemd}
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%endif
 
 %description utils
 Utilities for the Koji system
@@ -191,8 +196,12 @@ rm -rf $RPM_BUILD_ROOT
 %files utils
 %defattr(-,root,root)
 %{_sbindir}/kojira
+%if %{use_systemd}
+%{_unitdir}/kojira.service
+%else
 %{_initrddir}/kojira
 %config(noreplace) %{_sysconfdir}/sysconfig/kojira
+%endif
 %dir %{_sysconfdir}/kojira
 %config(noreplace) %{_sysconfdir}/kojira/kojira.conf
 %{_sbindir}/koji-gc
@@ -288,6 +297,18 @@ if [ $1 = 0 ]; then
 fi
 %endif
 
+%if %{use_systemd}
+
+%post utils
+%systemd_post kojira.service
+
+%preun utils
+%systemd_preun kojira.service
+
+%postun utils
+%systemd_postun kojira.service
+
+%else
 %post utils
 /sbin/chkconfig --add kojira
 /sbin/service kojira condrestart &> /dev/null || :
@@ -296,6 +317,7 @@ if [ $1 = 0 ]; then
   /sbin/service kojira stop &> /dev/null || :
   /sbin/chkconfig --del kojira
 fi
+%endif
 
 %changelog
 * Mon Mar 24 2014 Mike McLean <mikem at redhat.com> - 1.9.0-1
diff --git a/util/Makefile b/util/Makefile
index 79ac64f..5ea8bde 100644
--- a/util/Makefile
+++ b/util/Makefile
@@ -1,4 +1,6 @@
 BINFILES = kojira koji-gc koji-shadow
+SYSTEMDSYSTEMUNITDIR = $(shell pkg-config systemd --variable=systemdsystemunitdir)
+TYPE = systemd
 
 _default:
 	@echo "nothing to make. try make install"
@@ -6,7 +8,7 @@ _default:
 clean:
 	rm -f *.o *.so *.pyc *~
 
-install:
+_install:
 	@if [ "$(DESTDIR)" = "" ]; then \
 		echo " "; \
 		echo "ERROR: A destdir is required"; \
@@ -15,12 +17,6 @@ install:
 	mkdir -p $(DESTDIR)/usr/sbin
 	install -p -m 755 $(BINFILES) $(DESTDIR)/usr/sbin
 
-	mkdir -p $(DESTDIR)/etc/rc.d/init.d
-	install -p -m 755 kojira.init $(DESTDIR)/etc/rc.d/init.d/kojira
-
-	mkdir -p $(DESTDIR)/etc/sysconfig
-	install -p -m 644 kojira.sysconfig $(DESTDIR)/etc/sysconfig/kojira
-
 	mkdir -p $(DESTDIR)/etc/kojira
 	install -p -m 644 kojira.conf $(DESTDIR)/etc/kojira/kojira.conf
 
@@ -29,3 +25,16 @@ install:
 
 	mkdir -p $(DESTDIR)/etc/koji-shadow
 	install -p -m 644 koji-shadow.conf $(DESTDIR)/etc/koji-shadow/koji-shadow.conf
+
+install-systemd: _install
+	mkdir -p $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)
+	install -p -m 644 kojira.service $(DESTDIR)$(SYSTEMDSYSTEMUNITDIR)
+
+install-sysv: _install
+	mkdir -p $(DESTDIR)/etc/rc.d/init.d
+	install -p -m 755 kojira.init $(DESTDIR)/etc/rc.d/init.d/kojira
+
+	mkdir -p $(DESTDIR)/etc/sysconfig
+	install -p -m 644 kojira.sysconfig $(DESTDIR)/etc/sysconfig/kojira
+
+install: install-$(TYPE)
diff --git a/util/kojira.service b/util/kojira.service
new file mode 100644
index 0000000..beaea18
--- /dev/null
+++ b/util/kojira.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Koji repo administration
+Documentation=https://fedoraproject.org/wiki/Koji/ServerHowTo
+
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/kojira \
+       --fg \
+       --force-lock \
+       --verbose
+
+[Install]
+WantedBy=multi-user.target
-- 
2.4.2



More information about the koji-devel mailing list