[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