From 62c1699c5a4139c9db589dd6fc330871b01634a0 Mon Sep 17 00:00:00 2001 From: Phil Warner Date: Tue, 11 May 2010 20:01:47 +0200 Subject: network/xrdp: Added to 12.0 repository --- network/xrdp/Makefile.PAM.diff | 22 +++++++++ network/xrdp/README | 30 ++++++++++++ network/xrdp/doinst.sh | 25 ++++++++++ network/xrdp/slack-desc | 19 ++++++++ network/xrdp/xrdp.SlackBuild | 98 +++++++++++++++++++++++++++++++++++++++ network/xrdp/xrdp.info | 8 ++++ network/xrdp/xrdp_control.sh.diff | 14 ++++++ 7 files changed, 216 insertions(+) create mode 100644 network/xrdp/Makefile.PAM.diff create mode 100644 network/xrdp/README create mode 100644 network/xrdp/doinst.sh create mode 100644 network/xrdp/slack-desc create mode 100644 network/xrdp/xrdp.SlackBuild create mode 100644 network/xrdp/xrdp.info create mode 100644 network/xrdp/xrdp_control.sh.diff diff --git a/network/xrdp/Makefile.PAM.diff b/network/xrdp/Makefile.PAM.diff new file mode 100644 index 0000000000..adc2599739 --- /dev/null +++ b/network/xrdp/Makefile.PAM.diff @@ -0,0 +1,22 @@ +Patch generated 20071215 by Phillip Warner +Permission granted to use this patch as you see fit. + +--- Makefile.orig 2007-12-15 00:22:34.000000000 -0600 ++++ Makefile 2007-12-15 00:15:13.000000000 -0600 +@@ -39,6 +39,7 @@ + mkdir -p $(PIDDIR) + mkdir -p $(MANDIR) + mkdir -p $(DOCDIR) ++ mkdir -p $(PKGDIR)/etc/pam.d + make -C vnc install + make -C libxrdp install + make -C xrdp install +@@ -46,7 +47,7 @@ + make -C sesman install + make -C xup install + make -C docs install +- if [ -d /etc/pam.d ]; then install instfiles/pam.d/sesman /etc/pam.d/sesman; fi ++ install instfiles/pam.d/sesman $(PKGDIR)/etc/pam.d/sesman + install instfiles/xrdp_control.sh $(DESTDIR)/xrdp_control.sh + + installdeb: diff --git a/network/xrdp/README b/network/xrdp/README new file mode 100644 index 0000000000..a689ff947f --- /dev/null +++ b/network/xrdp/README @@ -0,0 +1,30 @@ +xrdp - Remote Desktop Server for Linux + +Xrdp provides a fully functional Linux terminal server, capable of accepting +connections from rdesktop and Microsoft's own terminal server/remote desktop +clients. Xrdp uses Xvnc or X11rdp (which are installed separately) to manage +the X session. + +Xvnc can be installed by installing tightvnc (available on SlackBuilds.org). +X11rdp can be compiled and installed by following the directions in the +thread at http://tinyurl.com/2ufoz2 (link to LinuxQuestions.org). + +By default, this script will make xrdp without PAM support since PAM is not +installed in Slackware by default. The script supports building with PAM, +but it is completely untested by us. If you want to enable PAM, run the +script as follows: + USE_PAM=yes ./xrdp.SlackBuild + +After installing xrdp there are some configuration files in /etc/xrdp that +can be modified. sesman.ini has some useful options to take note of such as +the ability to allow xrdp use by only a certain group and to specify the log +location (by default the sesman log appears in the program directory so this +should be changed). xrdp.ini should be modified so that you have the options +you want at the server login screen. For instance, if you want xrdp's default +options to be like those of a Windows RDP server then change xrdp.ini so that +the (by default) given sesman-X11rdp set is option xrdp1. +The man page for xrdp.ini has more details on the file. + +/usr/lib/xrdp/startwm.sh by default loads KDE during a session. Change this +as desired to load a different DE/WM. A similar script can be executed on a +per-user basis. See the sesman man page for more details. diff --git a/network/xrdp/doinst.sh b/network/xrdp/doinst.sh new file mode 100644 index 0000000000..40e18dcacc --- /dev/null +++ b/network/xrdp/doinst.sh @@ -0,0 +1,25 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Keep same perms on rc.xrdp.new: +if [ -e etc/rc.d/rc.xrdp ]; then + cp -a etc/rc.d/rc.xrdp etc/rc.d/rc.xrdp.new.incoming + cat etc/rc.d/rc.xrdp.new > etc/rc.d/rc.xrdp.new.incoming + mv etc/rc.d/rc.xrdp.new.incoming etc/rc.d/rc.xrdp.new +fi + +config etc/rc.d/rc.xrdp.new +config etc/xrdp/rsakeys.ini.new +config etc/xrdp/sesman.ini.new +config etc/xrdp/xrdp.ini.new + diff --git a/network/xrdp/slack-desc b/network/xrdp/slack-desc new file mode 100644 index 0000000000..68972661d6 --- /dev/null +++ b/network/xrdp/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---------------------------------------------------------| +xrdp: xrdp - Remote Desktop Server for Linux +xrdp: +xrdp: Xrdp provides a fully functional Linux terminal server, capable of +xrdp: accepting connections from rdesktop and Microsoft's own terminal server +xrdp: and/or remote desktop clients. +xrdp: +xrdp: Xrdp uses Xvnc or X11rdp (installed separately) to manage the X session. +xrdp: +xrdp: http://xrdp.sourceforge.net/ +xrdp: +xrdp: diff --git a/network/xrdp/xrdp.SlackBuild b/network/xrdp/xrdp.SlackBuild new file mode 100644 index 0000000000..24e9b2b690 --- /dev/null +++ b/network/xrdp/xrdp.SlackBuild @@ -0,0 +1,98 @@ +#!/bin/sh + +# Slackware build script for xrdp +# Written by Phil Warner + +PRGNAM=xrdp +VERSION=0.4.0 +ARCH=${ARCH:-i486} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +# If you have PAM installed and wish to install /etc/pam.d/sesman, +# then run this script as: "USE_PAM=yes ./xrdp.SlackBuild" +USE_PAM=${USE_PAM:-no} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +chmod -R a-s,u+rw,go-w . + +if [ ! "$USE_PAM" = "no" ]; then + patch < $CWD/Makefile.PAM.diff + make +else + make nopam +fi + +# Fix path in what will become the init script +patch -d instfiles/ < $CWD/xrdp_control.sh.diff + +make install \ + PKGDIR=$PKG \ + DESTDIR=$PKG/usr/lib/$PRGNAM \ + CFGDIR=$PKG/etc/$PRGNAM \ + PIDDIR=$PKG/var/run \ + MANDIR=$PKG/usr/man \ + DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION + +# Install routines for man pages and docs missing from Makefile +mkdir -p $PKG/usr/man/man5 $PKG/usr/man/man8 +cp -a docs/man/*.5 $PKG/usr/man/man5 +cp -a docs/man/*.8 $PKG/usr/man/man8 + +# Fix permissions from install +chmod a-x $PKG/etc/xrdp/* +if [ -e $PKG/etc/pam.d/ ]; then + chmod a-x $PKG/etc/pam.d/sesman +fi +chmod a-x $PKG/usr/lib/$PRGNAM/{Tahoma-10.fv1,*.bmp,*.cur} + +# Let's make the xrdp_control.sh script the init script +mkdir -p $PKG/etc/rc.d +mv $PKG/usr/lib/$PRGNAM/xrdp_control.sh $PKG/etc/rc.d/rc.$PRGNAM.new + +# Let's not clobber existing configs +cd $PKG/etc/xrdp + mv rsakeys.ini rsakeys.ini.new + mv sesman.ini sesman.ini.new + mv xrdp.ini xrdp.ini.new +cd - + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +( cd $PKG/usr/man + find . -type f -exec gzip -9 {} \; + for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +) + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING design.txt install.txt readme.txt $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz diff --git a/network/xrdp/xrdp.info b/network/xrdp/xrdp.info new file mode 100644 index 0000000000..4b1ed62a18 --- /dev/null +++ b/network/xrdp/xrdp.info @@ -0,0 +1,8 @@ +PRGNAM="xrdp" +VERSION="0.4.0" +HOMEPAGE="http://xrdp.sourceforge.net/" +DOWNLOAD="http://downloads.sourceforge.net/xrdp/xrdp-0.4.0.tar.gz" +MD5SUM="dc83d149e385c4cd402d990695691f55" +MAINTAINER="Phil Warner" +EMAIL="pc_warner@yahoo.com" +APPROVED="rworkman" diff --git a/network/xrdp/xrdp_control.sh.diff b/network/xrdp/xrdp_control.sh.diff new file mode 100644 index 0000000000..f65954bd9c --- /dev/null +++ b/network/xrdp/xrdp_control.sh.diff @@ -0,0 +1,14 @@ +Patch generated 20080116 by Phillip Warner +Permission granted to use this patch as you see fit. + +--- instfiles/xrdp_control.sh.orig 2007-04-29 01:19:13.000000000 -0500 ++++ instfiles/xrdp_control.sh 2008-01-16 01:05:01.000000000 -0600 +@@ -8,7 +8,7 @@ + XRDP=xrdp + SESMAN=sesman + STARTWM=startwm.sh +-XRDP_DIR=/usr/local/xrdp/ ++XRDP_DIR=/usr/lib/xrdp/ + LOG=/dev/null + + cd $XRDP_DIR -- cgit v1.2.3