[Midnightbsd-cvs] mports: mports/net: add vncrefletor, a vnc proxy.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Feb 1 20:54:47 EST 2008


Log Message:
-----------
add vncrefletor, a vnc proxy.

Modified Files:
--------------
    mports/net:
        Makefile (r1.49 -> r1.50)

Added Files:
-----------
    mports/net/vncreflector:
        Makefile (r1.1)
        distinfo (r1.1)
        pkg-descr (r1.1)
        pkg-plist (r1.1)
    mports/net/vncreflector/files:
        patch-Makefile (r1.1)
        patch-logging.c (r1.1)
        patch-main.c (r1.1)
        patch-region.c (r1.1)
        vncreflector.sh.in (r1.1)

-------------- next part --------------
--- /dev/null
+++ net/vncreflector/pkg-descr
@@ -0,0 +1,5 @@
+VNC Reflector is a specialized VNC server which acts as a proxy sitting
+between real VNC server (a host) and a number of VNC clients. It was
+designed to work efficiently with large number of clients.
+
+WWW: http://sourceforge.net/projects/vnc-reflector/
--- /dev/null
+++ net/vncreflector/pkg-plist
@@ -0,0 +1,4 @@
+bin/vncreflector
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
+ at unexec rmdir %D/etc/vncreflector 2>/dev/null || ( echo "Configuration information saved.  If you will *NOT* use this package anymore," && echo "please remove %D/etc/vncreflector and its contents manually.")
--- /dev/null
+++ net/vncreflector/Makefile
@@ -0,0 +1,38 @@
+# Ports collection makefile for:	vncreflector
+# Date created:				Wed, Jan 19 2005
+# Whom:					Brooks Davis <brooks at freebsd.org>
+#
+# $MidnightBSD: mports/net/vncreflector/Makefile,v 1.1 2008/02/02 01:54:45 laffer1 Exp $
+# $FreeBSD: ports/net/vncreflector/Makefile,v 1.4 2007/04/24 05:56:39 sobomax Exp $
+#
+
+PORTNAME=	vncreflector
+PORTVERSION=	1.2.4
+CATEGORIES=	net
+MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR=vnc-reflector
+DISTNAME=	vnc_reflector-${PORTVERSION}
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	Multi-client VNC proxy server
+
+LIB_DEPENDS+=	jpeg.9:${PORTSDIR}/graphics/jpeg
+
+USE_RC_SUBR=	vncreflector.sh
+
+ALL_TARGET=	default
+WRKSRC=		${WRKDIR}/vnc_reflector
+
+post-patch:
+	${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/Makefile
+
+do-install:
+	@${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+	@${MKDIR} -m0750 ${PREFIX}/etc/${PORTNAME}
+	@${CHOWN} root:wheel ${PREFIX}/etc/${PORTNAME}
+.if !defined(NOPORTDOCS)
+	@${MKDIR} ${DOCSDIR}
+	@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
+.endif
+
+.include <bsd.port.mk>
--- /dev/null
+++ net/vncreflector/distinfo
@@ -0,0 +1,3 @@
+MD5 (vnc_reflector-1.2.4.tar.gz) = c3f88bc62f228b335c25c07f9744ab0c
+SHA256 (vnc_reflector-1.2.4.tar.gz) = 9387082434a2176a01a20f64d0d35acd34dc1901e80db428689cc60ddbf49c53
+SIZE (vnc_reflector-1.2.4.tar.gz) = 85600
Index: Makefile
===================================================================
RCS file: /home/cvs/mports/net/Makefile,v
retrieving revision 1.49
retrieving revision 1.50
diff -L net/Makefile -L net/Makefile -u -r1.49 -r1.50
--- net/Makefile
+++ net/Makefile
@@ -55,6 +55,7 @@
     SUBDIR += samba3
     SUBDIR += sdl_net
     SUBDIR += tsocks
+    SUBDIR += vncreflector
     SUBDIR += x11vnc
     SUBDIR += yaz
     SUBDIR += zillion
--- /dev/null
+++ net/vncreflector/files/patch-region.c
@@ -0,0 +1,13 @@
+
+$FreeBSD: ports/net/vncreflector/files/patch-region.c,v 1.1 2005/01/20 10:35:48 brooks Exp $
+
+--- region.c.orig
++++ region.c
+@@ -70,6 +70,7 @@
+ *                                                               *
+ *****************************************************************/
+ 
++#include <sys/types.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
--- /dev/null
+++ net/vncreflector/files/patch-main.c
@@ -0,0 +1,14 @@
+
+$FreeBSD: ports/net/vncreflector/files/patch-main.c,v 1.1 2005/01/20 10:35:48 brooks Exp $
+
+--- main.c.orig
++++ main.c
+@@ -464,7 +464,7 @@
+ 
+ static int init_screen_info(void)
+ {
+-  union _LITTLE_ENDIAN {
++  union {
+     CARD32 value32;
+     CARD8 test;
+   } little_endian;
--- /dev/null
+++ net/vncreflector/files/patch-Makefile
@@ -0,0 +1,36 @@
+
+$FreeBSD: ports/net/vncreflector/files/patch-Makefile,v 1.2 2005/04/18 22:35:16 brooks Exp $
+
+--- Makefile.orig
++++ Makefile
+@@ -14,10 +14,10 @@
+ #
+ # Variables you might want to edit: CFLAGS, CONFFLAGS
+ 
+-IFLAGS =	-I.
++IFLAGS =	-I%%LOCALBASE%%/include
+ 
+ # Production
+-CFLAGS =	-O2 $(IFLAGS)
++#CFLAGS =	-O2 $(IFLAGS)
+ # Debug (strict)
+ #CFLAGS =	-g -pedantic -Wall $(IFLAGS)
+ # Debug (profiling)
+@@ -50,7 +50,7 @@
+ default: $(PROG)
+ 
+ $(PROG): $(OBJS)
+-	$(CC) $(CFLAGS) -o $(PROG) $(OBJS) $(LDFLAGS)
++	$(CC) $(CFLAGS) $(IFLAGS) -o $(PROG) $(OBJS) $(LDFLAGS)
+ 
+ clean: 
+ 	rm -f $(OBJS) *core* ./*~ ./*.bak $(PROG)
+@@ -59,7 +59,7 @@
+ 	$(MAKEDEPEND) $(MAKEDEPFLAGS) -I. $(SRCS) 2> /dev/null
+ 
+ .c.o:
+-	$(CC) $(CFLAGS) $(CONFFLAGS) -c $<
++	$(CC) $(CFLAGS) $(IFLAGS) $(CONFFLAGS) -c $<
+ 
+ 
+ # DO NOT DELETE
--- /dev/null
+++ net/vncreflector/files/vncreflector.sh.in
@@ -0,0 +1,150 @@
+#!/bin/sh
+# $MidnightBSD: mports/net/vncreflector/files/vncreflector.sh.in,v 1.1 2008/02/02 01:54:45 laffer1 Exp $
+# $FreeBSD: ports/net/vncreflector/files/vncreflector.sh.in,v 1.3 2006/02/20 20:47:31 dougb Exp $
+
+# PROVIDE: vncreflector
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+_etcdir="%%PREFIX%%/etc/vncreflector"
+
+# Define these vncreflector_* variables in one of these files:
+#       /etc/rc.conf
+#       /etc/rc.conf.local
+#       /etc/rc.conf.d/vncreflector
+#
+vncreflector_enable=${vncreflector_enable-"NO"}
+vncreflector_hostinfofile=${vncreflector_hostinfofile-"${_etcdir}/hostinfo"}
+vncreflector_passwdfile=${vncreflector_passwdfile-"${_etcdir}/passwd"}
+vncreflector_ports=${vncreflector_ports-"5999"}
+vncreflector_requirepasswdfile=${vncreflector_requirepasswdfile-"YES"}
+vncreflector_flags=${vncreflector_flags-"-q"}
+vncreflector_pidfile=${vncreflector_pidfile-"/var/run/vncreflector.pid"}
+vncreflector_logfile=${vncreflector_logfile-"/var/log/vncreflector.log"}
+vncreflector_activefile=${vncreflector_logfile-"/var/log/vncreflector.log"}
+vncreflector_addr=${vncreflector_addr-""}
+#vncreflector_addr_5999=
+
+. %%RC_SUBR%%
+
+name="vncreflector"
+rcvar=`set_rcvar`
+start_cmd="vncreflector_start"
+stop_cmd="vncreflector_stop"
+command="%%PREFIX%%/bin/${name}"
+# Disconnect from host, reread host file, reconnect.
+sig_reload=USR2
+
+vncreflector_start()
+{
+	_started=0
+
+	echo -n "starting ${name}:"
+
+	rc_flags=${vncreflector_flags}
+
+	for _port in ${vncreflector_ports}; do
+		echo -n " ${_port}"
+		pidfile="${vncreflector_pidfile}.${_port}"
+		rc_pid=$(check_pidfile $pidfile $command)
+		if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
+			echo -n "!"
+			continue
+		fi
+
+		_hostinfofile=""
+		_passwdfile=""
+		# if we only have one port, try the bare hostinfo
+		# before appending the port number.
+		if [ "${vncreflector_ports}" = "${_port}" -a \
+		    -r "${vncreflector_hostinfofile}" ]; then
+			_hostinfofile=${vncreflector_hostinfofile}
+			# if we found a bare hostinfo file, we'll also
+			# look for a bare passwd file
+			if [ -r "${vncreflector_passwdfile}" ]; then
+				_passwdfile=${vncreflector_passwdfile}
+			fi
+		fi
+		if [ -z "${_hostinfofile}" ]; then
+			_hostinfofile="${vncreflector_hostinfofile}.${_port}"
+		fi
+		if [ ! -r "${_hostinfofile}" ]; then
+			echo -n "!hostfile"
+			continue
+		fi
+		# if we don't have a passwdfile yet, try to use a
+		# port-specific one and fall back to trying a global one
+		if [ -z "${_passwdfile}" ]; then
+			_passwdfile=${vncreflector_passwdfile}
+			if [ -r ${_passwdfile}.${_port} ]; then
+				_passwdfile="${_passwdfile}.${_port}"
+			fi
+		fi
+		if [ -r "${_passwdfile}" ]; then
+			_passwdarg="-p${_passwdfile}"
+		else
+			if checkyesno vncreflector_requirepasswdfile; then
+				if [ -z "$rc_force" ]; then
+					warn "missing passwd file for ${_port}."
+					return 1
+				else 
+					echo -n "!passwdfile"
+					continue
+				fi
+			fi
+			_passwdarg=""
+		fi
+		if [ -z "${vncreflector_logfile}" ]; then
+			_logfile="/dev/null"
+		else
+			_logfile="${vncreflector_logfile}.${_port}"
+		fi
+		eval _addr=\$vncreflector_addr_${port}
+		if [ -z "${_addr}" ]; then
+			_addr=${vncreflector_addr}
+		fi
+		if [ -z "${_addr}" ]; then
+			unset _addr
+		fi
+
+		_doit="\
+${command} ${rc_flags} \
+-i ${vncreflector_pidfile} \
+-l ${_port} \
+-g ${_logfile} \
+${_addr+-l $_addr }${_passwdfile+-p $_passwdfile } \
+${_hostinfofile}"
+		debug "vncreflector_start: _doit: $_doit"
+		eval $_doit
+		_started=`expr 1 + ${_started}`
+	done
+	if [ $_started -lt 1 ]; then
+		return 1
+	fi
+	echo "."
+}
+
+vncreflector_stop()
+{
+	echo -n "stopping ${name}: "
+
+	_pids=""
+
+	for _port in ${vncreflector_ports}; do
+		echo -n " ${_port}"
+		pidfile="${vncreflector_pidfile}.${_port}"
+		rc_pid=$(check_pidfile $pidfile $command)
+		if [ -n "$rc_pid" ]; then
+			kill $sig_stop $rc_pid
+			_pids="${_pids} ${rc_pid}"
+		else
+			warn "no server for port ${_port}"
+		fi
+	done
+	echo "."
+	wait_for_pids $_pids
+}
+
+load_rc_config $name
+run_rc_command $*
--- /dev/null
+++ net/vncreflector/files/patch-logging.c
@@ -0,0 +1,37 @@
+
+$FreeBSD: ports/net/vncreflector/files/patch-logging.c,v 1.2 2007/04/24 05:57:15 sobomax Exp $
+
+--- logging.c
++++ logging.c
+@@ -138,8 +138,6 @@
+   char time_buf[32];
+   char level_char = ' ';
+ 
+-  va_start(arg_list, format);
+-
+   if ( (log_fp != NULL && level <= log_file_level) ||
+        level <= log_stderr_level ) {
+     now = time(NULL);
+@@ -150,18 +148,21 @@
+ 
+     if (level <= log_file_level) {
+       fprintf(log_fp, "%s %c ", time_buf, (int)level_char);
++      va_start(arg_list, format);
+       vfprintf(log_fp, format, arg_list);
++      va_end(arg_list);
+       fprintf(log_fp, "\n");
+       fflush(log_fp);
+     }
+     if (level <= log_stderr_level) {
+       fprintf(stderr, "%s %c ", time_buf, (int)level_char);
++      va_start(arg_list, format);
+       vfprintf(stderr, format, arg_list);
++      va_end(arg_list);
+       fprintf(stderr, "\n");
+       fflush(stderr);
+     }
+   }
+ 
+-  va_end(arg_list);
+ }
+ 


More information about the Midnightbsd-cvs mailing list