summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorAlejandro Pulver <alepulver@FreeBSD.org>2007-05-04 01:12:47 +0000
committerAlejandro Pulver <alepulver@FreeBSD.org>2007-05-04 01:12:47 +0000
commite79433c0f899846daf0282e77fe70f9709b5afd8 (patch)
treedf3af8fa253a95bb54509b6761352f6e7dccb6fa /net
parent712fa43306482b087637742ee3fbba6a703dcb15 (diff)
downloadfreebsd-ports-e79433c0f899846daf0282e77fe70f9709b5afd8.zip
Based on the work of rdesktop, xrdp uses the remote desktop protocol to
present a GUI to the user. The goal of this project is to provide a fully functional Linux terminal server, capable of accepting connections from rdesktop and Microsoft's own terminal server / remote desktop clients. Unlike Windows NT/2000/2003 server, xrdp will not display a Windows desktop but an X window desktop to the user. Xrdp uses Xvnc or X11rdp to manage the X session. WWW: http://xrdp.sourceforge.net/
Diffstat (limited to 'net')
-rw-r--r--net/Makefile1
-rw-r--r--net/xrdp/Makefile52
-rw-r--r--net/xrdp/distinfo3
-rw-r--r--net/xrdp/files/patch-Makefile29
-rw-r--r--net/xrdp/files/patch-docs__Makefile18
-rw-r--r--net/xrdp/files/patch-sesman__Makefile27
-rw-r--r--net/xrdp/files/patch-sesman__config.c20
-rw-r--r--net/xrdp/files/patch-xrdp__Makefile35
-rw-r--r--net/xrdp/files/pkg-message.in19
-rw-r--r--net/xrdp/files/xrdp.in53
-rw-r--r--net/xrdp/pkg-descr13
-rw-r--r--net/xrdp/pkg-plist25
12 files changed, 295 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index 2d95335a0845..18ac5f7c4c04 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -945,6 +945,7 @@
SUBDIR += xprobe
SUBDIR += xpvm
SUBDIR += xrdesktop
+ SUBDIR += xrdp
SUBDIR += xsmbrowser
SUBDIR += xtraceroute
SUBDIR += xwhois
diff --git a/net/xrdp/Makefile b/net/xrdp/Makefile
new file mode 100644
index 000000000000..159daf9b387a
--- /dev/null
+++ b/net/xrdp/Makefile
@@ -0,0 +1,52 @@
+# New ports collection makefile for: xrdp
+# Date created: 2007-02-19
+# Whom: alepulver
+#
+# $FreeBSD$
+#
+
+PORTNAME= xrdp
+PORTVERSION= 0.3.2
+CATEGORIES= net
+MASTER_SITES= SF
+
+MAINTAINER= alepulver@FreeBSD.org
+COMMENT= An open source Remote Desktop Protocol (RDP) server
+
+USE_RC_SUBR= xrdp
+
+.if defined(WITH_DEBUG)
+CFLAGS+= -DXRDP_DEBUG
+.endif
+
+MAN5= xrdp_sesman.ini.5 xrdp.ini.5
+MAN8= xrdp_sesman.8 xrdp_sesrun.8 xrdp.8
+
+SUB_FILES= pkg-message
+
+post-patch:
+ @${FIND} ${WRKSRC} -type f -name Makefile | \
+ ${XARGS} ${REINPLACE_CMD} -e \
+ 's|/usr/local/xrdp|${PREFIX}/lib/${PORTNAME}|; \
+ s|/etc/xrdp|${PREFIX}/etc/${PORTNAME}|; \
+ s|/usr/local/man|${MANPREFIX}/man|; \
+ s|/usr/doc/xrdp|${DOCSDIR}|; \
+ s|CFLAGS =|CFLAGS +=|; s|gcc|${CC}|; s|-ldl||'
+ @${REINPLACE_CMD} -e \
+ 's|startwm\.sh|${PREFIX}/lib/${PORTNAME}/&|; \
+ s|\./sesman\.log|/var/log/xrdp_sesman.log|' \
+ ${WRKSRC}/sesman/sesman.ini
+ @${REINPLACE_CMD} -e 's|Tahoma-10\.fv1|${PREFIX}/lib/${PORTNAME}/&|' \
+ ${WRKSRC}/xrdp/xrdp_font.c
+ @${REINPLACE_CMD} -Ee \
+ 's,(xrdp|ad)256\.bmp,${PREFIX}/lib/${PORTNAME}/&,' \
+ ${WRKSRC}/xrdp/xrdp_login_wnd.c
+ @${REINPLACE_CMD} -e 's|cursor[01]\.cur|${PREFIX}/lib/${PORTNAME}/&|' \
+ ${WRKSRC}/xrdp/xrdp_wm.c
+ @${REINPLACE_CMD} -Ee 's|/(etc/pam\.d/)(sesman)|${PREFIX}/\1xrdp_\2|' \
+ ${WRKSRC}/sesman/verify_user_pam.c
+
+post-install:
+ @${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
+
+.include <bsd.port.mk>
diff --git a/net/xrdp/distinfo b/net/xrdp/distinfo
new file mode 100644
index 000000000000..dd5f3b3f8d17
--- /dev/null
+++ b/net/xrdp/distinfo
@@ -0,0 +1,3 @@
+MD5 (xrdp-0.3.2.tar.gz) = 6953cecc5ebb5d272403a41e8f5d82b1
+SHA256 (xrdp-0.3.2.tar.gz) = c15f4f84ceb209e7673d48b4718d754b7be8e4c65c6f6e4a31ffec29efa64e1a
+SIZE (xrdp-0.3.2.tar.gz) = 164273
diff --git a/net/xrdp/files/patch-Makefile b/net/xrdp/files/patch-Makefile
new file mode 100644
index 000000000000..8af01d1911a2
--- /dev/null
+++ b/net/xrdp/files/patch-Makefile
@@ -0,0 +1,29 @@
+--- ./Makefile.orig Fri Mar 3 22:02:01 2006
++++ ./Makefile Sun Apr 29 12:42:28 2007
+@@ -3,7 +3,6 @@
+ CFGDIR = /etc/xrdp
+ PIDDIR = /var/run
+ MANDIR = /usr/local/man
+-DOCDIR = /usr/doc/xrdp
+
+ all: world
+
+@@ -38,7 +37,6 @@
+ mkdir -p $(CFGDIR)
+ mkdir -p $(PIDDIR)
+ mkdir -p $(MANDIR)
+- mkdir -p $(DOCDIR)
+ make -C vnc install
+ make -C libxrdp install
+ make -C xrdp install
+@@ -46,9 +44,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/xrdpstart.sh $(DESTDIR)/xrdpstart.sh
+- install instfiles/xrdp_control.sh $(DESTDIR)/xrdp_control.sh
++ if [ -d $(PREFIX)/etc/pam.d ]; then $(BSD_INSTALL_DATA) instfiles/pam.d/sesman $(PREFIX)/etc/pam.d/xrdp_sesman; fi
+
+ installdeb:
+ mkdir -p $(DESTDIRDEB)/usr/xrdp
diff --git a/net/xrdp/files/patch-docs__Makefile b/net/xrdp/files/patch-docs__Makefile
new file mode 100644
index 000000000000..b2fff2d45be2
--- /dev/null
+++ b/net/xrdp/files/patch-docs__Makefile
@@ -0,0 +1,18 @@
+--- ./docs/Makefile.orig Fri Mar 3 22:02:02 2006
++++ ./docs/Makefile Sun Apr 29 12:42:28 2007
+@@ -10,10 +10,8 @@
+ world:
+
+ install:
+-
+-installdeb:
+- install man/sesman.8 $(DESTDIRDEB)/usr/man/man8/sesman.8
+- install man/sesrun.8 $(DESTDIRDEB)/usr/man/man8/sesrun.8
+- install man/xrdp.8 $(DESTDIRDEB)/usr/man/man8/xrdp.8
+- install man/sesman.ini.5 $(DESTDIRDEB)/usr/man/man5/sesman.ini.5
+- install man/xrdp.ini.5 $(DESTDIRDEB)/usr/man/man5/xrdp.ini.5
++ $(BSD_INSTALL_MAN) man/sesman.8 $(MANPREFIX)/man/man8/xrdp_sesman.8
++ $(BSD_INSTALL_MAN) man/sesrun.8 $(MANPREFIX)/man/man8/xrdp_sesrun.8
++ $(BSD_INSTALL_MAN) man/xrdp.8 $(MANPREFIX)/man/man8/xrdp.8
++ $(BSD_INSTALL_MAN) man/sesman.ini.5 $(MANPREFIX)/man/man5/xrdp_sesman.ini.5
++ $(BSD_INSTALL_MAN) man/xrdp.ini.5 $(MANPREFIX)/man/man5/xrdp.ini.5
diff --git a/net/xrdp/files/patch-sesman__Makefile b/net/xrdp/files/patch-sesman__Makefile
new file mode 100644
index 000000000000..d34e34d736f5
--- /dev/null
+++ b/net/xrdp/files/patch-sesman__Makefile
@@ -0,0 +1,27 @@
+--- ./sesman/Makefile.orig Fri May 26 10:10:14 2006
++++ ./sesman/Makefile Sun Apr 29 12:42:48 2007
+@@ -13,7 +13,7 @@
+ DOCDIR = /usr/doc/xrdp
+
+ DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \
+- -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\"
++ -DSESMAN_PID_FILE=\"$(PIDDIR)/xrdp_sesman.pid\"
+
+ CFLAGS = -Wall -O2 -I../common $(DEFINES)
+ LDFLAGS = -L /usr/gnu/lib $(DEFINES)
+@@ -46,10 +46,11 @@
+ rm -f $(SESMANOBJ) verify_user.o verify_user_pam.o verify_user_pam_userpass.o sesman sesrun.o sesrun
+
+ install:
+- install sesman $(DESTDIR)/sesman
+- install sesrun $(DESTDIR)/sesrun
+- install startwm.sh $(DESTDIR)/startwm.sh
+- install sesman.ini $(CFGDIR)/sesman.ini
++ $(BSD_INSTALL_PROGRAM) sesman $(PREFIX)/bin/xrdp_sesman
++ $(BSD_INSTALL_PROGRAM) sesrun $(PREFIX)/bin/xrdp_sesrun
++ $(BSD_INSTALL_SCRIPT) startwm.sh $(DESTDIR)/startwm.sh
++ $(BSD_INSTALL_DATA) sesman.ini $(CFGDIR)/sesman.ini.sample
++ @test -f $(CFGDIR)/sesman.ini || cp $(CFGDIR)/sesman.ini.sample $(CFGDIR)/sesman.ini
+
+ installdeb:
+ install sesman $(DESTDIRDEB)/usr/xrdp/sesman
diff --git a/net/xrdp/files/patch-sesman__config.c b/net/xrdp/files/patch-sesman__config.c
new file mode 100644
index 000000000000..b666830df52e
--- /dev/null
+++ b/net/xrdp/files/patch-sesman__config.c
@@ -0,0 +1,20 @@
+--- ./sesman/config.c.orig Thu May 25 17:34:32 2006
++++ ./sesman/config.c Sun Apr 29 12:42:28 2007
+@@ -30,6 +30,8 @@
+ #include "file.h"
+ #include "sesman.h"
+
++#include <fcntl.h>
++
+ /******************************************************************************/
+ /**
+ *
+@@ -59,7 +61,7 @@
+ struct list* param_n;
+ struct list* param_v;
+
+- fd = g_file_open(SESMAN_CFG_FILE);
++ fd = open(SESMAN_CFG_FILE, O_RDONLY);
+ if (-1 == fd)
+ {
+ g_printf("sesman: error reading config: %s\r\n", SESMAN_CFG_FILE);
diff --git a/net/xrdp/files/patch-xrdp__Makefile b/net/xrdp/files/patch-xrdp__Makefile
new file mode 100644
index 000000000000..ea34c733bbf9
--- /dev/null
+++ b/net/xrdp/files/patch-xrdp__Makefile
@@ -0,0 +1,35 @@
+--- ./xrdp/Makefile.orig Fri Mar 3 22:02:08 2006
++++ ./xrdp/Makefile Sun Apr 29 12:42:28 2007
+@@ -24,21 +24,23 @@
+ all: xrdp
+
+ xrdp: $(XRDPOBJ)
+- $(CC) $(LDFLAGS) -o xrdp $(XRDPOBJ) $(LIBS)
++ $(CC) $(LDFLAGS) -o xrdp $(XRDPOBJ) $(LIBS) -Wl,-rpath=$(DESTDIR)
+ strip xrdp
+
+ clean:
+ rm -f $(XRDPOBJ) xrdp
+
+ install:
+- install ad256.bmp $(DESTDIR)/ad256.bmp
+- install xrdp256.bmp $(DESTDIR)/xrdp256.bmp
+- install cursor0.cur $(DESTDIR)/cursor0.cur
+- install cursor1.cur $(DESTDIR)/cursor1.cur
+- install Tahoma-10.fv1 $(DESTDIR)/Tahoma-10.fv1
+- install xrdp.ini $(CFGDIR)/xrdp.ini
+- install rsakeys.ini $(CFGDIR)/rsakeys.ini
+- install xrdp $(DESTDIR)/xrdp
++ $(BSD_INSTALL_DATA) ad256.bmp $(DESTDIR)/ad256.bmp
++ $(BSD_INSTALL_DATA) xrdp256.bmp $(DESTDIR)/xrdp256.bmp
++ $(BSD_INSTALL_DATA) cursor0.cur $(DESTDIR)/cursor0.cur
++ $(BSD_INSTALL_DATA) cursor1.cur $(DESTDIR)/cursor1.cur
++ $(BSD_INSTALL_DATA) Tahoma-10.fv1 $(DESTDIR)/Tahoma-10.fv1
++ $(BSD_INSTALL_PROGRAM) xrdp $(PREFIX)/bin/xrdp
++ $(BSD_INSTALL_DATA) xrdp.ini $(CFGDIR)/xrdp.ini.sample
++ @test -f $(CFGDIR)/xrdp.ini || cp $(CFGDIR)/xrdp.ini.sample $(CFGDIR)/xrdp.ini
++ $(BSD_INSTALL_DATA) rsakeys.ini $(CFGDIR)/rsakeys.ini.sample
++ @test -f $(CFGDIR)/rsakeys.ini || cp $(CFGDIR)/rsakeys.ini.sample $(CFGDIR)/rsakeys.ini
+
+ installdeb:
+ install ad256.bmp $(DESTDIRDEB)/usr/xrdp/ad256.bmp
diff --git a/net/xrdp/files/pkg-message.in b/net/xrdp/files/pkg-message.in
new file mode 100644
index 000000000000..90fad77a8f64
--- /dev/null
+++ b/net/xrdp/files/pkg-message.in
@@ -0,0 +1,19 @@
+==============================================================================
+
+XRDP has been installed.
+
+The binaries "sesman" and "sesrun" have been prefixed with "xrdp_" to avoid a
+possible name conflict, as their manual pages, log and pid files.
+
+There is an rc.d script, so the service can be enabled by adding this line
+in /etc/rc.conf:
+
+xrdp_enable="YES"
+
+Do not forget to edit the configuration files in "%%PREFIX%%/etc/xrdp"
+and the "%%PREFIX%%/lib/startwm.sh" script.
+
+Also, you must manually run a VNC server to be able to use this program. Try
+the "vnc-any" example in "xrdp.ini".
+
+==============================================================================
diff --git a/net/xrdp/files/xrdp.in b/net/xrdp/files/xrdp.in
new file mode 100644
index 000000000000..3f719ef23f23
--- /dev/null
+++ b/net/xrdp/files/xrdp.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# REQUIRE: DAEMON
+# PROVIDE: xrdp xrdp_sesman
+#
+
+. %%RC_SUBR%%
+
+name="xrdp"
+rcvar=`set_rcvar`
+xrdp_daemons="xrdp xrdp_sesman"
+
+# Read settings and set default values.
+load_rc_config "$name"
+: ${xrdp_enable="NO"}
+
+# Enable/disable dependent daemon.
+if [ -n "${rcvar}" ] && checkyesno "${rcvar}"; then
+ : ${xrdp_sesman_enable="YES"}
+else
+ : ${xrdp_sesman_enable="NO"}
+fi
+
+# Commands.
+extra_commands="reload status"
+start_cmd="xrdp_cmd"
+stop_cmd="xrdp_cmd"
+status_cmd="xrdp_cmd"
+reload_cmd="xrdp_cmd"
+rcvar_cmd="xrdp_cmd"
+
+# Command wrapper to call each of them per daemon.
+xrdp_cmd() {
+ local name rcvar command pidfile xrdp_daemons
+ # Prevent recursive calling.
+ unset "${rc_arg}_cmd"
+ # Stop processes in the reverse to order.
+ if [ "${rc_arg}" = "stop" ] ; then
+ xrdp_daemons=$(reverse_list ${xrdp_daemons})
+ fi
+ # Apply to all the daemons.
+ for name in ${xrdp_daemons}; do
+ rcvar=$(set_rcvar)
+ command="%%PREFIX%%/bin/${name}"
+ pidfile="/var/run/${name}.pid"
+
+ run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args}
+ done
+}
+
+run_rc_command "$1"
diff --git a/net/xrdp/pkg-descr b/net/xrdp/pkg-descr
new file mode 100644
index 000000000000..9561b67ea0ad
--- /dev/null
+++ b/net/xrdp/pkg-descr
@@ -0,0 +1,13 @@
+Based on the work of rdesktop, xrdp uses the remote desktop protocol to
+present a GUI to the user.
+
+The goal of this project is to provide a fully functional Linux terminal
+server, capable of accepting connections from rdesktop and Microsoft's own
+terminal server / remote desktop clients.
+
+Unlike Windows NT/2000/2003 server, xrdp will not display a Windows desktop
+but an X window desktop to the user.
+
+Xrdp uses Xvnc or X11rdp to manage the X session.
+
+WWW: http://xrdp.sourceforge.net/
diff --git a/net/xrdp/pkg-plist b/net/xrdp/pkg-plist
new file mode 100644
index 000000000000..319cbef3abac
--- /dev/null
+++ b/net/xrdp/pkg-plist
@@ -0,0 +1,25 @@
+bin/xrdp
+bin/xrdp_sesman
+bin/xrdp_sesrun
+etc/pam.d/xrdp_sesman
+@unexec if cmp -s %D/etc/xrdp/rsakeys.ini %D/etc/xrdp/rsakeys.ini.sample; then rm -f %D/etc/xrdp/rsakeys.ini; fi
+etc/xrdp/rsakeys.ini.sample
+@exec [ -f %D/etc/xrdp/rsakeys.ini ] || cp %D/etc/xrdp/rsakeys.ini.sample %D/etc/xrdp/rsakeys.ini
+@unexec if cmp -s %D/etc/xrdp/sesman.ini %D/etc/xrdp/sesman.ini.sample; then rm -f %D/etc/xrdp/sesman.ini; fi
+etc/xrdp/sesman.ini.sample
+@exec [ -f %D/etc/xrdp/sesman.ini ] || cp %D/etc/xrdp/sesman.ini.sample %D/etc/xrdp/sesman.ini
+@unexec if cmp -s %D/etc/xrdp/xrdp.ini %D/etc/xrdp/xrdp.ini.sample; then rm -f %D/etc/xrdp/xrdp.ini; fi
+etc/xrdp/xrdp.ini.sample
+@exec [ -f %D/etc/xrdp/xrdp.ini ] || cp %D/etc/xrdp/xrdp.ini.sample %D/etc/xrdp/xrdp.ini
+lib/xrdp/Tahoma-10.fv1
+lib/xrdp/ad256.bmp
+lib/xrdp/cursor0.cur
+lib/xrdp/cursor1.cur
+lib/xrdp/librdp.so
+lib/xrdp/libvnc.so
+lib/xrdp/libxrdp.so
+lib/xrdp/libxup.so
+lib/xrdp/startwm.sh
+lib/xrdp/xrdp256.bmp
+@dirrm lib/xrdp
+@dirrmtry etc/xrdp