summaryrefslogtreecommitdiff
path: root/system/xrdp
diff options
context:
space:
mode:
authorPhillip Warner <pc_warner@yahoo.com>2010-05-13 01:01:18 +0200
committerDavid Somero <xgizzmo@slackbuilds.org>2010-05-13 01:01:18 +0200
commit7603037553aaeb9858ddf2dc7ad4e04c51535afc (patch)
tree06d565afe65078a673b28fa85a53aad1985401be /system/xrdp
parentf8148f4768f5990ca80661402f3ec28c059a90c0 (diff)
downloadslackbuilds-7603037553aaeb9858ddf2dc7ad4e04c51535afc.tar.gz
system/xrdp: Added to 13.0 repository
Diffstat (limited to 'system/xrdp')
-rw-r--r--system/xrdp/README40
-rw-r--r--system/xrdp/doinst.sh26
-rw-r--r--system/xrdp/patches/Makefile.NOPAM.diff13
-rw-r--r--system/xrdp/patches/Makefile.PAM.diff22
-rw-r--r--system/xrdp/patches/sesman.ini.diff30
-rw-r--r--system/xrdp/slack-desc19
-rw-r--r--system/xrdp/xrdp-xwmconfig215
-rw-r--r--system/xrdp/xrdp.SlackBuild133
-rw-r--r--system/xrdp/xrdp.info10
9 files changed, 508 insertions, 0 deletions
diff --git a/system/xrdp/README b/system/xrdp/README
new file mode 100644
index 0000000000..290a45d14c
--- /dev/null
+++ b/system/xrdp/README
@@ -0,0 +1,40 @@
+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. This means a RDP client can connect to a VNC server on the
+xrdp server machine in addition to the RDP server. Xrdp can also act as a
+bridging server, allowing RDP clients to connect to other RDP or VNC servers
+through the xrdp server.
+
+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 (the default log location has been changed to /var/log/sesman.log).
+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 default
+set of options under [xrdp1] corresponds to sesman-X11rdp. Similarly, you
+might want to change the options (eg. port number) for VNC (listed as
+"console" by default). The man page for xrdp.ini has more details on the
+file.
+
+/etc/xrdp/xrdp-xinitrc by default loads KDE during a X11rdp session. Change
+this as desired to load a different DE/WM. A similar script can be executed
+on a per-user basis by creating an executable script at ~/.xrdp-xinitrc. A
+utility program, xrdp-xwmconfig, is included to allow you to use your xinit
+scripts during X11rdp sessions. It works just like xwmconfig, so run it as
+root to set the global default, or run it as a normal user to set only the
+default for that user. See the sesman.ini man page for details about
+defining different names or locations for the X11rdp startup scripts.
diff --git a/system/xrdp/doinst.sh b/system/xrdp/doinst.sh
new file mode 100644
index 0000000000..19d3ab6ba6
--- /dev/null
+++ b/system/xrdp/doinst.sh
@@ -0,0 +1,26 @@
+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/xrdp-xinitrc.new
+config etc/xrdp/rsakeys.ini.new
+config etc/xrdp/sesman.ini.new
+config etc/xrdp/xrdp.ini.new
+
diff --git a/system/xrdp/patches/Makefile.NOPAM.diff b/system/xrdp/patches/Makefile.NOPAM.diff
new file mode 100644
index 0000000000..0d63f34eee
--- /dev/null
+++ b/system/xrdp/patches/Makefile.NOPAM.diff
@@ -0,0 +1,13 @@
+Patch generated 20080922 by Phillip Warner <pc_warner@yahoo.com>
+Permission granted to use this patch as you see fit.
+
+--- Makefile.orig 2008-09-22 11:57:24.000000000 -0500
++++ Makefile 2008-09-22 11:57:51.000000000 -0500
+@@ -46,7 +46,6 @@
+ 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/xrdp_control.sh $(DESTDIR)/xrdp_control.sh
+
+ installdeb:
diff --git a/system/xrdp/patches/Makefile.PAM.diff b/system/xrdp/patches/Makefile.PAM.diff
new file mode 100644
index 0000000000..adc2599739
--- /dev/null
+++ b/system/xrdp/patches/Makefile.PAM.diff
@@ -0,0 +1,22 @@
+Patch generated 20071215 by Phillip Warner <pc_warner@yahoo.com>
+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/system/xrdp/patches/sesman.ini.diff b/system/xrdp/patches/sesman.ini.diff
new file mode 100644
index 0000000000..4cbea3403f
--- /dev/null
+++ b/system/xrdp/patches/sesman.ini.diff
@@ -0,0 +1,30 @@
+Patch generated 20080925 by Phillip Warner <pc_warner@yahoo.com>
+Permission granted to use this patch as you see fit.
+
+--- sesman/sesman.ini.orig 2008-09-22 12:56:51.000000000 -0500
++++ sesman/sesman.ini 2008-09-25 11:39:03.000000000 -0500
+@@ -2,11 +2,11 @@
+ ListenAddress=127.0.0.1
+ ListenPort=3350
+ EnableUserWindowManager=1
+-UserWindowManager=startwm.sh
++UserWindowManager=.xrdp-xinitrc
+ DefaultWindowManager=startwm.sh
+
+ [Security]
+-AllowRootLogin=1
++AllowRootLogin=0
+ MaxLoginRetry=4
+ TerminalServerUsers=tsusers
+ TerminalServerAdmins=tsadmins
+@@ -18,8 +18,8 @@
+ DisconnectedTimeLimit=0
+
+ [Logging]
+-LogFile=./sesman.log
+-LogLevel=DEBUG
++LogFile=/var/log/sesman.log
++LogLevel=INFO
+ EnableSyslog=0
+ SyslogLevel=DEBUG
+
diff --git a/system/xrdp/slack-desc b/system/xrdp/slack-desc
new file mode 100644
index 0000000000..b2a8a396c8
--- /dev/null
+++ b/system/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: Homepage: http://xrdp.sourceforge.net/
+xrdp:
+xrdp:
diff --git a/system/xrdp/xrdp-xwmconfig b/system/xrdp/xrdp-xwmconfig
new file mode 100644
index 0000000000..b614ba6020
--- /dev/null
+++ b/system/xrdp/xrdp-xwmconfig
@@ -0,0 +1,215 @@
+#!/bin/sh
+# Copyright 1999, 2002 Patrick Volkerding, Moorhead, Minnesota USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Modified by Phillip Warner <pc_warner@yahoo.com>
+# for editing xrdp-xinitrc for use with xrdp
+
+# $DWM is the file under /usr/lib/xrdp that points to /etc/xrdp/xrdp-xinitrc.
+# /etc/xrdp/xrdp-xinitrc will be modified by this script if run by root.
+# $UWM is the file under $HOME that will be modified by this script.
+# The values for DefaultWindowManager and UserWindowManager, respectively,
+# in sesman.ini should match these.
+DWM=startwm.sh
+UWM=.xrdp-xinitrc
+
+# First, let's bail if our being here doesn't make sense:
+if [ ! -d /etc/X11/xinit ]; then
+ exit
+fi
+if [ "`cd /etc/X11/xinit ; echo *.*`" = '*.*' ]; then
+ exit
+fi
+if [ ! -d /etc/xrdp ]; then
+ exit
+fi
+if [ $(grep -w DefaultWindowManager /etc/xrdp/sesman.ini | cut -f2 -d"=") != $DWM ]
+then
+ echo "DefaultWindowManager in sesman.ini MUST be $DWM to use this tool. Aborting..."
+ exit
+fi
+if [ $(grep -w UserWindowManager /etc/xrdp/sesman.ini | cut -f2 -d"=") != $UWM ]
+then
+ echo "UserWindowManager in sesman.ini MUST be $UWM to use this tool. Aborting..."
+ exit
+fi
+
+if [ "$USER" = "root" ]; then
+ TMP=/var/log/setup/tmp
+else
+ TMP=$HOME/.xrdp-xwmconfig
+fi
+
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+ chmod 700 $TMP
+fi
+
+# Do we already have an existing default?
+unset PRESELECT
+if [ -L /etc/xrdp/xrdp-xinitrc ]; then
+ CURRENT="$(basename $(/bin/ls -l /etc/xrdp/xrdp-xinitrc | cut -f 2 -d '>'))"
+ PRESELECT=" --default-item $CURRENT "
+fi
+
+# Figure out who we are and set up some background information:
+if [ "$USER" = "root" ]; then
+ BACKTITLE="--backtitle \"Setting system-wide default xrdp window manager at /etc/xrdp/xrdp-xinitrc\""
+else
+ BACKTITLE="--backtitle \"Setting user default xrdp window manager in $HOME/$UWM\""
+fi
+
+# This stops --backtitle from cluttering the initial install:
+if [ ! -r /proc/kcore ]; then
+ BACKTITLE=""
+fi
+
+# Remove any previous script:
+rm -f $TMP/tmpscript.sh
+
+# Add the top of the script:
+cat << EOF > $TMP/tmpscript.sh
+dialog $BACKTITLE --title "SELECT DEFAULT WINDOW MANAGER FOR XRDP" $PRESELECT --menu \\
+"Please select the default window manager to use with XRDP. \\
+This will define the style of graphical user interface the \\
+client computer uses in remote X11rdp sessions." 0 0 0 \\
+EOF
+
+# Add KDE as the first and default entry:
+if [ -r /etc/X11/xinit/xinitrc.kde ]; then
+ echo "\"xinitrc.kde\" \"KDE: K Desktop Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Then, we add GNOME:
+if [ -r /etc/X11/xinit/xinitrc.gnome ]; then
+ echo "\"xinitrc.gnome\" \"GNU Network Object Model Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add XFce:
+if [ -r /etc/X11/xinit/xinitrc.xfce ]; then
+ echo "\"xinitrc.xfce\" \"The Cholesterol Free Desktop Environment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Enlightenment:
+if [ -r /etc/X11/xinit/xinitrc.e ]; then
+ echo "\"xinitrc.e\" \"Enlightenment\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Fluxbox:
+if [ -r /etc/X11/xinit/xinitrc.fluxbox ]; then
+ echo "\"xinitrc.fluxbox\" \"The fluxbox window manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add Blackbox:
+if [ -r /etc/X11/xinit/xinitrc.blackbox ]; then
+ echo "\"xinitrc.blackbox\" \"The blackbox window manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add WindowMaker:
+if [ -r /etc/X11/xinit/xinitrc.wmaker ]; then
+ echo "\"xinitrc.wmaker\" \"WindowMaker\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add FVWM2:
+if [ -r /etc/X11/xinit/xinitrc.fvwm2 ]; then
+ echo "\"xinitrc.fvwm2\" \"F(?) Virtual Window Manager (version 2.xx)\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add FVWM95:
+if [ -r /etc/X11/xinit/xinitrc.fvwm95 ]; then
+ echo "\"xinitrc.fvwm95\" \"FVWM2 with a Windows look and feel\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add icewm:
+if [ -r /etc/X11/xinit/xinitrc.icewm ]; then
+ echo "\"xinitrc.icewm\" \"ICE Window Manager\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add sawfish:
+if [ -r /etc/X11/xinit/xinitrc.sawfish ]; then
+ echo "\"xinitrc.sawfish\" \"Sawfish without GNOME\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add twm:
+if [ -r /etc/X11/xinit/xinitrc.twm ]; then
+ echo "\"xinitrc.twm\" \"Tab Window Manager (very basic)\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Add mwm:
+if [ -r /etc/X11/xinit/xinitrc.mwm ]; then
+ echo "\"xinitrc.mwm\" \"Motif WM\" \\" >> $TMP/tmpscript.sh
+fi
+
+# Now, add support for the other window managers:
+( cd /etc/X11/xinit
+ for file in xinitrc.* ; do
+ if [ ! "$file" = "xinitrc.kde" -a ! "$file" = "xinitrc.gnome" \
+ -a ! "$file" = "xinitrc.e" -a ! "$file" = "xinitrc.wmaker" \
+ -a ! "$file" = "xinitrc.fvwm2" -a ! "$file" = "xinitrc.fvwm95" \
+ -a ! "$file" = "xinitrc.icewm" -a ! "$file" = "xinitrc.twm" \
+ -a ! "$file" = "xinitrc.mwm" -a ! "$file" = "xinitrc.xfce" \
+ -a ! "$file" = "xinitrc.blackbox" -a ! "$file" = "xinitrc.fluxbox" \
+ -a ! "$file" = "xinitrc.sawfish" ]; then
+ echo "\"$file\" \"$file\" \\" >> $TMP/tmpscript.sh
+ fi
+ done
+)
+
+# Then, the tail end:
+cat << EOF >> $TMP/tmpscript.sh
+2> $TMP/output
+if [ ! \$? = 0 ]; then
+ rm -f $TMP/output
+ echo "Canceled."
+ exit
+fi
+EOF
+
+sh $TMP/tmpscript.sh
+
+if [ ! -r $TMP/output ]; then
+ rm -f $TMP/tmpscript.sh
+ exit
+fi
+
+OUTPUT=`cat $TMP/output`
+
+# If xrdp-xwmconfig is run by root, it changes the system-wide default for users
+# that do not have a $HOME/$UWM:
+if [ "$USER" = "root" ]; then
+ if [ -r /etc/X11/xinit/$OUTPUT ]; then
+ ( cd /etc/xrdp/ ; rm -f xrdp-xinitrc ; ln -sf /etc/X11/xinit/$OUTPUT xrdp-xinitrc )
+ fi
+fi
+
+# Also set up a new $HOME/$UWM:
+if [ -r /etc/X11/xinit/$OUTPUT -a ! "$HOME" = "/" ]; then
+ if [ -r $HOME/$UWM ]; then
+ rm -f $HOME/${UWM}-backup
+ mv $HOME/$UWM $HOME/${UWM}-backup
+ chmod -x $HOME/${UWM}-backup
+ fi
+ cat /etc/X11/xinit/$OUTPUT > $HOME/$UWM
+ # Unlike .xinitrc, $UWM *MUST* be executable
+ chmod u+x $HOME/$UWM
+fi
+
+rm -f $TMP/tmpscript.sh $TMP/output
+
diff --git a/system/xrdp/xrdp.SlackBuild b/system/xrdp/xrdp.SlackBuild
new file mode 100644
index 0000000000..b1b1d90b9e
--- /dev/null
+++ b/system/xrdp/xrdp.SlackBuild
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+# Slackware build script for xrdp
+# Written by Phillip Warner <pc_warner@yahoo.com>
+
+PRGNAM=xrdp
+VERSION=0.4.1
+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"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+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/patches/Makefile.PAM.diff
+ make
+else
+ patch < $CWD/patches/Makefile.NOPAM.diff
+ make nopam
+fi
+
+# Fix path in what will become the init script
+sed -i "s/XRDP_DIR=\/usr\/local\/xrdp\//XRDP_DIR=\/usr\/lib${LIBDIRSUFFIX}\/xrdp\//" instfiles/xrdp_control.sh
+
+# Set LogFile at /var/log/sesman.log
+# Change LogLevel to INFO instead of DEBUG
+# Disable Root logins by default
+# Set user-specific RDP session script to ~/.xrdp-xinitrc
+patch -d sesman/ < $CWD/patches/sesman.ini.diff
+
+make install \
+ PKGDIR=$PKG \
+ DESTDIR=$PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM \
+ CFGDIR=$PKG/etc/$PRGNAM \
+ PIDDIR=$PKG/var/run \
+ MANDIR=$PKG/usr/man \
+ DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION
+
+# Install routines for man pages 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
+
+# Make sure log directory is there
+mkdir -p $PKG/var/log
+
+# Fix permissions from install
+chmod a-x $PKG/etc/$PRGNAM/*
+if [ -e $PKG/etc/pam.d/ ]; then
+ chmod a-x $PKG/etc/pam.d/sesman
+fi
+chmod a-x $PKG/usr/lib${LIBDIRSUFFIX}/$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${LIBDIRSUFFIX}/$PRGNAM/xrdp_control.sh $PKG/etc/rc.d/rc.$PRGNAM.new
+
+# Move startwm.sh to a more sane location with a name that makes more sense
+mv $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM/startwm.sh $PKG/etc/$PRGNAM/xrdp-xinitrc.new
+
+# Unfortunately, sesman.ini seems to ignore absolute paths for
+# startwm.sh, so we need to leave a link where it expects to find
+# the file under the program directory.
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM
+ ln -s /etc/$PRGNAM/xrdp-xinitrc startwm.sh
+)
+
+# Let's not clobber existing configs
+( cd $PKG/etc/$PRGNAM
+ mv rsakeys.ini rsakeys.ini.new
+ mv sesman.ini sesman.ini.new
+ mv xrdp.ini xrdp.ini.new
+)
+
+# Install the xrdp-xwmconfig utility
+install -D -m 0755 $CWD/xrdp-xwmconfig \
+ $PKG/usr/bin/xrdp-xwmconfig
+
+( 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
+
+# Keep a backup copy of startwm.sh in the docs
+cat sesman/startwm.sh > $PKG/usr/doc/$PRGNAM-$VERSION/startwm.sh-example
+
+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.${PKGTYPE:-tgz}
diff --git a/system/xrdp/xrdp.info b/system/xrdp/xrdp.info
new file mode 100644
index 0000000000..fbceab6518
--- /dev/null
+++ b/system/xrdp/xrdp.info
@@ -0,0 +1,10 @@
+PRGNAM="xrdp"
+VERSION="0.4.1"
+HOMEPAGE="http://xrdp.sourceforge.net/"
+DOWNLOAD="http://downloads.sourceforge.net/xrdp/xrdp-0.4.1.tar.gz"
+MD5SUM="86a2afcb8d304d5003ecbbdbf46058c0"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Phillip Warner"
+EMAIL="pc_warner@yahoo.com"
+APPROVED="dsomero"