summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--freenx/build/README.slackware61
-rwxr-xr-xfreenx/build/freenx.SlackBuild233
-rw-r--r--freenx/build/freenx.slack-desc19
-rw-r--r--freenx/build/nx.slack-desc19
4 files changed, 332 insertions, 0 deletions
diff --git a/freenx/build/README.slackware b/freenx/build/README.slackware
new file mode 100644
index 00000000..2dacd255
--- /dev/null
+++ b/freenx/build/README.slackware
@@ -0,0 +1,61 @@
+Setting up Freenx on Slackware Linux
+------------------------------------
+
+Introduction
+------------
+
+Many thanks to Rick Stout <zipsonic.AT.gmail.com> who wrote a small HOWTO for
+Redhat/Fedora users, however much of it applies to Slackware too.
+See http://fedoranews.org/contributors/rick_stout/freenx/
+
+FreeNX is the GPL-ed re-implementation of Nomachine's NX server. NX server is a Terminal Server solution which runs on Linux/Unix with clients that run on Linux,Unix,MS Windows and Mac OSX. NX technology uses ssh compression and ssl encryption to deliver near-native performance for displaying and working with a remote X environment.
+Once you've started using NX, you'll never go back to VNC.
+
+Prerequisite: sshd must be running as a daemon on port 22
+
+The Slackware package of FreeNX takes care of the installation and setup, so there is no need to run "nxsetup". The nx package needs to be installed to, as the FreeNX package (which really just consists of a number of shell scripts) wrap around Nomachine's nx libraries.
+
+After installing the nx and freenx packages, the server side of the setup is done!
+
+Clients
+-------
+
+Next, you will need a client. Client programs for several Operating Systems are available at http://www.nomachine.com/download.php - they are all released under the GPL, just as the nx libraries. Installation help can be found at the 'resources' link: http://www.nomachine.com/resources.php
+
+The most important part of the initial connection is the key file. This file, "client.id_dsa.key", must be copied from the server to your client machine. For example:
+
+# On the server
+scp /var/lib/nxserver/home/.ssh/client.id_dsa.key <user>@<client.machine>:
+# this should copy the DSA key to your client
+
+# On the client (do as root)
+mv /home/<user>/client.id_dsa.key /usr/NX/share/ # hit y to overwrite
+chmod 644 /usr/NX/share/client.id_dsa.key
+
+If you are using win32 client, its nx/share is located at:
+
+C:\Program Files\NX Client for Windows\share
+
+If you want to use a key file with a different name (for instance when you connect to more than one FreeNX server, or FreeNX and NomachineNX servers) you can click the "Import" button in the client configuration, and select the key-file that you want to use.
+The easiest way to setup the client is to run the wizard. Most settings are pretty self-explanatory. Make sure you select:
+
+* Unix, and Gnome (or kde, or whatever wm you use, ymmv)
+* A resolution
+* Enable SSL traffic
+
+Click next and finish.
+
+Time to Connect! Start the client. Type your username, password and select the session.
+Note:
+If you created the connection icon, it will only prompt for username and password. Your first connection will give you an error about cache - This is normal.
+Voila! You're connected.
+
+
+Sound
+-----
+
+If you want sound, the Linux NX client uses artsd and the Windows/Mac clients use esd. Gnome sessions will work out of the box (Gnome uses esd) but to get sound in KDE, you'll have to configure your client to use "UNIX/Custom" and then finn in "nxesddsp startkde" for the command to run. In KDE, enable "networked sound" and select the "Enlightened Sound Daemon". Now, sound will work!
+
+-------------------------------------------------------------------------------
+Eric Hameleers <alien@sox.homeip.net> :: 18aug2005
+$Id$
diff --git a/freenx/build/freenx.SlackBuild b/freenx/build/freenx.SlackBuild
new file mode 100755
index 00000000..c4df1b85
--- /dev/null
+++ b/freenx/build/freenx.SlackBuild
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# -----------------------------------------------------------------------------
+#
+# Slackware SlackBuild script
+# ===========================
+# By: Eric Hameleers <alien@sox.homeip.net>
+# For: freenx
+# URL: http://www.nomachine.com/
+# Needs: nx,nc,expect
+# Changelog:
+# 0.4.4-1: 15/Aug/2005 by Eric Hameleers <alien@sox.homeip.net>
+# * Initial build.
+# 0.4.4-2: 18/Aug/2005 by Eric Hameleers <alien@sox.homeip.net>
+# * Added patches for authorized_keys.
+#
+# Run 'sh SlackBuild --cleanup' to build a Slackware package.
+# The package (.tgz) plus descriptive .txt file are created in /tmp .
+# Install using 'installpkg'.
+#
+# -----------------------------------------------------------------------------
+
+# --- INIT ---
+# Set initial variables:
+CWD=`pwd`
+if [ "$TMP" = "" ]; then
+ TMP=/tmp
+fi
+
+PRGNAM=freenx
+VERSION=0.4.4
+ARCH=noarch
+BUILD=2
+
+PKG=$TMP/package-$PRGNAM
+
+if [ ! -d $TMP/tmp-$PRGNAM ]; then
+ mkdir -p $TMP/tmp-$PRGNAM # location to build the source
+fi
+if [ ! -d $PKG ]; then
+ mkdir -p $PKG # place for the package to be built
+fi
+
+
+# --- PACKAGE BUILDING ---
+
+echo "++"
+echo "|| $PRGNAM-$VERSION"
+echo "++"
+
+rm -rf $PKG/*
+
+cd $PKG
+
+# Explode the package framework:
+if [ -f $CWD/_$PRGNAM.tar.gz ]; then
+ explodepkg $CWD/_$PRGNAM.tar.gz
+fi
+
+cd $TMP/tmp-$PRGNAM
+
+
+# --- TARBALL EXTRACTION,PATCH,MODIFY ---
+tar -zxvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+
+patch -p0 < $CWD/netcat.diff
+patch -p0 < $CWD/authkeys.diff
+patch -p0 < $CWD/nx150backend.diff
+
+chown -R root.root *
+find . -perm 777 -exec chmod 755 {} \;
+
+
+# --- BUILDING ---
+
+echo Building ...
+
+#
+# Install all the needed stuff to the package dir
+#
+mkdir -p $PKG/usr/bin
+mkdir -p $PKG/etc/nxserver
+mkdir -p $PKG/var/lib/nxserver/db/closed
+mkdir -p $PKG/var/lib/nxserver/db/running
+mkdir -p $PKG/var/lib/nxserver/db/failed
+
+chmod 700 $PKG/var/lib/nxserver
+chmod 700 $PKG/var/lib/nxserver/*
+chmod 700 $PKG/var/lib/nxserver/db/*
+
+cp -a nxclient nxnode nxkeygen nxnode-login nxserver nxprint nxsetup \
+ nxloadconfig $PKG/usr/bin/
+(cd $PKG/usr/bin &&
+ chmod 755 nxclient nxnode nxkeygen nxnode-login nxserver nxprint \
+ nxsetup nxloadconfig
+)
+cp -a node.conf.sample $PKG/etc/nxserver
+chmod 755 $PKG/etc/nxserver/node.conf.sample
+
+
+# --- DOINST.SH SCRIPT ---
+mkdir -p $PKG/install
+cat <<"EEOOTT" > $PKG/install/doinst.sh
+export $(grep ^NX_DIR usr/bin/nxloadconfig)
+export $(grep ^NX_HOME_DIR usr/bin/nxloadconfig)
+export $(grep ^NX_SESS_DIR usr/bin/nxloadconfig)
+export $(grep ^NX_ETC_DIR usr/bin/nxloadconfig)
+export $(grep ^NX_LOGFILE usr/bin/nxloadconfig)
+export $(grep ^SSH_AUTHORIZED_KEYS usr/bin/nxloadconfig)
+echo "I will restart the SSH daemon now -"
+echo "This will have no effect on any current ssh session you may have running,"
+echo " but it is needed for the FreeNX setup."
+/etc/rc.d/rc.sshd restart
+touch ${NX_ETC_DIR/#\//}/passwords ${NX_ETC_DIR/#\//}/passwords.orig \
+ ${NX_LOGFILE/#\//}
+chmod 600 ${NX_ETC_DIR/#\//}/pass* ${NX_LOGFILE/#\//}
+
+if [ ! -e ${NX_ETC_DIR/#\//}/users.id_dsa ]
+then
+ ssh-keygen -f ${NX_ETC_DIR/#\//}/users.id_dsa -t dsa -N "" > /dev/null 2>&1
+fi
+
+if [ -e ${NX_HOME_DIR/#\//}/.ssh/client.id_dsa.key ] && \
+ [ -e ${NX_HOME_DIR/#\//}/.ssh/server.id_dsa.pub.key ]
+then
+ mv -f ${NX_HOME_DIR/#\//}/.ssh/client.id_dsa.key \
+ ${NX_ETC_DIR/#\//}/client.id_dsa.key
+ mv -f ${NX_HOME_DIR/#\//}/.ssh/server.id_dsa.pub.key \
+ ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key
+fi
+
+if ! { chroot . getent passwd | egrep -q "^nx:"; }
+then
+ chroot . useradd -m -d ${NX_HOME_DIR} -s /usr/bin/nxserver nx
+ mkdir -p ${NX_HOME_DIR/#\//}/.ssh
+ chmod 700 ${NX_HOME_DIR/#\//}/.ssh
+fi
+
+if [ ! -e ${NX_ETC_DIR/#\//}/client.id_dsa.key ] || \
+ [ ! -e ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key ]
+then
+ rm -f ${NX_ETC_DIR/#\//}/client.id_dsa.key
+ rm -f ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key
+ ssh-keygen -q -t dsa -N '' -f ${NX_ETC_DIR/#\//}/local.id_dsa
+ mv ${NX_ETC_DIR/#\//}/local.id_dsa \
+ ${NX_ETC_DIR/#\//}/client.id_dsa.key
+ mv ${NX_ETC_DIR/#\//}/local.id_dsa.pub \
+ ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key
+fi
+
+cp -f ${NX_ETC_DIR/#\//}/client.id_dsa.key \
+ ${NX_HOME_DIR/#\//}/.ssh/client.id_dsa.key
+cp -f ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key \
+ ${NX_HOME_DIR/#\//}/.ssh/server.id_dsa.pub.key
+chmod 600 ${NX_ETC_DIR/#\//}/client.id_dsa.key \
+ ${NX_ETC_DIR/#\//}/server.id_dsa.pub.key \
+ ${NX_HOME_DIR/#\//}/.ssh/client.id_dsa.key \
+ ${NX_HOME_DIR/#\//}/.ssh/server.id_dsa.pub.key
+cat ${NX_HOME_DIR/#\//}/.ssh/server.id_dsa.pub.key \
+ > ${NX_HOME_DIR/#\//}/.ssh/authorized_keys
+chmod 640 ${NX_HOME_DIR/#\//}/.ssh/authorized_keys
+echo -n "127.0.0.1 " > ${NX_HOME_DIR/#\//}/.ssh/known_hosts
+cat etc/ssh/ssh_host_rsa_key.pub >> ${NX_HOME_DIR/#\//}/.ssh/known_hosts
+chown -R nx:root var/lib/nxserver
+chown -R nx:root ${NX_SESS_DIR/#\//}
+
+if [ -e var/lib/nxserver/running ]
+then
+ mv var/lib/nxserver/running/* ${NX_SESS_DIR/#\//}/running
+ mv var/lib/nxserver/closed/* ${NX_SESS_DIR/#\//}/closed
+ mv var/lib/nxserver/failed/* ${NX_SESS_DIR/#\//}/failed
+ rm -rf var/lib/nxserver/running
+ rm -rf var/lib/nxserver/closed
+ rm -rf var/lib/nxserver/failed
+ chown -R nx:root ${NX_SESS_DIR/#\//}
+fi
+chown -R nx:root ${NX_ETC_DIR/#\//}
+chown -R nx:root ${NX_HOME_DIR/#\//}
+chown nx:root ${NX_LOGFILE/#\//}
+EEOOTT
+
+
+# --- DOCUMENTATION ---
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+DOCS="AUTHORS COPYING ChangeLog CONTRIB $CWD/README.slackware"
+cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
+chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
+
+# Compress the man page(s)
+gzip -9f $PKG/usr/man/*/*
+
+# Strip binaries
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+
+# --- OWNERSHIP, RIGHTS ---
+
+chmod -R o-w $PKG
+chown root:bin $PKG/usr/bin/* $PKG/usr/sbin/* $PKG/bin/* $PKG/sbin/* \
+ $PKG/usr/X11R6/bin/* $PKG/opt/kde/bin/* 2>/dev/null
+
+
+# --- PACKAGE DESCRIPTION ---
+
+mkdir -p $PKG/install
+cat $CWD/${PRGNAM}.slack-desc > $PKG/install/slack-desc
+if [ -f $CWD/doinst.sh ]; then
+ cat $CWD/doinst.sh > $PKG/install/doinst.sh
+fi
+
+
+# --- BUILDING ---
+
+# Build the package:
+cd $PKG
+makepkg --linkadd y --chown n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz \
+ 2>&1 | tee $CWD/makepkg-${PRGNAM}.log
+(cd $TMP && md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5)
+cat $CWD/${PRGNAM}.slack-desc | grep "^${PRGNAM}" > $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt
+
+
+# --- CLEANUP ---
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/tmp-$PRGNAM
+ rm -rf $PKG
+fi
diff --git a/freenx/build/freenx.slack-desc b/freenx/build/freenx.slack-desc
new file mode 100644
index 00000000..b8914b16
--- /dev/null
+++ b/freenx/build/freenx.slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+freenx: freenx (GPL implementation of the NX Server)
+freenx:
+freenx: Freenx is an application/thin-client server based on nx technology.
+freenx: NoMachine nx is the next-generation X compression and roundtrip
+freenx: suppression scheme. It can operate remote X11 sessions over 56k modem
+freenx: dialup links or anything better. This package contains a free (GPL)
+freenx: implementation of the nxserver component.
+freenx:
+freenx:
+freenx: freenx lives at http://freenx.berlios.de/
+freenx:
diff --git a/freenx/build/nx.slack-desc b/freenx/build/nx.slack-desc
new file mode 100644
index 00000000..8732a68d
--- /dev/null
+++ b/freenx/build/nx.slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+nx: nx (Nomachine NX)
+nx:
+nx: NX provides a proxy system for the X Window System.
+nx:
+nx:
+nx:
+nx:
+nx:
+nx:
+nx: nx lives at http://www.nomachine.com/
+nx: