[freenx-server] Fix init script to actually clean up sessions and to enable/disable logins, ship it disabled by defa
Ville Skyttä
scop at fedoraproject.org
Wed Aug 17 18:54:25 UTC 2011
commit aec99d0d240cf9ea6f9b4324e9cfe663c91eb32d
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Wed Aug 17 11:08:35 2011 +0300
Fix init script to actually clean up sessions and to enable/disable logins, ship it disabled by default.
freenx-server-0.7.3-init.patch | 65 ++++++++++++++++++++++++++++++++++++++++
freenx-server.spec | 9 ++++-
2 files changed, 72 insertions(+), 2 deletions(-)
---
diff --git a/freenx-server-0.7.3-init.patch b/freenx-server-0.7.3-init.patch
new file mode 100644
index 0000000..828ebdb
--- /dev/null
+++ b/freenx-server-0.7.3-init.patch
@@ -0,0 +1,65 @@
+diff -up freenx-server-0.7.3/init.d/freenx-server~ freenx-server-0.7.3/init.d/freenx-server
+--- freenx-server-0.7.3/init.d/freenx-server~ 2011-08-17 01:25:51.872295221 +0300
++++ freenx-server-0.7.3/init.d/freenx-server 2011-08-17 11:00:57.996250732 +0300
+@@ -10,9 +10,8 @@
+ #
+ # Modified to be chkconfig compatible by Johnny Hughes <johnny at centos.org>
+ #
+-# chkconfig: 2345 91 35
+-# description: Creates /tmp/.X11-unix/ if required and cleans up dead \
+-# NX sessions.
++# chkconfig: - 91 35
++# description: FreeNX Server
+
+
+ # Read the config file
+@@ -22,8 +21,16 @@
+ . /etc/init.d/functions
+ prog="freenx-server"
+
++nxstatus() {
++ if [ -e "/var/lock/subsys/freenx-server" ]; then
++ echo $"$prog is running"
++ return 0
++ fi
++ echo $"$prog is stopped"
++ return 3
++}
++
+ start() {
+- runuser -s /bin/bash - nx -c "$PATH_BIN/nxserver --cleanup" > /dev/null 2>&1 < /dev/null
+ if [ ! -d "/tmp/.X11-unix" ]; then
+ mkdir -m1777 /tmp/.X11-unix/
+ [ ! -x /sbin/restorecon ] || /sbin/restorecon /tmp/.X11-unix
+@@ -36,6 +43,8 @@ start() {
+ ret=0
+ fi
+ if [ $ret -eq 0 ]; then
++ nxstatus > /dev/null || $PATH_BIN/nxserver --cleanup > /dev/null 2>&1
++ $PATH_BIN/nxserver --start > /dev/null 2>&1
+ touch /var/lock/subsys/freenx-server
+ action $"Starting $prog: " /bin/true
+ else
+@@ -46,7 +55,8 @@ start() {
+ }
+
+ stop() {
+- runuser -s /bin/bash - nx -c "$PATH_BIN/nxserver --cleanup" > /dev/null 2>&1 < /dev/null
++ $PATH_BIN/nxserver --stop > /dev/null 2>&1
++ $PATH_BIN/nxserver --cleanup > /dev/null 2>&1
+ if [ -e "/var/lock/subsys/freenx-server" ]; then
+ rm -f /var/lock/subsys/freenx-server
+ ret=$?
+@@ -79,11 +89,7 @@ case "$1" in
+ restart
+ ;;
+ status)
+- if [ -e "/var/lock/subsys/freenx-server" ]; then
+- echo $"$prog is running"
+- else
+- echo $"$prog is stopped"
+- fi
++ nxstatus
+ ;;
+ *)
+ echo $"Usage: $prog {start|stop|restart|status}"
diff --git a/freenx-server.spec b/freenx-server.spec
index f5f33db..1282edb 100644
--- a/freenx-server.spec
+++ b/freenx-server.spec
@@ -25,6 +25,7 @@ Patch2: restorecon.patch
Patch3: freenx-server-0.7.3-nxpath-616993.patch
Patch4: freenx-server-0.7.3-nxdialog-627010.patch
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
Requires: nx, %{_pkglibdir}
@@ -54,6 +55,7 @@ under the GPL. FreeNX-server is a GPL implementation of the NX Server.
%patch3 -p1 -b .nxpath
%patch4 -p1 -b .nxdialog
%patch5 -p1 -b .optflags
+%patch6 -p1 -b .init
sed -i -e's,\$NX_DIR/bin,%{_pkglibexecdir},g'\
-e's,\$NX_DIR/lib,%{_pkglibdir},g'\
@@ -84,6 +86,8 @@ touch \
mkdir -p %{buildroot}/var/lib/nxserver/home/.ssh
ln -s /etc/nxserver/server.id_dsa.pub.key \
%{buildroot}/var/lib/nxserver/home/.ssh/authorized_keys2
+ln -s /etc/nxserver/server.id_dsa.pub.key \
+ %{buildroot}/var/lib/nxserver/home/.ssh/authorized_keys2.disabled
chmod 0700 %{buildroot}/var/lib/nxserver/home{,/.ssh}
touch %{buildroot}/var/lib/nxserver/home/.ssh/known_hosts
mkdir -p %{buildroot}/var/lib/nxserver/db/closed
@@ -109,8 +113,6 @@ rm -rf %{buildroot}
%post
/sbin/chkconfig --add freenx-server
-# Not a real service, just to make sure we have /tmp/.X11-unix
-/sbin/service freenx-server start > /dev/null 2>&1
%preun
if [ $1 = 0 ]; then
@@ -134,6 +136,7 @@ fi
%ghost %attr(-,nx,root) /etc/nxserver/client.id_dsa.key
%ghost %attr(-,nx,root) /etc/nxserver/server.id_dsa.pub.key
%attr(-,nx,root) /var/lib/nxserver
+%ghost %attr(-,nx,root) /var/lib/nxserver/home/.ssh/authorized_keys2
%ghost %attr(-,nx,root) /var/lib/nxserver/home/.ssh/known_hosts
%attr(-,nx,root) /var/log/nx
%config(noreplace) %{_sysconfdir}/logrotate.d/freenx-server
@@ -141,6 +144,8 @@ fi
%changelog
* Wed Aug 17 2011 Ville Skyttä <ville.skytta at iki.fi>
+- Fix init script to actually clean up sessions and to enable/disable logins,
+ ship it 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