[freenx-server] Migrate to systemd on F-16+ (#714446).

Ville Skyttä scop at fedoraproject.org
Wed Aug 17 18:54:35 UTC 2011


commit 1fbdb6eea5c6b79c514440abfc37d4c38dd08bf1
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Wed Aug 17 21:53:19 2011 +0300

    Migrate to systemd on F-16+ (#714446).

 freenx-server.service |   15 ++++++++++++++
 freenx-server.spec    |   51 ++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 63 insertions(+), 3 deletions(-)
---
diff --git a/freenx-server.service b/freenx-server.service
new file mode 100644
index 0000000..8b1c409
--- /dev/null
+++ b/freenx-server.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=FreeNX Server
+After=local-fs.target
+
+[Service]
+Type=oneshot
+ExecStartPre=-/usr/libexec/nx/nxserver --cleanup
+ExecStart=/usr/libexec/nx/nxserver --start
+ExecStop=/usr/libexec/nx/nxserver --stop
+ExecStopPost=-/usr/libexec/nx/nxserver --cleanup
+StandardOutput=null
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/freenx-server.spec b/freenx-server.spec
index 36ba94b..252da70 100644
--- a/freenx-server.spec
+++ b/freenx-server.spec
@@ -1,5 +1,11 @@
 %bcond_with oldx11
 
+%if 0%{?fedora} > 15
+%bcond_without systemd
+%else
+%bcond_with systemd
+%endif
+
 %global _pkglibdir %{_libdir}/nx
 %global _pkgdatadir %{_datadir}/nx
 %global _pkglibexecdir %{_libexecdir}/nx
@@ -13,12 +19,13 @@
 Summary: Free Software (GPL) Implementation of the NX Server
 Name: freenx-server
 Version: 0.7.3
-Release: 22%{?dist}
+Release: 23%{?dist}
 License: GPLv2
 Group: Applications/Internet
 URL: http://freenx.berlios.de/
 Source0: http://download.berlios.de/freenx/%{name}-%{version}.tar.gz
 Source1: freenx.logrotate
+Source2: freenx-server.service
 Patch0: freenx-server-0.7.3-lp-fixes.patch
 Patch1: freenx-server-r104-fixes.patch
 Patch2: restorecon.patch
@@ -28,6 +35,13 @@ Patch5: freenx-server-0.7.3-optflags.patch
 Patch6: freenx-server-0.7.3-init.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: imake, redhat-release
+%if %{with systemd}
+BuildRequires: systemd-units
+Requires(pre): systemd-sysv chkconfig
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%endif
 Requires: nx, %{_pkglibdir}
 Requires: openssh-server nc expect which perl
 Requires: xorg-x11-server-Xorg xorg-x11-apps
@@ -102,8 +116,12 @@ chmod 0700 %{buildroot}/var/log/nx
 mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
 install -p %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/freenx-server
 
+%if %{with systemd}
+install -Dpm 644 %{SOURCE2} %{buildroot}%{_unitdir}/freenx-server.service
+%else
 mkdir -p %{buildroot}%{_sysconfdir}/init.d
 install -p init.d/freenx-server %{buildroot}%{_sysconfdir}/init.d/freenx-server
+%endif
 
 %clean
 rm -rf %{buildroot}
@@ -111,16 +129,38 @@ rm -rf %{buildroot}
 %pre
 %{_sbindir}/useradd -r -d /var/lib/nxserver/home -s %{_pkglibexecdir}/nxserver nx 2>/dev/null \
   || %{_sbindir}/usermod -d /var/lib/nxserver/home -s %{_pkglibexecdir}/nxserver nx 2>/dev/null || :
+%if %{with systemd}
+if [ $1 -gt 1 ] && [ ! -e %{_unitdir}/freenx-server.service ] && \
+   [ -e %{_sysconfdir}/init.d/freenx-server ] ; then
+        systemd-sysv-convert --save freenx-server &>/dev/null
+        chkconfig --del freenx-server &>/dev/null || :
+fi
+%endif
 
 %post
+%if %{with systemd}
+systemctl daemon-reload &>/dev/null
+%else
 /sbin/chkconfig --add freenx-server
+%endif
+exit 0
 
 %preun
 if [ $1 = 0 ]; then
+%if %{with systemd}
+        systemctl --no-reload disable freenx-server.service &>/dev/null
+        systemctl stop freenx-server.service &>/dev/null
+%else
         /sbin/service freenx-server stop > /dev/null 2>&1
         /sbin/chkconfig --del freenx-server
+%endif
+        exit 0
 fi
 
+%if %{with systemd}
+%postun
+systemctl daemon-reload &>/dev/null || :
+%endif
 
 %files
 %defattr(-,root,root,-)
@@ -132,7 +172,11 @@ fi
 /etc/nxserver/node.conf.sample
 %config(noreplace) /etc/nxserver/node.conf
 %config(noreplace) %{_sysconfdir}/logrotate.d/freenx-server
+%if %{with systemd}
+%{_unitdir}/freenx-server.service
+%else
 %{_sysconfdir}/init.d/freenx-server
+%endif
 %defattr(-,nx,root,-)
 %dir /etc/nxserver
 %ghost /etc/nxserver/users.id_dsa
@@ -149,9 +193,10 @@ fi
 /var/log/nx
 
 %changelog
-* Wed Aug 17 2011 Ville Skyttä <ville.skytta at iki.fi>
+* Wed Aug 17 2011 Ville Skyttä <ville.skytta at iki.fi> - 0.7.3-23
+- Migrate to systemd on F-16+ (#714446).
 - Fix init script to actually clean up sessions and to enable/disable logins,
-  ship it disabled by default.
+  ship service disabled by default.
 - Fix default CUPS config dir on Fedora and EL-6+.
 - Build everything with %%{optflags}.
 - Use %%global instead of %%define.


More information about the scm-commits mailing list