Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Nov 2002 11:36:31 +1100 (EST)
From:      Joshua Goodall <joshua@roughtrade.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/45178: Maintainer update: net/spread
Message-ID:  <20021110003631.145C03F6C@green.shallow.net>

next in thread | raw e-mail | index | archive | help

>Number:         45178
>Category:       ports
>Synopsis:       Maintainer update: net/spread
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 09 16:40:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Joshua Goodall
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
>Environment:
System: FreeBSD green.shallow.net 4.7-STABLE FreeBSD 4.7-STABLE #0: Mon Nov 4 00:26:59 EST 2002 root@green.shallow.net:/usr/obj/usr/src/sys/GREEN i386
>Description:
This is the long-awaited maintainer update of the net/spread port.

* Following upstream release 3.17.0 (bugfixes and autoconf'd)
* Installs a shlib rather than a .a
* Tools now dynamically linked
* New rc.d script
* Java library split out into a new port (to follow shortly)
* 3.17.0 library is not backwards compatible with 3.16.2

Structurally a great deal has changed.  I'm therefore sending this as
a sharball rather than a diff (the diff would be larger and harder to
read).

Committer please note: the following files are added (A) or removed (R)

R files/patch-FreeBSD_makefile
R files/patch-arch.h
R files/patch-data_link.c
R files/patch-session.c
A files/patch-Makefile.in
A files/patch-auth-ip.c
A files/patch-auth-pword.c
A files/patch-spread.c
A files/spread.sh

Please also put the source distribution in a MASTER_SITE_LOCAL subdir and
update the Makefile (around XXX) appropriately.  The upstream does not
prohibit distribution; unfortunately their standard download requires a
click-through.

Committing this also closes PR ports/44002.

TIA
Joshua.

>How-To-Repeat:
>Fix:


# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	spread
#	spread/Makefile
#	spread/distinfo
#	spread/pkg-descr
#	spread/pkg-comment
#	spread/pkg-install
#	spread/pkg-plist
#	spread/files
#	spread/files/patch-auth-ip.c
#	spread/files/patch-auth-pword.c
#	spread/files/patch-Makefile.in
#	spread/files/patch-spread.c
#	spread/files/spread.sh
#
echo c - spread
mkdir -p spread > /dev/null 2>&1
echo x - spread/Makefile
sed 's/^X//' >spread/Makefile << 'END-of-spread/Makefile'
X# New ports collection makefile for:    spread
X# Date created:		11 June 2001
X# Whom:			Anders Nordby <anders@fix.no>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	spread
XPORTVERSION=	3.17.0
XPORTREVISION=	1
XCATEGORIES=	net perl5
X# XXX
XMASTER_SITES=	http://www.roughtrade.net/distfiles/
XDISTNAME=	${PORTNAME}-src-${PORTVERSION}
X
XMAINTAINER=	joshua@roughtrade.net
X
XGNU_CONFIGURE=	yes
X
XMAN1=	spflooder.1 spmonitor.1 spread.1 sptuser.1 spuser.1
XMAN3=	libsp.3 SP_connect.3 SP_disconnect.3 SP_equal_group_ids.3 SP_error.3 \
X	SP_join.3 SP_leave.3 SP_multicast.3 SP_multigroup_multicast.3 \
X	SP_multigroup_scat_multicast.3 SP_poll.3 SP_receive.3 \
X	SP_scat_multicast.3 SP_scat_receive.3
X
XUSE_PERL5=	yes
XINSTALLS_SHLIB=	yes
XPKGMESSAGE=	${WRKSRC}/license.txt
X
XMAKE_ARGS+=	PTHREAD_CFLAGS=${PTHREAD_CFLAGS} PTHREAD_LIBS=${PTHREAD_LIBS}
X
X.include <bsd.port.pre.mk>
X
Xpost-build:
X	(cd ${WRKSRC}/perl/Spread; ${PERL} Makefile.PL; ${MAKE})
X
Xpre-install:
X	${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
X
Xpost-install:
X	${INSTALL_SCRIPT} ${FILESDIR}/spread.sh ${PREFIX}/etc/rc.d/spread.sh.sample
X	${INSTALL_DATA} ${WRKSRC}/sp.h ${PREFIX}/include
X	${INSTALL_DATA} ${WRKSRC}/sp_func.h ${PREFIX}/include
X	${INSTALL_DATA} ${WRKSRC}/sp_events.h ${PREFIX}/include
X	${INSTALL_DATA} ${WRKSRC}/sample.spread.conf ${PREFIX}/etc/spread.conf.sample
X	${INSTALL_DATA} ${WRKSRC}/sample.spread.access_ip ${PREFIX}/etc/spread.access_ip.sample
X	(cd ${WRKSRC}/perl/Spread && ${MAKE} install)
X	${GZIP_CMD} ${GZIP} ${LOCALBASE}/lib/perl5/${PERL_VERSION}/man/man3/Spread.3
X.if !defined(NOPORTDOCS)
X	${INSTALL} -d -o root -g wheel -m 0755 ${DOCSDIR}
X	${INSTALL_DATA} ${WRKSRC}/Readme.txt ${DOCSDIR}
X	${INSTALL_DATA} ${WRKSRC}/license.txt ${DOCSDIR}/LICENSE
X	${INSTALL} -d -o root -g wheel -m 0755 ${DOCSDIR}/perl
X	${INSTALL_DATA} ${WRKSRC}/perl/Spread/README ${DOCSDIR}/perl
X	${INSTALL_DATA} ${WRKSRC}/perl/Spread/test.pl ${DOCSDIR}/perl
X.endif
X	@${CAT} ${PKGMESSAGE}
X	${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X
X.include <bsd.port.post.mk>
END-of-spread/Makefile
echo x - spread/distinfo
sed 's/^X//' >spread/distinfo << 'END-of-spread/distinfo'
XMD5 (spread-src-3.17.0.tar.gz) = 77d927584e66cb09472f5e9a1613e274
END-of-spread/distinfo
echo x - spread/pkg-descr
sed 's/^X//' >spread/pkg-descr << 'END-of-spread/pkg-descr'
XCopyright (c) 1993-2002 Spread Concepts LLC. All rights reserved.
XThis product uses software developed by Spread Concepts LLC for use in the
XSpread toolkit. For more information about Spread see http://www.spread.org/
X
XSpread is a toolkit and daemon that provide multicast and group communications
Xsupport to applications across local and wide area networks. Spread is designed
Xto make it easy to write groupware, networked multimedia, reliable server, and
Xcollaborative work applications.
X
XSpread consists of a library that user applications are linked with, a binary
Xdaemon which runs on each computer that is part of the processor group, and
Xvarious utility and demonstration programs.
X
XWWW: http://www.spread.org/
X
X- Joshua
Xjoshua@roughtrade.net
END-of-spread/pkg-descr
echo x - spread/pkg-comment
sed 's/^X//' >spread/pkg-comment << 'END-of-spread/pkg-comment'
XThe Spread Group Communication System, a network toolkit
END-of-spread/pkg-comment
echo x - spread/pkg-install
sed 's/^X//' >spread/pkg-install << 'END-of-spread/pkg-install'
X#!/bin/sh
X
XPATH=/sbin:/bin:/usr/sbin:/usr/bin
XUSER=spread
XUSER_HOMEDIR=/nonexistent
XGROUP=spread
XRUNDIR=/var/run/spread
XNOLOGIN=/sbin/nologin
X
Xcase $2 in
XPRE-INSTALL)
X    if pw group show "${GROUP}" 2>/dev/null; then
X	echo "You already have a group \"${GROUP}\", so I will use it."
X    else
X	if pw groupadd ${GROUP}; then
X	    echo "Added group \"${GROUP}\"."
X	else
X	    echo "Adding group \"${GROUP}\" failed..."
X	    exit 1
X	fi
X    fi
X
X    if pw user show "${USER}" 2>/dev/null; then
X	echo "You already have a user \"${USER}\", so I will use it."
X	if pw usermod ${USER} -d ${USER_HOMEDIR}
X	then
X	    echo "Changed home directory of \"${USER}\" to \"${USER_HOMEDIR}\"."
X	else
X	    echo "Changing home directory of \"${USER}\" to \"${USER_HOMEDIR}\" failed."
X	    exit 1
X	fi
X    else
X	if pw useradd ${USER} -g ${GROUP} -h - \
X	    -d ${USER_HOMEDIR} -s ${NOLOGIN} -c "Spread User"
X	then
X	    echo "Added user \"${USER}\"."
X	else
X	    echo "Adding user \"${USER}\" failed..."
X	    exit 1
X	fi
X    fi
X    ;;
XPOST-INSTALL)
X    if [ ! -d ${RUNDIR} ]; then
X	install -d -o ${USER} -g ${GROUP} -m 0750 ${RUNDIR}
X    fi
X    ;;
X*)
X    echo 'unexpect argument to pkg-install'
X    ;;
Xesac
END-of-spread/pkg-install
echo x - spread/pkg-plist
sed 's/^X//' >spread/pkg-plist << 'END-of-spread/pkg-plist'
Xbin/spflooder
Xbin/spmonitor
Xbin/sptuser
Xbin/spuser
Xetc/rc.d/spread.sh.sample
Xetc/spread.access_ip.sample
Xetc/spread.conf.sample
Xinclude/sp.h
Xinclude/sp_events.h
Xinclude/sp_func.h
Xlib/libspread.a
Xlib/libspread.so
Xlib/libspread.so.1
Xlib/libtspread.a
Xlib/libtspread.so
Xlib/libtspread.so.1
Xlib/perl5/%%PERL_VERSION%%/man/man3/Spread.3.gz
Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/Spread.pm
Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/Spread/.packlist
Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/Spread/Spread.bs
Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/Spread/Spread.so
Xlib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/Spread/autosplit.ix
Xsbin/spread
X%%PORTDOCS%%share/doc/spread/perl/README
X%%PORTDOCS%%share/doc/spread/perl/test.pl
X%%PORTDOCS%%share/doc/spread/LICENSE
X%%PORTDOCS%%share/doc/spread/Readme.txt
X@unexec rmdir /var/run/spread 2>/dev/null || true
X@unexec rmdir %D/lib/perl5/site_perl/%%PERL_VER%%/%%PERL_ARCH%%/auto/Spread 2>/dev/null || true
X%%PORTDOCS%%@dirrm share/doc/spread/perl
X%%PORTDOCS%%@dirrm share/doc/spread
END-of-spread/pkg-plist
echo c - spread/files
mkdir -p spread/files > /dev/null 2>&1
echo x - spread/files/patch-auth-ip.c
sed 's/^X//' >spread/files/patch-auth-ip.c << 'END-of-spread/files/patch-auth-ip.c'
X--- auth-ip.c	Sun Sep 22 12:56:52 2002
X+++ auth-ip.c	Wed Nov  6 02:39:28 2002
X@@ -94,8 +94,8 @@
X         if (NULL != (fp = fopen("./spread.access_ip", "r")) )
X             Alarm( PRINT, "ip_init: using file: ./spread.access_ip\n");
X     if (fp == NULL)
X-        if (NULL != (fp = fopen("/etc/spread.access_ip", "r")) )
X-            Alarm( PRINT, "ip_init: using file: /etc/spread.access_ip\n");
X+        if (NULL != (fp = fopen(SPREAD_ETCDIR "/spread.access_ip", "r")) )
X+            Alarm( PRINT, "ip_init: using file: " SPREAD_ETCDIR "/spread.access_ip\n");
X     if (fp == NULL)
X     {
X         Alarm( PRINT, "ip_init: IP access control file not found.\nIf you are using IP based access controls, please make sure the file exists.\n");
END-of-spread/files/patch-auth-ip.c
echo x - spread/files/patch-auth-pword.c
sed 's/^X//' >spread/files/patch-auth-pword.c << 'END-of-spread/files/patch-auth-pword.c'
X--- auth-pword.c	Sun Sep 22 12:56:52 2002
X+++ auth-pword.c	Wed Nov  6 02:40:23 2002
X@@ -122,8 +122,8 @@
X         if (NULL != (fp = fopen("./spread.access_pword", "r")) )
X             Alarm( PRINT, "pword_init: using file: ./spread.access_pword\n");
X     if (fp == NULL)
X-        if (NULL != (fp = fopen("/etc/spread.access_pword", "r")) )
X-            Alarm( PRINT, "pword_init: using file: /etc/spread.access_pword\n");
X+        if (NULL != (fp = fopen(SPREAD_ETCDIR "/spread.access_pword", "r")) )
X+            Alarm( PRINT, "pword_init: using file: " SPREAD_ETCDIR "/spread.access_pword\n");
X     if (fp == NULL)
X         Alarm( EXIT, "pword_init: error opening config file %s in any of the standard locations. Please make sure the file exists\n", file_name);
X 
END-of-spread/files/patch-auth-pword.c
echo x - spread/files/patch-Makefile.in
sed 's/^X//' >spread/files/patch-Makefile.in << 'END-of-spread/files/patch-Makefile.in'
X--- Makefile.in.orig	Sat Sep 28 08:38:59 2002
X+++ Makefile.in	Wed Nov  6 07:41:33 2002
X@@ -25,7 +25,7 @@
X #Rules: major  -- inc for incompatible change
X #     : minor  -- inc for bugfix or forward compatible change
X 
X-LIBVERSION=1.0
X+LIBVERSION=1
X 
X PATHS= 
X 
X@@ -34,7 +34,7 @@
X CFLAGS=@CFLAGS@
X CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
X LDFLAGS=@LDFLAGS@
X-LIBS=@LIBS@
X+LIBS=-L. @LIBS@
X THLDFLAGS=@THLDFLAGS@
X THLIBS=@THLIBS@
X AR=@AR@
X@@ -51,8 +51,10 @@
X PERL=@PERL@
X ENT=@ENT@
X EXEEXT=@EXEEXT@
X+SHLDSONAME=-Wl,-soname,libspread.so.$(LIBVERSION)
X+TSHLDSONAME=-Wl,-soname,libtspread.so.$(LIBVERSION)
X 
X-TARGETS=spread$(EXEEXT) spuser$(EXEEXT) spflooder$(EXEEXT) spmonitor$(EXEEXT) sptuser${EXEEXT} @LIBSPSO@ @LIBTSPSO@
X+TARGETS=spread$(EXEEXT) spuser$(EXEEXT) spflooder$(EXEEXT) spmonitor$(EXEEXT) sptuser${EXEEXT} @LIBSPSO@ @LIBTSPSO@ libspread.a libtspread.a
X 
X LIBSP_OBJS= alarm.o events.o memory.o sp.o
X 
X@@ -123,8 +125,11 @@
X 	$(INSTALL) -m 0755 libspread.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libspread.$(LIBVERSION).dylib
X 	(cd $(DESTDIR)$(libdir); $(SOFTLINK) libspread.$(LIBVERSION).dylib libspread.dylib)
X 
X-libspread.so:	$(LIBSP_SHOBJS)
X-	$(SHLD) -o $@ $(LIBSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS)
X+libspread.so:	$@.$(LIBVERSION)
X+	$(SOFTLINK) $@.$(LIBVERSION) $@
X+
X+libspread.so.$(LIBVERSION):	$(LIBSP_SHOBJS)
X+	$(SHLD) -o $@ $(LIBSP_SHOBJS) $(SHLDSONAME) $(SHLDFLAGS) $(SHLIBS)
X 
X install-libspread.so:	libspread.so
X 	$(INSTALL) -m 0755 libspread.so $(DESTDIR)$(libdir)/libspread.so.$(LIBVERSION)
X@@ -142,8 +147,11 @@
X 	$(INSTALL) -m 0755 libtspread.$(LIBVERSION).dylib $(DESTDIR)$(libdir)/libtspread.$(LIBVERSION).dylib
X 	(cd $(DESTDIR)$(libdir); $(SOFTLINK) libtspread.$(LIBVERSION).dylib libtspread.dylib)
X 
X-libtspread.so:	$(LIBTSP_SHOBJS)
X-	$(SHLD) -o $@ $(LIBTSP_SHOBJS) $(SHLDFLAGS) $(SHLIBS) $(THLIBS)
X+libtspread.so:	$@.$(LIBVERSION)
X+	$(SOFTLINK) $@.$(LIBVERSION) $@
X+
X+libtspread.so.$(LIBVERSION):	$(LIBTSP_SHOBJS)
X+	$(SHLD) -o $@ $(LIBTSP_SHOBJS) $(TSHLDSONAME) $(SHLDFLAGS) $(SHLIBS) $(THLIBS)
X 
X install-libtspread.so:	libtspread.so
X 	$(INSTALL) -m 0755 libtspread.so $(DESTDIR)$(libdir)/libtspread.so.$(LIBVERSION)
X@@ -152,17 +160,17 @@
X spread$(EXEEXT): $(SPREADOBJS)
X 	$(LD) -o $@ $(SPREADOBJS) $(LDFLAGS) $(LIBS)
X 
X-spuser$(EXEEXT): libspread.a	user.o
X-	$(LD) -o $@ user.o $(LDFLAGS) libspread.a $(LIBS)
X+spuser$(EXEEXT): libspread.so	user.o
X+	$(LD) -o $@ user.o $(LDFLAGS) -lspread $(LIBS)
X 
X-spflooder$(EXEEXT): libspread.a flooder.o
X-	$(LD) -o $@ flooder.o $(LDFLAGS) libspread.a $(LIBS)
X+spflooder$(EXEEXT): libspread.so flooder.o
X+	$(LD) -o $@ flooder.o $(LDFLAGS) -lspread $(LIBS)
X 
X spmonitor$(EXEEXT): $(MONITOROBJS)
X 	$(LD) -o $@ $(MONITOROBJS) $(LDFLAGS) $(LIBS) 
X 
X-sptuser$(EXEEXT): user.to libtspread.a
X-	$(LD) $(THLDFLAGS) -o $@ user.to libtspread.a $(LDFLAGS) $(LIBS) $(THLIBS)
X+sptuser$(EXEEXT): user.to libtspread.so
X+	$(LD) $(THLDFLAGS) -o $@ user.to -ltspread $(LDFLAGS) $(LIBS) $(THLIBS)
X 
X spsimple_user$(EXEEXT): simple_user.o libspread.a
X 	$(LD) -o $@ simple_user.o $(LDFLAGS) libspread.a $(LIBS) 
X@@ -234,11 +242,6 @@
X 	done
X 	if [ ! -d $(DESTDIR)$(sysconfdir) ]; then \
X 		$(buildtoolsdir)/mkinstalldirs $(DESTDIR)$(sysconfdir); \
X-	fi
X-	if [ ! -f $(DESTDIR)$(sysconfdir)/spread.conf ]; then \
X-		$(INSTALL) -m 644 $(srcdir)/sample.spread.conf $(DESTDIR)$(sysconfdir)/spread.conf; \
X-	else \
X-		echo "$(DESTDIR)$(sysconfdir)/spread.conf already exists, install will not overwrite"; \
X 	fi
X 
X uninstallall:	uninstall
END-of-spread/files/patch-Makefile.in
echo x - spread/files/patch-spread.c
sed 's/^X//' >spread/files/patch-spread.c << 'END-of-spread/files/patch-spread.c'
X--- spread.c	Sun Nov 10 00:17:59 2002
X+++ spread.c	Sun Nov 10 00:18:42 2002
X@@ -65,6 +65,7 @@
X 
X static	void	Invalid_privilege_decrease(char *user, char *group);
X static	void	Usage(int argc, char *argv[]);
X+static	void	writepidfile();
X 
X /* auth-null.c: */
X void null_init(void);
X@@ -144,6 +145,8 @@
X 
X #endif	/* ARCH_PC_WIN95 */
X 
X+	writepidfile();
X+
X         /* initialize each valid authentication protocol */
X         null_init();
X         ip_init();
X@@ -193,6 +196,20 @@
X 	E_handle_events();
X 
X 	return 0;
X+}
X+
X+static void
X+writepidfile()
X+{
X+	char pidbuf[11];
X+	int pidfd;
X+
X+	if ((pidfd = open(_PATH_SPREAD_PIDDIR "/spread.pid", O_RDWR | O_CREAT, 0644)) == -1)
X+		Alarm( EXIT, "Spread: couldn't open pidfile for writing" );
X+
X+	snprintf(pidbuf, sizeof(pidbuf), "%ld\n", (long)getpid());
X+	write(pidfd, pidbuf, strlen(pidbuf));
X+	close(pidfd);
X }
X 
X static  void    Print_help(void)
END-of-spread/files/patch-spread.c
echo x - spread/files/spread.sh
sed 's/^X//' >spread/files/spread.sh << 'END-of-spread/files/spread.sh'
X#!/bin/sh
X#
X# $FreeBSD$
X
Xif ! prefix=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
X    echo "$0: Cannot determine the prefix" >&2
X    exit 1
Xfi
Xspread=${prefix}/sbin/spread
Xpidfile=/var/run/spread.pid
Xout=/var/log/spread.out
Xdaemon=/usr/sbin/daemon
X
Xcase "$1" in
Xstart)
X	if [ -x ${spread} ]; then
X		echo -n ' spread'
X		${daemon} -c ${spread} >${out} 2>&1 <&-
X	fi
X	;;
Xstop)
X	if [ -f ${pidfile} ]; then
X		kill `cat ${pidfile}`
X		echo -n ' spread'
X		rm ${pidfile}
X	else
X		echo ' spread: not running'
X	fi
X	;;
X*)
X	echo "Usage: `basename $0` {start|stop}" >&2
X	exit 64
X	;;
Xesac
X
Xexit 0
END-of-spread/files/spread.sh
exit

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021110003631.145C03F6C>