From 5cf880887f2f051a945fb1d150f379ffc13310eb Mon Sep 17 00:00:00 2001 From: Phillip Warner Date: Sun, 27 Oct 2013 21:16:36 -0500 Subject: system/xrdp: Updated for version 0.6.0. Signed-off-by: Robby Workman --- system/xrdp/README | 33 ++++++++----- system/xrdp/doinst.sh | 7 ++- system/xrdp/patches/Makefile.NOPAM.diff | 13 ------ system/xrdp/patches/Makefile.PAM.diff | 22 --------- system/xrdp/patches/sesman.ini.diff | 30 ------------ system/xrdp/sesman.ini.patch | 27 +++++++++++ system/xrdp/xrdp-xwmconfig | 26 ++++++----- system/xrdp/xrdp.SlackBuild | 83 +++++++++++++++++---------------- system/xrdp/xrdp.info | 6 +-- 9 files changed, 113 insertions(+), 134 deletions(-) delete mode 100644 system/xrdp/patches/Makefile.NOPAM.diff delete mode 100644 system/xrdp/patches/Makefile.PAM.diff delete mode 100644 system/xrdp/patches/sesman.ini.diff create mode 100644 system/xrdp/sesman.ini.patch (limited to 'system/xrdp') diff --git a/system/xrdp/README b/system/xrdp/README index 9786112f89..e34d803851 100644 --- a/system/xrdp/README +++ b/system/xrdp/README @@ -6,7 +6,7 @@ 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). +Xvnc is included with tightvnc (in Slackware /extra). X11rdp can be compiled and installed by following the directions in the thread at http://tinyurl.com/2ufoz2 (link to LinuxQuestions.org). @@ -17,9 +17,14 @@ 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). +can be modified: + +** sesman.ini ** +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. +*NOTE:* The default log location is now /var/log/xrdp-sesman.log. + +** xrdp.ini ** 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 @@ -28,11 +33,15 @@ 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. +** xrdp-xinitrc ** +xrdp-xinitrc by default tries to load one of several DE/WMs in order to +start a X11rdp session. Change this as desired to load a specific 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. + +FreeRDP is an optional dependency. diff --git a/system/xrdp/doinst.sh b/system/xrdp/doinst.sh index 19d3ab6ba6..fc2aca6ccd 100644 --- a/system/xrdp/doinst.sh +++ b/system/xrdp/doinst.sh @@ -23,4 +23,9 @@ config etc/xrdp/xrdp-xinitrc.new config etc/xrdp/rsakeys.ini.new config etc/xrdp/sesman.ini.new config etc/xrdp/xrdp.ini.new - +config etc/xrdp/km-0407.ini.new +config etc/xrdp/km-0409.ini.new +config etc/xrdp/km-040c.ini.new +config etc/xrdp/km-0410.ini.new +config etc/xrdp/km-0419.ini.new +config etc/xrdp/km-041d.ini.new diff --git a/system/xrdp/patches/Makefile.NOPAM.diff b/system/xrdp/patches/Makefile.NOPAM.diff deleted file mode 100644 index 0d63f34eee..0000000000 --- a/system/xrdp/patches/Makefile.NOPAM.diff +++ /dev/null @@ -1,13 +0,0 @@ -Patch generated 20080922 by Phillip Warner -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 deleted file mode 100644 index adc2599739..0000000000 --- a/system/xrdp/patches/Makefile.PAM.diff +++ /dev/null @@ -1,22 +0,0 @@ -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/system/xrdp/patches/sesman.ini.diff b/system/xrdp/patches/sesman.ini.diff deleted file mode 100644 index 4cbea3403f..0000000000 --- a/system/xrdp/patches/sesman.ini.diff +++ /dev/null @@ -1,30 +0,0 @@ -Patch generated 20080925 by Phillip Warner -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/sesman.ini.patch b/system/xrdp/sesman.ini.patch new file mode 100644 index 0000000000..b077cf53bf --- /dev/null +++ b/system/xrdp/sesman.ini.patch @@ -0,0 +1,27 @@ +diff -Naur xrdp-v0.6.0-orig/sesman/sesman.ini xrdp-v0.6.0/sesman/sesman.ini +--- xrdp-v0.6.0-orig/sesman/sesman.ini 2012-02-21 14:00:55.000000000 -0500 ++++ xrdp-v0.6.0/sesman/sesman.ini 2013-09-07 18:48:37.377849867 -0400 +@@ -2,11 +2,11 @@ + ListenAddress=127.0.0.1 + ListenPort=3350 + EnableUserWindowManager=1 +-UserWindowManager=startwm.sh +-DefaultWindowManager=startwm.sh ++UserWindowManager=.xrdp-xinitrc ++DefaultWindowManager=xrdp-xinitrc + + [Security] +-AllowRootLogin=1 ++AllowRootLogin=0 + MaxLoginRetry=4 + TerminalServerUsers=tsusers + TerminalServerAdmins=tsadmins +@@ -20,7 +20,7 @@ + + [Logging] + LogFile=/var/log/xrdp-sesman.log +-LogLevel=DEBUG ++LogLevel=INFO + EnableSyslog=0 + SyslogLevel=DEBUG + diff --git a/system/xrdp/xrdp-xwmconfig b/system/xrdp/xrdp-xwmconfig index b614ba6020..e94a908e72 100644 --- a/system/xrdp/xrdp-xwmconfig +++ b/system/xrdp/xrdp-xwmconfig @@ -20,14 +20,16 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Modified by Phillip Warner -# 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. +# for editing xrdp's xinit files (xrdp-xinitrc) +# +# $DWM under /etc/xrdp will be modified by this script if run by root. +# Otherwise, $UWM in the user's folder will be modified. +# +# $DWM represents the default xrdp-xinit file for xrdp under /etc/xrdp. +# $UWM is the xrdp-xinit 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 +DWM=xrdp-xinitrc UWM=.xrdp-xinitrc # First, let's bail if our being here doesn't make sense: @@ -42,12 +44,12 @@ if [ ! -d /etc/xrdp ]; then 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..." + echo "DefaultWindowManager in sesman.ini MUST be set to $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..." + echo "UserWindowManager in sesman.ini MUST be set to $UWM to use this tool. Aborting..." exit fi @@ -64,14 +66,14 @@ 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 '>'))" +if [ -L /etc/xrdp/$DWM ]; then + CURRENT="$(basename $(/bin/ls -l /etc/xrdp/$DWM | 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\"" + BACKTITLE="--backtitle \"Setting system-wide default xrdp window manager at /etc/xrdp/$DWM\"" else BACKTITLE="--backtitle \"Setting user default xrdp window manager in $HOME/$UWM\"" fi @@ -195,7 +197,7 @@ OUTPUT=`cat $TMP/output` # 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 ) + ( cd /etc/xrdp/ ; rm -f $DWM ; ln -sf /etc/X11/xinit/$OUTPUT $DWM ) fi fi diff --git a/system/xrdp/xrdp.SlackBuild b/system/xrdp/xrdp.SlackBuild index 85f6d7d630..c00d039c51 100644 --- a/system/xrdp/xrdp.SlackBuild +++ b/system/xrdp/xrdp.SlackBuild @@ -4,7 +4,7 @@ # Written by Phillip Warner PRGNAM=xrdp -VERSION=0.4.2 +VERSION=0.6.0 BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -44,71 +44,72 @@ 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 +rm -rf $PRGNAM-v$VERSION +tar xvf $CWD/$PRGNAM-v$VERSION.tar.gz +cd $PRGNAM-v$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 +# uses autoreconf now +autoreconf -vfi + +if [ "$USE_PAM" = "NO" ]; then + NOPAM_OPT="--enable-nopam" else - patch < $CWD/patches/Makefile.NOPAM.diff - make nopam + NOPAM_OPT="" fi +# Optional config options if built with FreeRDP: +# --enable-freerdp Build freerdp module (default: no) +# --enable-freerdp1 Build freerdp1 module (default: no) +CFLAGS="$SLKCFLAGS" \ +CPPFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --build=$ARCH-slackware-linux \ + $NOPAM_OPT + # 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 +sed -i "s/SBINDIR=\/usr\/local\/sbin/SBINDIR=\/usr\/sbin/" instfiles/xrdp.sh + +# Change xinit script name to xrdp-xinitrc +sed -i "s/startwm.sh/xrdp-xinitrc/" instfiles/xrdp.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 +# Set default RDP session xinit script to /etc/xrdp/xrdp-xinitrc +# Note: LogFile now at /var/log/xrdp-sesman.log +patch -d sesman/ -p2 < $CWD/sesman.ini.patch -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 +# Build fails if a copy of config.{c,h} is not in sesman/tools/ +cp -v sesman/config.{c,h} sesman/tools/ -# 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 +make install DESTDIR=$PKG # 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 +mv $PKG/etc/$PRGNAM/xrdp.sh $PKG/etc/rc.d/rc.$PRGNAM.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 -) +# Change startwm.sh name for more consistency with previous SlackBuild +# and corresponding user file name +mv $PKG/etc/$PRGNAM/startwm.sh $PKG/etc/$PRGNAM/xrdp-xinitrc.new # 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 + rename ini ini.new km-????.ini ) # Install the xrdp-xwmconfig utility @@ -121,7 +122,7 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ find $PKG/usr/man -type f -exec gzip -9 {} \; mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a COPYING design.txt install.txt readme.txt $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING design.txt install.txt readme.txt faq-*.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 diff --git a/system/xrdp/xrdp.info b/system/xrdp/xrdp.info index 403b976b01..a32b9c839a 100644 --- a/system/xrdp/xrdp.info +++ b/system/xrdp/xrdp.info @@ -1,8 +1,8 @@ PRGNAM="xrdp" -VERSION="0.4.2" +VERSION="0.6.0" HOMEPAGE="http://xrdp.sourceforge.net/" -DOWNLOAD="http://downloads.sourceforge.net/xrdp/xrdp-0.4.2.tar.gz" -MD5SUM="e2eecc2a383e77e6cb087e837c4d4c10" +DOWNLOAD="http://downloads.sourceforge.net/project/xrdp/xrdp/0.6.0/xrdp-v0.6.0.tar.gz" +MD5SUM="b2577256b5a34bd72849cd40375c92de" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -- cgit v1.2.3