summaryrefslogtreecommitdiff
path: root/extra/freenx
diff options
context:
space:
mode:
authorMichał Masłowski <mtjm@mtjm.eu>2012-04-30 10:55:42 +0200
committerMichał Masłowski <mtjm@mtjm.eu>2012-04-30 10:55:42 +0200
commitd9a9508e07a00015e2a2f278719a9665ff565961 (patch)
tree97ddb1c2607a58c2a632da571b281641dfdf9df2 /extra/freenx
parent0a2ba65e7cf7d8d0452654b2f25cbb84a89fe7cf (diff)
parentb7cd4b184f75d3d2b54b356e08f296df3a9afb38 (diff)
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts: community/buoh/PKGBUILD core/openssl/PKGBUILD extra/llvm/PKGBUILD extra/pulseaudio/PKGBUILD extra/pygobject/PKGBUILD extra/pygobject2/PKGBUILD multilib/lib32-util-linux/PKGBUILD testing/consolekit/PKGBUILD testing/gnome-keyring/PKGBUILD testing/lirc/PKGBUILD testing/samba/PKGBUILD testing/systemd/PKGBUILD
Diffstat (limited to 'extra/freenx')
-rw-r--r--extra/freenx/PKGBUILD85
-rw-r--r--extra/freenx/freenx-server-0.7.3-nxipp.patch17
-rw-r--r--extra/freenx/freenx.install70
3 files changed, 120 insertions, 52 deletions
diff --git a/extra/freenx/PKGBUILD b/extra/freenx/PKGBUILD
index c55c55f31..8e1476ada 100644
--- a/extra/freenx/PKGBUILD
+++ b/extra/freenx/PKGBUILD
@@ -1,25 +1,39 @@
-# $Id: PKGBUILD 140055 2011-10-06 06:24:35Z tpowa $
+# $Id: PKGBUILD 157437 2012-04-28 09:58:42Z andyrtr $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
#Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
pkgname=freenx
pkgver=0.7.3
-pkgrel=10
+pkgrel=11
pkgdesc="Free Software (GPL) Implementation of the NX Server"
arch=(i686 x86_64 'mips64el')
url="http://freenx.berlios.de"
license=('GPL')
-depends=('nxserver' 'gnu-netcat' 'inetutils' 'openssh' 'expect' 'xorg-xauth' 'xorg-fonts-misc' 'coreutils' 'xorg-xmessage' 'xorg-xrdb' 'xorg-xpr' 'xorg-xset' 'xorg-sessreg')
-backup=(opt/NX/etc/node.conf)
+depends=('nx-common' 'nx-x11' 'nxagent' 'nxproxy' 'gnu-netcat' 'inetutils' 'openssh' 'expect' 'python'
+ 'xorg-xauth' 'xorg-fonts-misc' 'coreutils' 'xorg-xmessage' 'xorg-xrdb' 'xorg-xpr' 'xorg-xset' 'xorg-sessreg')
+optdepends=('cups: adds printing support')
+makedepends=('imake')
+options=('!makeflags')
+conflicts=('nxserver')
+provides=('nxserver')
+backup=(etc/nxserver/node.conf)
install=freenx.install
source=(http://download.berlios.de/freenx/$pkgname-server-$pkgver.tar.gz
keymap.patch
nxagent-startup.patch
freenx-latest-svn.patch
- remove-dialog.patch)
+ remove-dialog.patch
+ freenx-server-0.7.3-nxipp.patch)
+md5sums=('856f597e139018f7ed62713c9d6c9ed5'
+ 'f0867659c925f6363fb2b7661f349248'
+ '30dc16d8e2093ff71d5834a169ad9d00'
+ '788f30322783cf2c2dc833e2e4d5e8ad'
+ 'cae1773312506eeefe6a8de07c492bd8'
+ 'b3244c52a6bafc6d9b528eb4d4426e36')
build() {
# patch and install nxserver
- cd $startdir/src/$pkgname-server-$pkgver
+ cd $srcdir/$pkgname-server-$pkgver
# add latest svn fixes
patch -Np3 -i ../freenx-latest-svn.patch
# patch from inside nx
@@ -28,49 +42,54 @@ build() {
patch -Np0 -i ${srcdir}/keymap.patch
# patch nxagent startup to avoid login issues
patch -Np0 -i ${srcdir}/nxagent-startup.patch
+ # check for cups existance and then symlinks the backend
+ patch -Np1 -i ${srcdir}/freenx-server-0.7.3-nxipp.patch
# remove broken dialog function
patch -Np0 -i ${srcdir}/remove-dialog.patch
sed -i -e 's,authorized_keys2,authorized_keys,g' nxloadconfig
- sed -i -e 's,/usr/NX,/opt/NX,g' nxloadconfig
+ sed -i -e 's,\/usr\/NX,\/usr\/lib/nx,g' nxloadconfig node.conf.sample
sed -i -e 's,netcat,nc,g' nxloadconfig
sed -i -e 's/utmp/nx/g' nxsetup
sed -i -e 's,/usr/X11R6/bin/xauth,/usr/bin/xauth,g' nxloadconfig
sed -i -e 's,COMMAND_FOOMATIC="/usr/lib/cups/driver/foomatic-ppdfile",COMMAND_FOOMATIC="/usr/bin/foomatic-ppdfile",g' nxloadconfig
- sed -i -e 's,COMMAND_MD5SUM="openssl md5",COMMAND_MD5SUM="md5sum",g' nxloadconfig
+ sed -i -e 's,COMMAND_MD5SUM="openssl md5",COMMAND_MD5SUM="md5sum",g' nxloadconfig node.conf.sample
sed -i -e 's|AGENT_EXTRA_OPTIONS_X=""|AGENT_EXTRA_OPTIONS_X="-co /usr/share/X11/rgb -fp /usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 -xkbdir /usr/share/X11/xkb"|g' nxloadconfig
sed -i -e 's/ENABLE_AUTORECONNECT_BEFORE_140="1"/ENABLE_AUTORECONNECT_BEFORE_140="0"/g' nxloadconfig
sed -i -e 's,/etc/init.d/ssh,/etc/rc.d/sshd,g' nxsetup
sed -i -e 's,libXcomp.so,libXcomp.so.3,g' nxloadconfig
sed -i -e 's,libXcompext.so,libXcompext.so.3,g' nxloadconfig
sed -i -e 's,libXrender.so.1.2,libXrender.so.1.2.2:$APPLICATION_LIBRARY_PATH/libXcompsh.so.3:$APPLICATION_LIBRARY_PATH/libXcompshad.so.3,g' nxloadconfig
+ sed -i -e 's:NX_ETC_DIR\=$NX_DIR\/etc:NX_ETC_DIR=\/etc\/nxserver:g' nxloadconfig
+ sed -i -e 's:NX_SESS_DIR=$NX_DIR\/var\/db:NX_SESS_DIR=\/var\/lib\/nxserver\/db:g' nxloadconfig
+ sed -i -e 's:NX_HOME_DIR=$NX_DIR:NX_HOME_DIR=\/var\/lib\/nxserver:g' nxloadconfig
+ sed -i -e 's:NOMACHINE_NX_HOME_DIR="/usr/lib/nx/home/nx":NOMACHINE_NX_HOME_DIR="/var/lib/nxserver/home/nx":g' nxloadconfig node.conf.sample
+ sed -i -e 's:\/usr\/NX:\/usr\/lib\/nx:g' nxdialog
+
# fix key generation
sed -i -e 's,AUTOMATIC="no",AUTOMATIC="yes",g' nxsetup
+
+ make
}
package() {
- cd $startdir/src/$pkgname-server-$pkgver
- install -D -m755 nxnode $startdir/pkg/opt/NX/bin/nxnode
- install -D -m755 nxserver $startdir/pkg/opt/NX/bin/nxserver
- install -D -m755 nxsetup $startdir/pkg/opt/NX/bin/nxsetup
- install -D -m755 nxkeygen $startdir/pkg/opt/NX/bin/nxkeygen
- install -D -m755 nxnode-login $startdir/pkg/opt/NX/bin/nxnode-login
- install -D -m755 nxloadconfig $startdir/pkg/opt/NX/bin/nxloadconfig
- install -D -m755 nxdialog $startdir/pkg/opt/NX/bin/nxdialog
- install -D -m755 nxviewer_helper $startdir/pkg/opt/NX/bin/nxviever_helper
- install -D -m755 nxcups-gethost $startdir/pkg/opt/NX/bin/nxcups-gethost
- install -D -m755 nxdesktop_helper $startdir/pkg/opt/NX/bin/nxdesktop_helper
- # provided by nxclient!
- #install -D -m755 nxprint $startdir/pkg/opt/NX/bin/nxprint
- install -D -m755 node.conf.sample $startdir/pkg/opt/NX/etc/node.conf
- # install nxhelper
- cd nxserver-helper
- make
- install -D -m755 nxserver-helper $startdir/pkg/opt/NX/bin/nxserver-helper
- # create nxserver homedir
- mkdir -m700 -p $startdir/pkg/opt/NX/home/nx
+ cd $srcdir/$pkgname-server-$pkgver
+
+ make install DESTDIR="${pkgdir}"
+
+ # create symlinks
+ install -dm755 ${pkgdir}/usr/bin
+ cd ${pkgdir}/usr/bin
+ for file in ${pkgdir}/usr/lib/nx/bin/*; do
+ ln -sv /usr/lib/nx/bin/`basename $file` .
+ done
+
+ mv $pkgdir/etc/nxserver/node.conf.sample $pkgdir/etc/nxserver/node.conf
+
+ # create some missing nxserver directories
+ mkdir -m700 -p $pkgdir/var/lib/nxserver/{home/nx,db}
+ mkdir -m700 -p $pkgdir/usr/lib/nx/share
+
+ # remove files that are part of nxclient
+ rm -f ${pkgdir}/usr/lib/nx/bin/nxprint
+ rm -f ${pkgdir}/usr/bin/nxprint
}
-md5sums=('856f597e139018f7ed62713c9d6c9ed5'
- 'f0867659c925f6363fb2b7661f349248'
- '30dc16d8e2093ff71d5834a169ad9d00'
- '788f30322783cf2c2dc833e2e4d5e8ad'
- 'cae1773312506eeefe6a8de07c492bd8')
diff --git a/extra/freenx/freenx-server-0.7.3-nxipp.patch b/extra/freenx/freenx-server-0.7.3-nxipp.patch
new file mode 100644
index 000000000..81b286593
--- /dev/null
+++ b/extra/freenx/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/extra/freenx/freenx.install b/extra/freenx/freenx.install
index 93a28656f..0f3260166 100644
--- a/extra/freenx/freenx.install
+++ b/extra/freenx/freenx.install
@@ -1,27 +1,59 @@
-# arg 1: the new package version
post_install() {
-# setting up freenx
-echo 'Generating keys ...'
-/opt/NX/bin/nxsetup --install --uid 85 --gid 85 2>&1 >/dev/null
-/bin/cat <<THEEND
-ATTENTION FREENX:
-For correct setup please take a look at the wiki:
-http://wiki.archlinux.org/index.php/FreeNX
-THEEND
+ # Make sure the group and user "nx" exists on this system and have the correct values
+ if grep -q "^nx:" /etc/group &> /dev/null ; then
+ groupmod -g 85 -n nx nx &> /dev/null
+ else
+ groupadd -g 85 nx &> /dev/null
+ fi
+
+ if grep -q "^nx:" /etc/passwd 2> /dev/null ; then
+ usermod -s /usr/bin/nxserver -c "NX user" -d /var/lib/nxserver/home/nx -u 85 -g nx nx &> /dev/null
+ else
+ useradd -s /usr/bin/nxserver -c "NX user" -d /var/lib/nxserver/home/nx -u 85 -g nx -r nx &> /dev/null
+ fi
+
+ # setting up freenx
+ echo 'Generating keys ...'
+ /usr/lib/nx/bin/nxsetup --install 2>&1 >/dev/null
+
+ echo "ATTENTION FREENX:"
+ echo "For correct setup please take a look at the wiki:"
+ echo "http://wiki.archlinux.org/index.php/FreeNX"
}
post_upgrade() {
-# setting up freenx
-echo 'Rerunning nxsetup ...'
-/opt/NX/bin/nxsetup --install --uid 85 --gid 85 2>&1 >/dev/null
-/bin/cat <<THEEND
-ATTENTION FREENX:
-For correct setup please take a look at the wiki:
-http://wiki.archlinux.org/index.php/FreeNX
-THEEND
+ # Make sure the group and user "nx" exists on this system and have the correct values
+ if grep -q "^nx:" /etc/group &> /dev/null ; then
+ groupmod -g 85 -n nx nx &> /dev/null
+ else
+ groupadd -g 85 nx &> /dev/null
+ fi
+
+ if grep -q "^nx:" /etc/passwd 2> /dev/null ; then
+ usermod -s /usr/bin/nxserver -c "NX user" -d /var/lib/nxserver/home/nx -u 85 -g nx nx &> /dev/null
+ else
+ useradd -s /usr/bin/nxserver -c "NX user" -d /var/lib/nxserver/home/nx -u 85 -g nx -r nx &> /dev/null
+ fi
+
+ # setting up freenx
+ echo "Rerunning nxsetup ..."
+ /usr/lib/nx/bin/nxsetup --install 2>&1 >/dev/null
+
+ if [ "`vercmp $2 0.7.3-10.1`" -lt 0 ]; then
+ # important upgrade notice
+ echo "*** config file location has been moved ***"
+ echo "Please apply your local settings from /opt/NX/etc/node.conf.pacsave"
+ echo "into /etc/nxserver/node.conf. A new key set is required."
+ echo "Please copy to your clients the new client key:"
+ echo "\"/var/lib/nxserver/home/nx/.ssh/client.id_dsa.key\""
+ echo "When you have FreeNX server running clean up with \"rm -rf /opt/NX\"."
+ fi
}
+
# arg 1: the old package version
pre_remove() {
- /opt/NX/bin/nxsetup --uninstall --purge 2>&1 >/dev/null
- usr/sbin/groupdel nx &>/dev/null
+ /usr/lib/nx/bin/nxsetup --uninstall --purge 2>&1 >/dev/null
+# usr/sbin/groupdel nx &>/dev/null
+ userdel nx &> /dev/null
+ groupdel nx &> /dev/null || /bin/true
}