ports/72598: Port submission
Olivier Beyssac
obld at r14.freenix.org
Tue Oct 12 22:20:26 UTC 2004
>Number: 72598
>Category: ports
>Synopsis: Port submission
>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: Tue Oct 12 22:20:26 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Olivier Beyssac
>Release: FreeBSD 5.3-BETA7 i386
>Organization:
>Environment:
System: FreeBSD r14.redhate.org 5.3-BETA7 FreeBSD 5.3-BETA7 #0: Mon Oct 11 13:07:37 CEST 2004 ob at r14.redhate.org:/usr/src/sys/i386/compile/R14 i386
>Description:
BLD is a simple and efficient black list daemon
>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:
#
# bld
# bld/Makefile
# bld/pkg-descr
# bld/pkg-plist
# bld/distinfo
# bld/pkg-install
# bld/files
# bld/files/bld.sh
#
echo c - bld
mkdir -p bld > /dev/null 2>&1
echo x - bld/Makefile
sed 's/^X//' >bld/Makefile << 'END-of-bld/Makefile'
X# New ports collection makefile for: bld
X# Date created: 12 October 2004
X# Whom: ob
X#
X# $FreeBSD$
X#
X
XPORTNAME= bld
XPORTVERSION= 0.2.4
XCATEGORIES= net
XMASTER_SITES= http://www.online.redhate.org/bld/
X
XMAINTAINER= obld at r14.freenix.org
XCOMMENT= A blacklisting daemon
X
XUSE_RC_SUBR= yes
XMANCOMPRESSED= yes
XGNU_CONFIGURE= yes
X
XMAN5= bld_whitelist.conf.5 bld_acl.conf.5
XMAN8= bldsubmit.8 bld.8 bldquery.8 bldread.8
X
XSED_SCRIPT= -e 's|%%PREFIX%%|${PREFIX}|g'
XRC_DIR= ${PREFIX}/etc/rc.d
XRC_SUFX= .sh
XSED_SCRIPT+= -e 's|%%RC_SUBR%%|${RC_SUBR}|g' \
X -e 's|%%RC_DIR%%|${RC_DIR}|g' \
X -e 's|%%RC_SUFX%%|${RC_SUFX}|g'
X
Xpre-install:
X @${SETENV} PKG_PREFIX=${PREFIX} \
X ${SH} ${PKGINSTALL} ${PREFIX} PRE-INSTALL
X
Xpost-build:
X ${SED} ${SED_SCRIPT} ${FILESDIR}/bld.sh \
X >${WRKDIR}/bld.sh
X
Xpost-install:
X @${INSTALL_SCRIPT} ${WRKDIR}/bld.sh \
X ${RC_DIR}/bld${RC_SUFX}
X @${MKDIR} ${DOCSDIR}
X ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
X ./pkg-install bld POST-INSTALL
X
X.include <bsd.port.mk>
END-of-bld/Makefile
echo x - bld/pkg-descr
sed 's/^X//' >bld/pkg-descr << 'END-of-bld/pkg-descr'
XBLD stands for "black list daemon" and is intended to build blacklists
Xusing simple rules based on a maximum number of submissions of the same
XIP address during a minimum time interval. BLD was primarily designed to
Xfight against dictionnary-based spams (by making the MTA report to BLD
Xany host that tries to send a mail to an unknown user) but can be used
Xby any application that needs a blacklist based on connection rate
Xlimits.
X
XSee homepage for more infos:
X
XWWW: http://www.online.redhate.org/bld/
X
XOlivier Beyssac <obld at r14.freenix.org>
END-of-bld/pkg-descr
echo x - bld/pkg-plist
sed 's/^X//' >bld/pkg-plist << 'END-of-bld/pkg-plist'
Xsbin/bld
Xsbin/bldsubmit
Xsbin/bldread
Xsbin/bldquery
X%%PORTDOCS%%%%DOCSDIR%%/README
X at unexec rmdir /var/run/bld || (echo ; echo "Remove dumps from /var/run/bld/* if you don't want to keep them" ; echo) && true
END-of-bld/pkg-plist
echo x - bld/distinfo
sed 's/^X//' >bld/distinfo << 'END-of-bld/distinfo'
XMD5 (bld-0.2.4.tar.gz) = 5add7fcdae1344bdb9cd9349e05240b2
XSIZE (bld-0.2.4.tar.gz) = 52915
END-of-bld/distinfo
echo x - bld/pkg-install
sed 's/^X//' >bld/pkg-install << 'END-of-bld/pkg-install'
X#!/bin/sh
X
Xif [ $2 != "POST-INSTALL" ]
Xthen
X exit
Xfi
X
Xvarrun=/var/run/bld
Xuser=bld
Xgroup=bld
X
Xask() {
X local question default answer
X
X question=$1
X default=$2
X if [ -z "${PACKAGE_BUILDING}" ]; then
X read -p "${question} [${default}]? " answer
X fi
X if [ x${answer} = x ]; then
X answer=${default}
X fi
X echo ${answer}
X}
X
Xyesno() {
X local dflt question answer
X
X question=$1
X dflt=$2
X while :; do
X answer=$(ask "${question}" "${dflt}")
X case "${answer}" in
X [Yy]*) return 0;;
X [Nn]*) return 1;;
X esac
X echo "Please answer yes or no."
X done
X}
X
Xmake_account() {
X local u g gcos homeopt home
X
X u=$1
X g=$2
X gcos=$3
X homeopt=${4:+"-d $4"}
X
X if pw group show "${g}" >/dev/null 2>&1; then
X echo "You already have a group \"${g}\", so I will use it."
X else
X echo "You need a group \"${g}\"."
X if which -s pw && yesno "Would you like me to create it" y; then
X pw groupadd ${g} || exit
X echo "Done."
X else
X echo "Please create it, and try again."
X if ! grep -q "^${u}:" /etc/passwd; then
X echo "While you're at it, please create a user \"${u}\" too,"
X echo "with a default group of \"${g}\"."
X fi
X exit 1
X fi
X fi
X
X if pw user show "${u}" >/dev/null 2>&1; then
X echo "You already have a user \"${u}\", so I will use it."
X else
X echo "You need a user \"${u}\"."
X if which -s pw && yesno "Would you like me to create it" y; then
X pw useradd ${u} -g ${g} -h - ${homeopt} \
X -s /nonexistent -c "${gcos}" || exit
X echo "Done."
X else
X echo "Please create it, and try again."
X exit 1
X fi
X fi
X
X if [ x"$homeopt" = x ]; then
X eval home=~${u}
X if [ ! -d "${home}" ]; then
X if yesno \
X "Would you like me to create ${u}'s home directory (${home})" y
X then
X mkdir -p ${home}/.cvsup || exit
X touch ${home}/.cvsup/auth || exit
X chown -R ${u}:${g} ${home} || exit
X chmod -R go= ${home} || exit
X else
X echo "Please create it, and try again."
X exit 1
X fi
X fi
X fi
X}
X
Xif [ ! -d "${varrun}" ]
Xthen
X mkdir ${varrun} || exit
Xfi
X
Xecho ""
Xmake_account ${user} ${group} "Blacklist Daemon" "/nonexistent"
Xchmod 700 ${varrun}
Xchown bld ${varrun}
X
Xif grep -q "^[^#]*${facility}.*/var/log/bld.log" /etc/syslog.conf; then
X echo -n "It looks like you already have some logging set up, so I "
X echo "will use it."
Xelse
X if yesno "Would you like me to set up the bld logging" y; then
X echo "Setting up server logging in \"/etc/syslog.conf\"."
X cat <<EOF >>/etc/syslog.conf
X!bld
X*.* /var/log/bld.log
XEOF
X
X if [ ! -f /var/log/bld.log ]; then
X echo "Creating \"/var/log/bld.log\"."
X cp /dev/null /var/log/bld.log
X fi
X
X if [ -f /var/run/syslog.pid ]; then
X echo "Giving syslogd a kick in the pants."
X kill -HUP $(cat /var/run/syslog.pid)
X fi
X
X echo "Adding bld log entry to \"/etc/newsyslog.conf\"."
X cat <<EOF >>/etc/newsyslog.conf
X/var/log/bld.log 664 7 * 24 Z
XEOF
X echo "Done."
X
X else
X cat <<EOF
XOK, please remember to do it yourself. The crontab entry should run
X"${base}/update.sh" as root.
XEOF
X fi
Xfi
END-of-bld/pkg-install
echo c - bld/files
mkdir -p bld/files > /dev/null 2>&1
echo x - bld/files/bld.sh
sed 's/^X//' >bld/files/bld.sh << 'END-of-bld/files/bld.sh'
X#!/bin/sh
X
X# PROVIDE: bld
X# REQUIRE: LOGIN
X# BEFORE: mail
X# KEYWORD: FreeBSD shutdown
X
X#
X# Add the following lines to /etc/rc.conf to enable bld:
X#
X#bld_enable="YES"
X#
X# See bld(8) for flags
X#
X
X. %%RC_SUBR%%
X
Xname=bld
Xrcvar=`set_rcvar`
X
Xcommand=%%PREFIX%%/sbin/bld
Xrequired_dirs=/var/run/bld
X
X# set defaults
X
Xbld_enable=${bld_enable:-"NO"}
Xbld_flags=${bld_flags:-""}
X
Xload_rc_config $name
Xrun_rc_command "$1"
END-of-bld/files/bld.sh
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list