[freenx-server] Check that nxsetup has run before starting freenx-server.service (#770814). Make freenx-server.servi

Ville Skyttä scop at fedoraproject.org
Sat Dec 31 10:13:15 UTC 2011


commit 2508de4a5131f5a8fbbd81501ce0a86be8066c70
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Sat Dec 31 12:13:03 2011 +0200

    Check that nxsetup has run before starting freenx-server.service (#770814).
    Make freenx-server.service require sshd.service.
    Symlink nxipp to cups' ipp instead of copying it.
    Build with %{__global_ldflags}.
    Drop nx and cups dir dependencies, just require the packages (#602267).
    Sync /etc/nxserver/* ownership and permissions with what nxsetup sets.
    Own/ghost more files created by nxsetup.
    Drop node.conf.sample.

 freenx-server-0.7.3-nxipp.patch    |   17 +++++++++++
 freenx-server-0.7.3-optflags.patch |   14 ++++++--
 freenx-server-check-setup.sh       |    7 ++++
 freenx-server.service              |    2 +
 freenx-server.spec                 |   57 +++++++++++++++++++++++++-----------
 5 files changed, 76 insertions(+), 21 deletions(-)
---
diff --git a/freenx-server-0.7.3-nxipp.patch b/freenx-server-0.7.3-nxipp.patch
new file mode 100644
index 0000000..81b2865
--- /dev/null
+++ b/freenx-server-0.7.3-nxipp.patch
@@ -0,0 +1,17 @@
+diff -up freenx-server-0.7.3/nxsetup~ freenx-server-0.7.3/nxsetup
+--- freenx-server-0.7.3/nxsetup~	2011-12-30 23:04:53.515194711 +0200
++++ freenx-server-0.7.3/nxsetup	2011-12-30 23:05:55.499954085 +0200
+@@ -366,11 +366,10 @@ EOF
+ 
+ 	echo "done"
+ 
+-	if [ -d "$CUPS_BACKEND" ]
++	if [ -d "$CUPS_BACKEND" ] && [ ! -f "$CUPS_IPP_BACKEND" ]
+ 	then
+ 		echo -n "Setting up cups nxipp backend ..."
+-		cp -af "$CUPS_BACKEND/ipp" "$CUPS_IPP_BACKEND"
+-		chmod 755 "$CUPS_IPP_BACKEND"
++		ln -sf "$CUPS_BACKEND/ipp" "$CUPS_IPP_BACKEND"
+ 		echo "done"
+ 	fi
+ }
diff --git a/freenx-server-0.7.3-optflags.patch b/freenx-server-0.7.3-optflags.patch
index 176dbc0..880f251 100644
--- a/freenx-server-0.7.3-optflags.patch
+++ b/freenx-server-0.7.3-optflags.patch
@@ -1,7 +1,7 @@
 diff -up freenx-server-0.7.3/nxredir/Makefile~ freenx-server-0.7.3/nxredir/Makefile
---- freenx-server-0.7.3/nxredir/Makefile~	2011-08-16 23:31:43.241133395 +0300
-+++ freenx-server-0.7.3/nxredir/Makefile	2011-08-16 23:51:12.366784740 +0300
-@@ -1,7 +1,7 @@
+--- freenx-server-0.7.3/nxredir/Makefile~	2011-12-31 11:39:17.288142560 +0200
++++ freenx-server-0.7.3/nxredir/Makefile	2011-12-31 11:39:52.273330858 +0200
+@@ -1,12 +1,12 @@
  all: libnxredir.so
  
  CC=gcc
@@ -10,9 +10,15 @@ diff -up freenx-server-0.7.3/nxredir/Makefile~ freenx-server-0.7.3/nxredir/Makef
  LIBNAME=libnxredir.so
  VERSION=0
  
+ libnxredir.so: nxredir.o
+-	$(CC) -fPIC $(CFLAGS) -nostdlib -shared -Wl,-soname,$(LIBNAME).$(VERSION) -o $(LIBNAME).$(VERSION) nxredir.o -ldl -lc
++	$(CC) -fPIC $(LDFLAGS) -nostdlib -shared -Wl,-soname,$(LIBNAME).$(VERSION) -o $(LIBNAME).$(VERSION) nxredir.o -ldl -lc
+ 
+ clean:
+ 	rm -f $(LIBNAME).$(VERSION)
 diff -up freenx-server-0.7.3/nx-session-launcher/Makefile~ freenx-server-0.7.3/nx-session-launcher/Makefile
 --- freenx-server-0.7.3/nx-session-launcher/Makefile~	2008-08-05 20:54:32.000000000 +0300
-+++ freenx-server-0.7.3/nx-session-launcher/Makefile	2011-08-16 23:50:59.680594597 +0300
++++ freenx-server-0.7.3/nx-session-launcher/Makefile	2011-12-31 11:39:23.728729509 +0200
 @@ -1,7 +1,7 @@
  .PHONY: all install
  
diff --git a/freenx-server-check-setup.sh b/freenx-server-check-setup.sh
new file mode 100644
index 0000000..7e24de6
--- /dev/null
+++ b/freenx-server-check-setup.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ ! -f /etc/nxserver/users.id_dsa ] ; then
+    logger -s -p daemon.err -t freenx-server.service \
+        'FreeNX server not set up, run "nxsetup --install"'
+    exit 6
+fi
diff --git a/freenx-server.service b/freenx-server.service
index 8b1c409..560eac7 100644
--- a/freenx-server.service
+++ b/freenx-server.service
@@ -1,9 +1,11 @@
 [Unit]
 Description=FreeNX Server
 After=local-fs.target
+Requires=sshd.service
 
 [Service]
 Type=oneshot
+ExecStartPre=/usr/libexec/nx/freenx-server-check-setup
 ExecStartPre=-/usr/libexec/nx/nxserver --cleanup
 ExecStart=/usr/libexec/nx/nxserver --start
 ExecStop=/usr/libexec/nx/nxserver --stop
diff --git a/freenx-server.spec b/freenx-server.spec
index 252da70..63c5ca4 100644
--- a/freenx-server.spec
+++ b/freenx-server.spec
@@ -19,13 +19,14 @@
 Summary: Free Software (GPL) Implementation of the NX Server
 Name: freenx-server
 Version: 0.7.3
-Release: 23%{?dist}
+Release: 24%{?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
+Source3: freenx-server-check-setup.sh
 Patch0: freenx-server-0.7.3-lp-fixes.patch
 Patch1: freenx-server-r104-fixes.patch
 Patch2: restorecon.patch
@@ -33,6 +34,7 @@ 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
+Patch7: freenx-server-0.7.3-nxipp.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: imake, redhat-release
 %if %{with systemd}
@@ -42,10 +44,9 @@ Requires(post): systemd-units
 Requires(preun): systemd-units
 Requires(postun): systemd-units
 %endif
-Requires: nx, %{_pkglibdir}
+Requires: nx%{?_isa} cups
 Requires: openssh-server nc expect which perl
 Requires: xorg-x11-server-Xorg xorg-x11-apps
-Requires: /usr/lib/cups/backend
 %if %{with oldx11}
 Requires: fonts-xorg-base
 %else
@@ -70,6 +71,7 @@ under the GPL. FreeNX-server is a GPL implementation of the NX Server.
 %patch4 -p1 -b .nxdialog
 %patch5 -p1 -b .optflags
 %patch6 -p1 -b .init
+%patch7 -p1 -b .nxipp
 
 sed -i -e's,\$NX_DIR/bin,%{_pkglibexecdir},g'\
   -e's,\$NX_DIR/lib,%{_pkglibdir},g'\
@@ -79,7 +81,8 @@ sed -i -e's,NX_LOGFILE=/.*,NX_LOGFILE=/var/log/nx/nxserver.log,' \
   nxloadconfig node.conf.sample
 
 %build
-export CFLAGS="%{optflags}" MODULE_CFLAGS="%{optflags}"
+export CFLAGS="%{optflags}" MODULE_CFLAGS="%{optflags}" \
+  LDFLAGS="%{?__global_ldflags}" LOCAL_LDFLAGS="%{?__global_ldflags}"
 make
 
 %install
@@ -87,14 +90,16 @@ rm -rf %{buildroot}
 make install DESTDIR=%{buildroot} NX_ETC_DIR=/etc/nxserver
 mkdir -p %{buildroot}%{_sbindir}
 ln -s %{_pkglibexecdir}/nx{setup,keygen} %{buildroot}%{_sbindir}
-cp -a %{buildroot}/etc/nxserver/node.conf.sample \
-      %{buildroot}/etc/nxserver/node.conf
+install -pm 755 %{SOURCE3} \
+  %{buildroot}%{_pkglibexecdir}/freenx-server-check-setup
+rename .sample "" %{buildroot}/etc/nxserver/node.conf.sample
 
-touch \
- %{buildroot}/etc/nxserver/users.id_dsa \
- %{buildroot}/etc/nxserver/users.id_dsa.pub \
- %{buildroot}/etc/nxserver/client.id_dsa.key \
- %{buildroot}/etc/nxserver/server.id_dsa.pub.key
+for file in users.id_dsa client.id_dsa.key server.id_dsa.pub.key \
+  passwords{,.orig} ; do
+  touch %{buildroot}/etc/nxserver/$file
+  chmod 600 %{buildroot}/etc/nxserver/$file
+done
+touch %{buildroot}/etc/nxserver/users.id_dsa.pub
 
 # Create the nx user home
 mkdir -p %{buildroot}/var/lib/nxserver/home/.ssh
@@ -103,8 +108,10 @@ 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
-touch %{buildroot}/var/lib/nxserver/home/.ssh/known_hosts
-chmod 0600 %{buildroot}/var/lib/nxserver/home/.ssh/known_hosts
+for f in client.id_dsa.key known_hosts ; do
+  touch %{buildroot}/var/lib/nxserver/home/.ssh/$f
+  chmod 0600 %{buildroot}/var/lib/nxserver/home/.ssh/$f
+done
 mkdir -p %{buildroot}/var/lib/nxserver/db/closed
 mkdir -p %{buildroot}/var/lib/nxserver/db/running
 mkdir -p %{buildroot}/var/lib/nxserver/db/failed
@@ -113,6 +120,8 @@ chmod -R 0700 %{buildroot}/var/lib/nxserver/db
 mkdir -p %{buildroot}/var/log/nx
 chmod 0700 %{buildroot}/var/log/nx
 
+ln -s ipp %{buildroot}/usr/lib/cups/backend/nxipp
+
 mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
 install -p %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/freenx-server
 
@@ -168,31 +177,45 @@ systemctl daemon-reload &>/dev/null || :
 %{_sbindir}/nx*
 %{_pkglibexecdir}/*
 %{_pkglibdir}/*
+/usr/lib/cups/backend/nxipp
 /usr/lib/cups/backend/nxsmb
-/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,nx,-)
+%ghost /etc/nxserver/client.id_dsa.key
+%ghost /etc/nxserver/server.id_dsa.pub.key
 %defattr(-,nx,root,-)
 %dir /etc/nxserver
+%config(noreplace) /etc/nxserver/node.conf
 %ghost /etc/nxserver/users.id_dsa
 %ghost /etc/nxserver/users.id_dsa.pub
-%ghost /etc/nxserver/client.id_dsa.key
-%ghost /etc/nxserver/server.id_dsa.pub.key
+%ghost /etc/nxserver/passwords
+%ghost /etc/nxserver/passwords.orig
 %dir /var/lib/nxserver
 /var/lib/nxserver/db
 %dir /var/lib/nxserver/home
 %dir /var/lib/nxserver/home/.ssh
 %ghost /var/lib/nxserver/home/.ssh/authorized_keys2
 /var/lib/nxserver/home/.ssh/authorized_keys2.disabled
+%ghost /var/lib/nxserver/home/.ssh/client.id_dsa.key
 %ghost /var/lib/nxserver/home/.ssh/known_hosts
 /var/log/nx
 
 %changelog
+* Sat Dec 31 2011 Ville Skyttä <ville.skytta at iki.fi> - 0.7.3-24
+- Check that nxsetup has run before starting freenx-server.service (#770814).
+- Make freenx-server.service require sshd.service.
+- Symlink nxipp to cups' ipp instead of copying it.
+- Build with %%{__global_ldflags}.
+- Drop nx and cups dir dependencies, just require the packages (#602267).
+- Sync /etc/nxserver/* ownership and permissions with what nxsetup sets.
+- Own/ghost more files created by nxsetup.
+- Drop node.conf.sample.
+
 * 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,


More information about the scm-commits mailing list