[Canna] Add native systemd service. (#754826)

Akira TAGOH tagoh at fedoraproject.org
Mon Nov 21 03:20:05 UTC 2011


commit 708a09daeafaed8ad9b592270fb2f0d062aadd95
Author: Akira TAGOH <tagoh at redhat.com>
Date:   Mon Nov 21 12:19:54 2011 +0900

    Add native systemd service. (#754826)

 Canna.spec    |   37 ++++++++++++++--------
 canna.init    |   94 ---------------------------------------------------------
 canna.service |   12 +++++++
 3 files changed, 36 insertions(+), 107 deletions(-)
---
diff --git a/Canna.spec b/Canna.spec
index cda2111..57fb8d8 100644
--- a/Canna.spec
+++ b/Canna.spec
@@ -10,7 +10,7 @@
 Summary: A Japanese character set input system.
 Name: Canna
 Version: 3.7p3
-Release: 32%{?dist}
+Release: 33%{?dist}
 # lib/RKindep/cksum.c is licensed under 4-clause BSD, otherwise MIT.
 License: MIT and BSD with advertising
 Group: System Environment/Libraries
@@ -23,10 +23,10 @@ Source2: pubdic-bonobo-%{pubdicrhver}.tar.bz2
 Source3: shion.tar.gz
 # Source4: http://bonobo.gnome.gr.jp/~nakai/canna/zipcode-%{zipcodever}.tar.bz2
 Source4: zipcode-%{zipcodever}.tar.bz2
-Source20: canna.init
 Source21: dot-canna
 Source22: cannaping.c
 Source30: canna-tmpfiles.conf
+Source31: canna.service
 
 Patch0: Canna-conf.patch
 Patch2: Canna-3.6-sharedir.patch
@@ -51,11 +51,11 @@ Patch44: Canna-3.7p3-no-strip.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Requires(pre): shadow-utils
-Requires(post): /bin/grep /etc/services /sbin/chkconfig %{__chown}
-Requires(preun): /sbin/service /sbin/chkconfig
-Requires(postun): /sbin/service
+Requires(post): /bin/grep /etc/services /sbin/chkconfig %{__chown} systemd-units
+Requires(preun): /sbin/service systemd-units
+Requires(postun): /sbin/service systemd-units
 Requires: initscripts
-BuildRequires: cpp gawk
+BuildRequires: cpp gawk systemd-units
 BuildRequires: imake >= 1.0.1-3
 Obsoletes: tamago
 
@@ -236,11 +236,11 @@ install -p -m 644 basho.cld basho.cbd kaom.ctd keisan.cld keisan.cbd \
 	$RPM_BUILD_ROOT%{_localstatedir}/lib/canna/dic/canna
 cd ..
 
-mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
 mkdir -p $RPM_BUILD_ROOT/etc/skel
-install -p -m 755 %SOURCE20 $RPM_BUILD_ROOT/etc/rc.d/init.d/canna
+mkdir -p $RPM_BUILD_ROOT%{_unitdir}
 install -p -m 0644 %SOURCE21 $RPM_BUILD_ROOT/etc/skel/.canna
 install -p -m 0644 %SOURCE21 $RPM_BUILD_ROOT/etc/canna/default.canna
+install -p -m 0644 %SOURCE31 $RPM_BUILD_ROOT%{_unitdir}/canna.service
 ## chmod 755 $RPM_BUILD_ROOT/etc/rc.d/init.d/canna
 
 cat > $RPM_BUILD_ROOT%{_sysconfdir}/hosts.canna << EOF
@@ -266,6 +266,11 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.a
 rm -fr $RPM_BUILD_ROOT
 
 
+%triggerun -- Canna < 3.7p3-33
+/usr/bin/systemd-sysv-convert --save canna >/dev/null 2>&1 || :
+/sbin/chkconfig --del canna >/dev/null 2>&1 || :
+/bin/systemctl try-restart canna.service >/dev/null 2>&1 || :
+
 %pre
 getent group %{username} >/dev/null || groupadd -r %{username}
 getent passwd %{username} >/dev/null || useradd -r -g %{username} -d %{homedir} -s /sbin/nologin -c '%{gecos}' %{username}
@@ -276,18 +281,21 @@ if ! grep -q canna /etc/services
 then
 	echo "canna		5680/tcp" >>/etc/services
 fi
-/sbin/chkconfig --add canna
 %{__chown} -R %{username}:%{username} %{_localstatedir}/lib/canna
+if [ $1 -eq 1 ]; then
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
 
 %preun
 if [ "$1" = "0" ]; then
-    /sbin/service canna stop > /dev/null 2>&1 || :
-    /sbin/chkconfig --del canna
+    /bin/systemctl --no-reload disable canna.service >/dev/null 2>&1 || :
+    /bin/systemctl stop canna.service >/dev/null 2>&1 || :
 fi
 
 %postun
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
 if [ "$1" -ge "1" ]; then
-    /sbin/service canna try-restart >/dev/null 2>&1 || :
+    /bin/systemctl try-restart canna.service >/dev/null 2>&1 || :
 fi
 
 %post libs -p /sbin/ldconfig
@@ -301,7 +309,6 @@ fi
 %doc %{cannadir}/ChangeLog %{cannadir}/README %{cannadir}/WHATIS
 %doc %{cannadir}/Canna.conf
 %doc $RPM_BUILD_DIR/%{name}-%{version}/sample
-%config %{_sysconfdir}/rc.d/init.d/canna
 %config %{_sysconfdir}/skel/.canna
 %config(noreplace) %{_sysconfdir}/hosts.canna
 %config(noreplace) %{_sysconfdir}/canna/cannahost
@@ -319,6 +326,7 @@ fi
 %dir %{_localstatedir}/run/.iroha_unix
 %{_localstatedir}/lib/canna
 %{_localstatedir}/log/canna
+%{_unitdir}/canna.service
 
 %files devel
 %defattr (-,root,root,-)
@@ -339,6 +347,9 @@ fi
 %{_libdir}/libcanna16.so.*
 
 %changelog
+* Fri Nov 18 2011 Akira TAGOH <tagoh at redhat.com> - 3.7p3-33
+- Add native systemd service. (#754826)
+
 * Fri Feb 24 2011 Akira TAGOH <tagoh at redhat.com> - 3.7p3-32
 - Do not strip symbols from binaries.
 
diff --git a/canna.service b/canna.service
new file mode 100644
index 0000000..1bd0498
--- /dev/null
+++ b/canna.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Canna Japanese Conversion Engine
+After=syslog.target
+
+[Service]
+User=canna
+Type=forking
+ExecStart=/usr/sbin/cannaserver -syslog
+ExecStop=/usr/sbin/cannakill
+
+[Install]
+WantedBy=multi-user.target


More information about the scm-commits mailing list