diff --git a/GIDs b/GIDs index cfa5e2820f75..db691bc4551d 100644 --- a/GIDs +++ b/GIDs @@ -242,6 +242,7 @@ dahdi:*:843:asterisk subsonic:*:844: sogod:*:846: domoticz:*:847: +guacamole:*:899: fossy:*:901:www scanlogd:*:902: _ocserv:*:903: diff --git a/UIDs b/UIDs index ef3a24eeb6b0..e841a6f7940b 100644 --- a/UIDs +++ b/UIDs @@ -253,6 +253,7 @@ munin:*:842:842::0:0:Munin:/var/munin:/usr/sbin/nologin subsonic:*:844:844::0:0:Subsonic standalone-server:/nonexistent:/usr/sbin/nologin sogod:*:846:846::0:0:SOGo groupware:/nonexistent:/usr/sbin/nologin domoticz:*:847:847::0:0:domoticz user:/nonexistent:/usr/sbin/nologin +guacamole:*:899:899::0:0:Guacamole user:/nonexistent:/usr/sbin/nologin fossy:*:901:901::0:0:FOSSology user:/usr/local/share/fossology:/usr/local/bin/bash scanlogd:*:902:902::0:0:scanlogd user:/nonexistent:/usr/sbin/nologin _ocserv:*:903:903::0:0:ocserv user:/nonexistent:/usr/sbin/nologin diff --git a/net/Makefile b/net/Makefile index a5812b9e574d..f03dd6c00807 100644 --- a/net/Makefile +++ b/net/Makefile @@ -189,6 +189,7 @@ SUBDIR += gtic SUBDIR += gtk-vnc SUBDIR += gtknetcat + SUBDIR += guacamole-server SUBDIR += gupnp SUBDIR += gupnp-av SUBDIR += gupnp-dlna diff --git a/net/guacamole-server/Makefile b/net/guacamole-server/Makefile new file mode 100644 index 000000000000..b268350625e9 --- /dev/null +++ b/net/guacamole-server/Makefile @@ -0,0 +1,76 @@ +# Created by: Ultima +# $FreeBSD$ + +PORTNAME= guacamole-server +PORTVERSION= 0.9.9 +CATEGORIES= net + +MAINTAINER= ultima1252@gmail.com +COMMENT= HTML5 Clientless Remote Desktop + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libuuid.so:${PORTSDIR}/misc/ossp-uuid \ + libpng.so:${PORTSDIR}/graphics/png \ + libcairo.so:${PORTSDIR}/graphics/cairo \ + libjpeg.so:${PORTSDIR}/graphics/jpeg-turbo + +CONFLICTS_BUILD= e2fsprogs-libuuid-* pulseaudio-*+jack_* \ + ffmpeg-*+jack_* + +USE_GITHUB= yes +GH_ACCOUNT= glyptodon +GH_TAGNAME= ${PORTVERSION} + +USES= autoreconf libtool localbase pkgconfig shebangfix +SHEBANG_FILES= ${WRKSRC}/src/protocols/rdp/keymaps/generate.pl + +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-guacd-conf=${PREFIX}/etc/guacd/guacd.conf +USE_LDCONFIG= yes +MAKE_JOBS_UNSAFE= yes +USERS= guacamole +GROUPS= guacamole + +USE_RC_SUBR= guacd +SUB_LIST+= GUACD_USER=${USERS} \ + GUACD_GROUP=${GROUPS} + +OPTIONS_DEFINE= RDP SSH VNC VORBIS PULSEAUDIO +OPTIONS_DEFAULT= SSH +OPTIONS_SUB= yes +PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio +PULSEAUDIO_DESC?= VNC audio support (Experimental) +RDP_LIB_DEPENDS= libfreerdp.so:${PORTSDIR}/net/freerdp +RDP_DESC?= RDP Protocal Support +SSH_LIB_DEPENDS= libpango-1.0.so:${PORTSDIR}/x11-toolkits/pango \ + libssh2.so:${PORTSDIR}/security/libssh2 +SSH_DESC?= SSH Support +VNC_LIB_DEPENDS= libvncserver.so:${PORTSDIR}/net/libvncserver +VNC_DESC?= VNC Protocol Support +VORBIS_LIB_DEPENDS= libvorbis.so:${PORTSDIR}/audio/libvorbis +VORBIS_DESC?= Ogg Vorbis for compression + +.include + +post-patch: + @${REINPLACE_CMD} 's|/etc/ssl|${PREFIX}/etc/ssl|g ; \ + s|/etc/guacamole|${PREFIX}/etc/guacd|g' \ + ${WRKSRC}/src/guacd/man/guacd.conf.5 +post-install: + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libguac.so.* +.if ${PORT_OPTIONS:MSSH} + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libguac-client-ssh.so.* +.endif +.if ${PORT_OPTIONS:MRDP} + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/freerdp/guacsnd-client.so + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/freerdp/guacdr-client.so + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/freerdp/guacsvc-client.so + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libguac-client-rdp.so.* +.endif +.if ${PORT_OPTIONS:MVNC} + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libguac-client-vnc.so.* +.endif + +.include diff --git a/net/guacamole-server/distinfo b/net/guacamole-server/distinfo new file mode 100644 index 000000000000..a3ffa8ba3f8b --- /dev/null +++ b/net/guacamole-server/distinfo @@ -0,0 +1,2 @@ +SHA256 (glyptodon-guacamole-server-0.9.9_GH0.tar.gz) = 53d26e2e7e028b0d9fbc502b94acd02e2d04e3a491c8be4a3e16290c2ec58321 +SIZE (glyptodon-guacamole-server-0.9.9_GH0.tar.gz) = 265031 diff --git a/net/guacamole-server/files/guacd.in b/net/guacamole-server/files/guacd.in new file mode 100644 index 000000000000..b107f7752bf6 --- /dev/null +++ b/net/guacamole-server/files/guacd.in @@ -0,0 +1,47 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: guacd +# REQUIRE: LOGIN +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# guacd_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable guacd. +# guacd_user (str): User to run guacd as +# Default to "%%GUACD_USER%%" created by the port +# guacd_group (str): Group to run guacd as +# Default to "%%GUACD_GROUP%%" created by the port +# guacd_pidfile (str): Set to "" by default will use the path + +. /etc/rc.subr + +name=guacd +rcvar=${name}_enable + +load_rc_config ${name} + +: ${guacd_enable:="NO"} +: ${guacd_user:="%%GUACD_USER%%"} +: ${guacd_group:="%%GUACD_GROUP%%"} +: ${guacd_pidfile:="/var/run/${name}/${name}.pid"} + +command=%%PREFIX%%/sbin/guacd +pidfile=${guacd_pidfile} + +command_args="-p ${pidfile}" + +start_precmd="guacd_prestart" +guacd_prestart() { + if [ -f ${pidfile} ]; then + rm -f ${pidfile} + echo "Removing stale pidfile." + elif [ ! -d ${pidfile%/*} ]; then + install -d -o ${guacd_user} -g ${guacd_group} ${pidfile%/*} + fi +} + + +run_rc_command "$1" diff --git a/net/guacamole-server/pkg-descr b/net/guacamole-server/pkg-descr new file mode 100644 index 000000000000..7707649e2e32 --- /dev/null +++ b/net/guacamole-server/pkg-descr @@ -0,0 +1,13 @@ +The guacamole-server package is a set of software which forms the +basis of the Guacamole stack. It consists of guacd, libguac, and +several protocol support libraries. + +guacd is the Guacamole proxy daemon used by the Guacamole web +application and framework. As JavaScript cannot handle binary +protocols (like VNC and remote desktop) efficiently, a new test-based +protocol was developed which would contain a common superset of the +operations needed for efficient remote desktop access, but would +be easy for JavaScript programs to process. guacd is the proxy which +translates between arbitrary protocols and the Guacamole protocol. + +WWW: https://github.com/glyptodon/guacamole-server diff --git a/net/guacamole-server/pkg-plist b/net/guacamole-server/pkg-plist new file mode 100644 index 000000000000..d253239757a6 --- /dev/null +++ b/net/guacamole-server/pkg-plist @@ -0,0 +1,55 @@ +include/guacamole/audio-fntypes.h +include/guacamole/audio-types.h +include/guacamole/audio.h +include/guacamole/client-constants.h +include/guacamole/client-fntypes.h +include/guacamole/client-types.h +include/guacamole/client.h +include/guacamole/error-types.h +include/guacamole/error.h +include/guacamole/hash.h +include/guacamole/instruction-constants.h +include/guacamole/instruction-types.h +include/guacamole/instruction.h +include/guacamole/layer-types.h +include/guacamole/layer.h +include/guacamole/object-types.h +include/guacamole/object.h +include/guacamole/plugin-constants.h +include/guacamole/plugin-types.h +include/guacamole/plugin.h +include/guacamole/pool-types.h +include/guacamole/pool.h +include/guacamole/protocol-types.h +include/guacamole/protocol.h +include/guacamole/socket-constants.h +include/guacamole/socket-fntypes.h +include/guacamole/socket-types.h +include/guacamole/socket.h +include/guacamole/stream-types.h +include/guacamole/stream.h +include/guacamole/timestamp-types.h +include/guacamole/timestamp.h +include/guacamole/unicode.h +%%RDP%%lib/freerdp/guacdr-client.so +%%RDP%%lib/freerdp/guacsnd-client.so +%%RDP%%lib/freerdp/guacsvc-client.so +%%RDP%%lib/libguac-client-rdp.a +%%RDP%%lib/libguac-client-rdp.so +%%RDP%%lib/libguac-client-rdp.so.0 +%%RDP%%lib/libguac-client-rdp.so.0.0.0 +%%SSH%%lib/libguac-client-ssh.a +%%SSH%%lib/libguac-client-ssh.so +%%SSH%%lib/libguac-client-ssh.so.0 +%%SSH%%lib/libguac-client-ssh.so.0.0.0 +%%VNC%%lib/libguac-client-vnc.a +%%VNC%%lib/libguac-client-vnc.so +%%VNC%%lib/libguac-client-vnc.so.0 +%%VNC%%lib/libguac-client-vnc.so.0.0.0 +lib/libguac.a +lib/libguac.so +lib/libguac.so.11 +lib/libguac.so.11.0.0 +man/man5/guacd.conf.5.gz +man/man8/guacd.8.gz +sbin/guacd