ports/62883: New port: net/bb-client (Big Brother monitor)

Kim Scarborough sluggo at unknown.nu
Sun Feb 15 20:00:37 UTC 2004


>Number:         62883
>Category:       ports
>Synopsis:       New port: net/bb-client (Big Brother monitor)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 15 12:00:37 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Kim Scarborough
>Release:        FreeBSD 5.1-RELEASE-p12 i386
>Organization:
>Environment:
System: FreeBSD jinx.unknown.nu 5.1-RELEASE-p12 FreeBSD 5.1-RELEASE-p12 #1: Fri Feb 6 11:19:39 CST 2004 toor at jinx.unknown.nu:/usr/src/sys/i386/compile/JINX i386


	
>Description:
Back after being AWOL for 4 years, here's Big Brother, the server/network
monitoring program. This port is the client only: it assumes there is a
preexisting external Big Brother server. 

I will be submitting a bb-server port once this is approved.

>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:
#
#	bb-client
#	bb-client/Makefile
#	bb-client/distinfo
#	bb-client/pkg-install
#	bb-client/pkg-descr
#	bb-client/files
#	bb-client/files/patch-aa
#	bb-client/files/bb.sh
#	bb-client/pkg-message
#	bb-client/pkg-plist
#	bb-client/pkg-deinstall
#
echo c - bb-client
mkdir -p bb-client > /dev/null 2>&1
echo x - bb-client/Makefile
sed 's/^X//' >bb-client/Makefile << 'END-of-bb-client/Makefile'
X# New ports collection makefile for:	bb-client
X# Date created:				15 February 2004
X# Whom:					Kim Scarborough <user at unknown.nu>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	bb
XPORTVERSION=	1.9e
XCATEGORIES=	net
XPKGNAMESUFFIX=	-client
XDISTNAME=	bb-${PORTVERSION}
X
XMAINTAINER=	user at unknown.nu
XCOMMENT=	Big Brother system and network monitor (client)
X
XNO_PACKAGE=	"License forbids redistribution"
XRESTRICTED=	"License must be agreed to before downloading"
X
XIS_INTERACTIVE=	yes
XUSE_REINPLACE=	yes
XNO_MTREE=	yes
XWRKSRC=	${WRKDIR}/bbc${PORTVERSION}-btf
XNO_WRKSUBDIR=	yes
X
XBBUSER?=	bigbrother
XBBGROUP?=	${BBUSER}
XBBHOME?=	bb
X
XPLIST_SUB=	BBHOME=${BBHOME}
X
X.include <bsd.port.pre.mk>
X
X.if !exists(${DISTDIR}/${DISTNAME}.tar.gz)
XIGNORE=		may not be automatically fetched due to licensing\
X		restrictions. Please go to\
X		<http://www.bb4.com/cgi-bin/ndnld.pl> and manually\
X		download the file after reading and agreeing to\
X		the Non-Commercial License Agreement. Once\
X		${DISTFILES} has been downloaded, move it to\
X		${DISTDIR} and continue this build.
X.endif
X
Xpost-extract:
X	@( cd ${WRKDIR} && ${TAR} xf BBCLT-bbc${PORTVERSION}-btf.tar )
X
Xpre-build:
X	@${ECHO_MSG}
X	@${ECHO_MSG} "If you want to run Big Brother as a user other than \"${BBUSER}\", run:"
X	@${ECHO_MSG} "make BBUSER=[username]"
X	@${ECHO_MSG}
X	@${ECHO_MSG} "If you want the Big Brother installation to live somewhere other than ${PREFIX}/${BBHOME}/, run:"
X	@${ECHO_MSG} "make BBHOME=[dir]"
X	@${ECHO_MSG} "(The directory will be relative to ${PREFIX} unless you redefine PREFIX.)"
X	@${ECHO_MSG}
X	@${ECHO_MSG} "These options can be combined."
X	@${ECHO_MSG}
X	@sleep 3
X
Xdo-build:
X	@${SED} s~\&BBHOME~${PREFIX}/${BBHOME}~ ${WRKSRC}/runbb.sh.DIST > ${WRKSRC}/runbb.sh
X	@${SED} s~\&BBUSER~${BBUSER}~ ${WRKSRC}/etc/bbdef.sh.DIST > ${WRKSRC}/etc/bbdef.sh
X	@${SED} s~%%BBUSER%%~${BBUSER}~g ${FILESDIR}/bb.sh > ${WRKDIR}/bb.sh.sample
X	@${REINPLACE_CMD} s~%%BBHOME%%~${PREFIX}/${BBHOME}~g ${WRKDIR}/bb.sh.sample
X	@( cd ${WRKSRC}/src && ${MAKE} && ${MAKE} install )
X
Xpre-install:
X	@BBUSER=${BBUSER} BBGROUP=${BBGROUP} WRKSRC=${WRKSRC}\
X	${SH} ${PKGINSTALL} ${PKGNAME}
X	@${ECHO_MSG} bbhome=\"${BBHOME}\" > ${WRKDIR}/bbinfo.sh
X	@${ECHO_MSG} bbuser=\"${BBUSER}\" >> ${WRKDIR}/bbinfo.sh
X	@${ECHO_MSG} bbgroup=\"${BBGROUP}\" >> ${WRKDIR}/bbinfo.sh
X
Xdo-install:
X.for BBDIR in bin etc ext tmp
X	@${MKDIR} ${PREFIX}/${BBHOME}/${BBDIR}
X.endfor
X	@${INSTALL_SCRIPT} ${WRKSRC}/runbb.sh ${PREFIX}/${BBHOME}/
X	@${INSTALL_SCRIPT} ${WRKSRC}/install/bbsys.freebsd ${PREFIX}/${BBHOME}/etc/bbsys.local
X	@${INSTALL_SCRIPT} ${WRKSRC}/install/bbsys.freebsd ${PREFIX}/${BBHOME}/etc/bbsys.local.dist
X	@${INSTALL_SCRIPT} ${WRKSRC}/ext/ext-proto ${PREFIX}/${BBHOME}/ext/
X.for BBBIN in bb bbrun getipaddr touchtime
X	@${INSTALL_PROGRAM} ${WRKSRC}/bin/${BBBIN} ${PREFIX}/${BBHOME}/bin/
X.endfor
X.for BBSCRIPT in combo cpu disk local msgs ping procs
X	@${INSTALL_SCRIPT} ${WRKSRC}/bin/bb-${BBSCRIPT}.sh ${PREFIX}/${BBHOME}/bin/
X.endfor
X.for BBTAB in bbext cpu df msgs proc
X	@${INSTALL_DATA} ${WRKSRC}/etc/bb-${BBTAB}tab.DIST ${PREFIX}/${BBHOME}/etc/
X.endfor
X	@${INSTALL_DATA} ${WRKSRC}/etc/bbwarnsetup.cfg ${PREFIX}/${BBHOME}/etc/
X.for BBETCSCRIPT in def def-client inc inc-client sys
X	@${INSTALL_SCRIPT} ${WRKSRC}/etc/bb${BBETCSCRIPT}.sh ${PREFIX}/${BBHOME}/etc/
X.endfor
X	@${CHOWN} -R ${BBUSER}:${BBGROUP} ${PREFIX}/${BBHOME}
X	@${TEST} -d ${PREFIX}/etc/rc.d || ${MKDIR} ${PREFIX}/etc/rc.d/
X	@${INSTALL_SCRIPT} ${WRKDIR}/bb.sh.sample ${PREFIX}/etc/rc.d/
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${DOCSDIR}
X.for BBDOC in LICENSE README README.CHANGES README.SECURITY README.SUPPORT
X	@${INSTALL_MAN} ${WRKSRC}/${BBDOC} ${DOCSDIR}
X.endfor
X.endif
X.if !defined(NOBBMSG)
X	@${ECHO_MSG}
X	@${SED} s~%%BBHOME%%~${PREFIX}/${BBHOME}~g pkg-message |\
X	${SED} s~%%PREFIX%%~${PREFIX}~g
X	@${ECHO_MSG}
X.endif
X	@${MKDIR} ${DATADIR}
X	@${INSTALL_SCRIPT} ${WRKDIR}/bbinfo.sh ${DATADIR}/
X
X.include <bsd.port.post.mk>
END-of-bb-client/Makefile
echo x - bb-client/distinfo
sed 's/^X//' >bb-client/distinfo << 'END-of-bb-client/distinfo'
XMD5 (bb-1.9e.tar.gz) = 5f0ce6b6ea4038c411f506810e226689
XSIZE (bb-1.9e.tar.gz) = 447216
END-of-bb-client/distinfo
echo x - bb-client/pkg-install
sed 's/^X//' >bb-client/pkg-install << 'END-of-bb-client/pkg-install'
X#!/bin/sh
X
XPW=/usr/sbin/pw
X
Xless ${WRKSRC}/LICENSE
Xecho
Xecho -n $ECHOOPTION "Do you agree to the terms of this license (y/n): $ECHOTAIL"
Xread ANS
X
XANS=`echo "$ANS" | tr '[A-Z]' '[a-z]'`
X
Xif [ "$ANS" != "y" ]
Xthen
X	echo
X	echo "Exiting..."
X	exit 1
Xelse
X	echo
X	echo "Thank you, installation continuing..."
Xfi
X
Xif ${PW} group show "${BBGROUP}" 2>/dev/null; then
X	echo "You already have a group \"${BBGROUP}\", so I will use it."
Xelse
X	if ${PW} groupadd ${BBGROUP}; then
X		echo "Added group \"${BBGROUP}\"."
X	else
X		echo "Adding group \"${BBGROUP}\" failed..."
X		exit 1
X	fi
Xfi
X
Xif ${PW} user show "${BBUSER}" 2>/dev/null; then
X	echo "You already have a user \"${BBUSER}\", so I will use it."
Xelse
X	if ${PW} useradd ${BBUSER} -g ${BBGROUP} -h - \
X		-d "/nonexistent" -s /sbin/nologin -c "Big Brother"
X	then
X		echo "Added user \"${BBUSER}\"."
X	else
X		echo "Adding user \"${BBUSER}\" failed..."
X		exit 1
X	fi
Xfi
X
Xexit
END-of-bb-client/pkg-install
echo x - bb-client/pkg-descr
sed 's/^X//' >bb-client/pkg-descr << 'END-of-bb-client/pkg-descr'
XBig Brother monitors System and Network-delivered services for
Xavailability. Your current network status is displayed on a
Xcolor-coded web page in near-real time. When problems are detected,
Xyou're immediately notified by e-mail, pager, or text message.
X
XThis is the client-only port. This should only be installed if
Xyou will be sending data to an external Big Brother server.
X
XPlease note that Big Brother is only free for non-commercial
Xuse.
X
XWWW: http://bb4.com/
END-of-bb-client/pkg-descr
echo c - bb-client/files
mkdir -p bb-client/files > /dev/null 2>&1
echo x - bb-client/files/patch-aa
sed 's/^X//' >bb-client/files/patch-aa << 'END-of-bb-client/files/patch-aa'
X--- etc/bbdef.sh.DIST.orig	Fri Jan  2 15:08:32 2004
X+++ etc/bbdef.sh.DIST	Sat Feb 14 11:55:37 2004
X@@ -8,7 +8,7 @@
X #
X 
X # OS TYPE
X-BBOSTYPE="&BBOSTYPE"
X+BBOSTYPE="freebsd"
X export BBOSTYPE
X 
X # BB USER
X@@ -27,12 +27,12 @@
X #
X # FQDN="TRUE"		# YES...
X 
X-FQDN="&BBFQDN"
X+FQDN="TRUE"
X 
X #
X # PREVENT BB TO RUN AS root ?
X #
X-STOPROOT="&STOPROOT"
X+STOPROOT="TRUE"
X export STOPROOT
X 
X #
END-of-bb-client/files/patch-aa
echo x - bb-client/files/bb.sh
sed 's/^X//' >bb-client/files/bb.sh << 'END-of-bb-client/files/bb.sh'
X#!/bin/sh
X
Xif [ $# -ne 1 ] ; then
X		echo "Usage: `basename $0` {start|stop}" >&2
X        exit 1
Xfi
X
Xcase "$1" in
X        'start')
X                /usr/bin/su -m %%BBUSER%% -c "umask 022; %%BBHOME%%/runbb.sh start" > /dev/null && echo -n ' big brother'
X                ;;
X        'stop')
X                /usr/bin/su -m %%BBUSER%% -c "%%BBHOME%%/runbb.sh stop" > /dev/null 2>&1 && echo -n ' big brother'
X                ;;
X		*)
X			echo "Usage: `basename $0` {start|stop}" >&2
Xesac
END-of-bb-client/files/bb.sh
echo x - bb-client/pkg-message
sed 's/^X//' >bb-client/pkg-message << 'END-of-bb-client/pkg-message'
XThe Big Brother client is now installed. After this machine has been added to
Xthe bb-hosts file on the remote Big Brother server, copy that file to
X%%BBHOME%%/etc/ on this machine.
X
XOnce you've done that, start Big Brother like this:
X
Xcp -p %%PREFIX%%/etc/rc.d/bb.sh.sample %%PREFIX%%/etc/rc.d/bb.sh
X%%PREFIX%%/etc/rc.d/bb.sh start
END-of-bb-client/pkg-message
echo x - bb-client/pkg-plist
sed 's/^X//' >bb-client/pkg-plist << 'END-of-bb-client/pkg-plist'
X%%BBHOME%%/bin/bb
X%%BBHOME%%/bin/bb-combo.sh
X%%BBHOME%%/bin/bb-cpu.sh
X%%BBHOME%%/bin/bb-disk.sh
X%%BBHOME%%/bin/bb-local.sh
X%%BBHOME%%/bin/bb-msgs.sh
X%%BBHOME%%/bin/bb-ping.sh
X%%BBHOME%%/bin/bb-procs.sh
X%%BBHOME%%/bin/bbrun
X%%BBHOME%%/bin/getipaddr
X%%BBHOME%%/bin/touchtime
X%%BBHOME%%/etc/bb-bbexttab.DIST
X%%BBHOME%%/etc/bb-cputab.DIST
X%%BBHOME%%/etc/bb-dftab.DIST
X%%BBHOME%%/etc/bb-msgstab.DIST
X%%BBHOME%%/etc/bb-proctab.DIST
X%%BBHOME%%/etc/bbdef-client.sh
X%%BBHOME%%/etc/bbdef.sh
X%%BBHOME%%/etc/bbinc-client.sh
X%%BBHOME%%/etc/bbinc.sh
X at unexec if cmp -s %D/%%BBHOME%%/etc/bbsys.local.dist %D/%%BBHOME%%/etc/bbsys.local; then rm -f %D/%%BBHOME%%/etc/bbsys.local; fi
X%%BBHOME%%/etc/bbsys.local.dist
X%%BBHOME%%/etc/bbsys.sh
X%%BBHOME%%/etc/bbwarnsetup.cfg
X%%BBHOME%%/ext/ext-proto
X%%BBHOME%%/runbb.sh
Xetc/rc.d/bb.sh.sample
X at unexec rm -f %D/etc/rc.d/bb.sh 2>/dev/null || true
X%%PORTDOCS%%%%DOCSDIR%%/LICENSE
X%%PORTDOCS%%%%DOCSDIR%%/README
X%%PORTDOCS%%%%DOCSDIR%%/README.CHANGES
X%%PORTDOCS%%%%DOCSDIR%%/README.SECURITY
X%%PORTDOCS%%%%DOCSDIR%%/README.SUPPORT
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
X%%DATADIR%%/bbinfo.sh
X at dirrm %%BBHOME%%/bin
X at unexec rmdir %D/%%BBHOME%%/etc 2>/dev/null || true
X at unexec rmdir %D/%%BBHOME%%/ext 2>/dev/null || true
X at unexec rm -rf %D/%%BBHOME%%/tmp 2>/dev/null || true
X at unexec rmdir %D/%%BBHOME%% 2>/dev/null || true
X at dirrm %%DATADIR%%
END-of-bb-client/pkg-plist
echo x - bb-client/pkg-deinstall
sed 's/^X//' >bb-client/pkg-deinstall << 'END-of-bb-client/pkg-deinstall'
X#!/bin/sh
X
Xif [ "$2" != "DEINSTALL" ]; then
X	exit 0
Xfi
X
XPW=/usr/sbin/pw
X
X. ${PKG_PREFIX}/share/bb/bbinfo.sh || exit
Xkillall -u ${bbuser}
Xecho
Xecho -n $ECHOOPTION "Do you want to remove the user ${bbuser}? (y/n): $ECHOTAIL"
Xread ANS
X
XANS=`echo "$ANS" | tr '[A-Z]' '[a-z]'`
X
Xif [ "$ANS" != "y" ]
Xthen
X	echo
X	echo "Okay, ${bbuser} will be left on your system."
Xelse
X	pw userdel -n ${bbuser} && echo "Done."
Xfi
X
Xecho
Xecho -n $ECHOOPTION "Do you want to completely remove the directory ${PKG_PREFIX}/${bbhome}? (y/n): $ECHOTAIL"
Xread ANS
X
XANS=`echo "$ANS" | tr '[A-Z]' '[a-z]'`
X
Xif [ "$ANS" != "y" ]
Xthen
X	echo
X	echo "Okay."
Xelse
X	echo
X	echo "Okay, I'll do my best, but you may have to rm -rf ${PKG_PREFIX}/${bbhome} manually when the deinstall finishes."
X	rm -rf ${PKG_PREFIX}/${bbhome}/BBOUT* ${PKG_PREFIX}/${bbhome}/etc/bb-hosts ${PKG_PREFIX}/${bbhome}/etc/bb-*tab 2> /dev/null || true
Xfi
X
Xexit
END-of-bb-client/pkg-deinstall
exit

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



More information about the freebsd-ports-bugs mailing list