[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