summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/Makefile1
-rw-r--r--net/bld/Makefile46
-rw-r--r--net/bld/distinfo2
-rw-r--r--net/bld/files/bld.sh30
-rw-r--r--net/bld/pkg-descr13
-rw-r--r--net/bld/pkg-install112
-rw-r--r--net/bld/pkg-plist7
7 files changed, 211 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index 6b5f861f8ba0..a8736231e507 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -41,6 +41,7 @@
SUBDIR += bfilter
SUBDIR += bing
SUBDIR += binkd
+ SUBDIR += bld
SUBDIR += bmon
SUBDIR += bnbt
SUBDIR += boclient
diff --git a/net/bld/Makefile b/net/bld/Makefile
new file mode 100644
index 000000000000..2639cb1821d1
--- /dev/null
+++ b/net/bld/Makefile
@@ -0,0 +1,46 @@
+# New ports collection makefile for: bld
+# Date created: 12 October 2004
+# Whom: ob
+#
+# $FreeBSD$
+#
+
+PORTNAME= bld
+PORTVERSION= 0.2.4
+CATEGORIES= net
+MASTER_SITES= http://www.online.redhate.org/bld/
+
+MAINTAINER= obld@r14.freenix.org
+COMMENT= A blacklisting daemon
+
+USE_RC_SUBR= yes
+MANCOMPRESSED= yes
+GNU_CONFIGURE= yes
+
+PORTDOCS= README
+MAN5= bld_whitelist.conf.5 bld_acl.conf.5
+MAN8= bldsubmit.8 bld.8 bldquery.8 bldread.8
+
+SED_SCRIPT= -e 's|%%PREFIX%%|${PREFIX}|g'
+RC_DIR= ${PREFIX}/etc/rc.d
+RC_SUFX= .sh
+SED_SCRIPT+= -e 's|%%RC_SUBR%%|${RC_SUBR}|g' \
+ -e 's|%%RC_DIR%%|${RC_DIR}|g' \
+ -e 's|%%RC_SUFX%%|${RC_SUFX}|g'
+
+post-build:
+ ${SED} ${SED_SCRIPT} ${FILESDIR}/bld.sh \
+ >${WRKDIR}/bld.sh
+
+post-install:
+.if !defined(NOPORTDOCS)
+ @${MKDIR} ${DOCSDIR}
+.for doc in ${PORTDOCS}
+ ${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR}
+.endfor
+.endif
+ @${INSTALL_SCRIPT} ${WRKDIR}/bld.sh \
+ ${RC_DIR}/bld${RC_SUFX}
+ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+
+.include <bsd.port.mk>
diff --git a/net/bld/distinfo b/net/bld/distinfo
new file mode 100644
index 000000000000..006a1901a46d
--- /dev/null
+++ b/net/bld/distinfo
@@ -0,0 +1,2 @@
+MD5 (bld-0.2.4.tar.gz) = 5add7fcdae1344bdb9cd9349e05240b2
+SIZE (bld-0.2.4.tar.gz) = 52915
diff --git a/net/bld/files/bld.sh b/net/bld/files/bld.sh
new file mode 100644
index 000000000000..b0371b5de11b
--- /dev/null
+++ b/net/bld/files/bld.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+# PROVIDE: bld
+# REQUIRE: LOGIN
+# BEFORE: mail
+# KEYWORD: FreeBSD shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable bld:
+#
+#bld_enable="YES"
+#
+# See bld(8) for flags
+#
+
+. %%RC_SUBR%%
+
+name=bld
+rcvar=`set_rcvar`
+
+command=%%PREFIX%%/sbin/bld
+required_dirs=/var/run/bld
+
+# set defaults
+
+bld_enable=${bld_enable:-"NO"}
+bld_flags=${bld_flags:-""}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/net/bld/pkg-descr b/net/bld/pkg-descr
new file mode 100644
index 000000000000..94496f279688
--- /dev/null
+++ b/net/bld/pkg-descr
@@ -0,0 +1,13 @@
+BLD stands for "black list daemon" and is intended to build blacklists
+using simple rules based on a maximum number of submissions of the same
+IP address during a minimum time interval. BLD was primarily designed to
+fight against dictionnary-based spams (by making the MTA report to BLD
+any host that tries to send a mail to an unknown user) but can be used
+by any application that needs a blacklist based on connection rate
+limits.
+
+See homepage for more infos:
+
+WWW: http://www.online.redhate.org/bld/
+
+Olivier Beyssac <obld@r14.freenix.org>
diff --git a/net/bld/pkg-install b/net/bld/pkg-install
new file mode 100644
index 000000000000..b857c55b1b33
--- /dev/null
+++ b/net/bld/pkg-install
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+if [ $2 != "POST-INSTALL" ]
+then
+ exit
+fi
+
+varrun=/var/run/bld
+user=bld
+group=bld
+
+ask() {
+ local question default answer
+
+ question=$1
+ default=$2
+ if [ -z "${PACKAGE_BUILDING}" ]; then
+ read -p "${question} [${default}]? " answer
+ fi
+ if [ x${answer} = x ]; then
+ answer=${default}
+ fi
+ echo ${answer}
+}
+
+yesno() {
+ local dflt question answer
+
+ question=$1
+ dflt=$2
+ while :; do
+ answer=$(ask "${question}" "${dflt}")
+ case "${answer}" in
+ [Yy]*) return 0;;
+ [Nn]*) return 1;;
+ esac
+ echo "Please answer yes or no."
+ done
+}
+
+make_account() {
+ local u g gcos homeopt home
+
+ u=$1
+ g=$2
+ gcos=$3
+ homeopt=${4:+"-d $4"}
+
+ if pw group show "${g}" >/dev/null 2>&1; then
+ echo "You already have a group \"${g}\", so I will use it."
+ else
+ echo "You need a group \"${g}\"."
+ pw groupadd ${g} || exit
+ echo "Done."
+ fi
+
+ if pw user show "${u}" >/dev/null 2>&1; then
+ echo "You already have a user \"${u}\", so I will use it."
+ else
+ echo "You need a user \"${u}\"."
+ pw useradd ${u} -g ${g} -h - ${homeopt} \
+ -s /nonexistent -c "${gcos}" || exit
+ echo "Done."
+ fi
+
+ if [ x"$homeopt" = x ]; then
+ eval home=~${u}
+ if [ ! -d "${home}" ]; then
+ mkdir -p ${home}/.cvsup || exit
+ touch ${home}/.cvsup/auth || exit
+ chown -R ${u}:${g} ${home} || exit
+ chmod -R go= ${home} || exit
+ fi
+ fi
+}
+
+if [ ! -d "${varrun}" ]
+then
+ mkdir ${varrun} || exit
+fi
+
+echo ""
+make_account ${user} ${group} "Blacklist Daemon" "/nonexistent"
+chmod 700 ${varrun}
+chown bld ${varrun}
+
+if grep -q "^[^#]*${facility}.*/var/log/bld.log" /etc/syslog.conf; then
+ echo -n "It looks like you already have some logging set up, so I "
+ echo "will use it."
+else
+ echo "Setting up server logging in \"/etc/syslog.conf\"."
+ cat <<EOF >>/etc/syslog.conf
+!bld
+*.* /var/log/bld.log
+EOF
+
+ if [ ! -f /var/log/bld.log ]; then
+ echo "Creating \"/var/log/bld.log\"."
+ cp /dev/null /var/log/bld.log
+ fi
+
+ if [ -f /var/run/syslog.pid ]; then
+ echo "Giving syslogd a kick in the pants."
+ kill -HUP $(cat /var/run/syslog.pid)
+ fi
+
+ echo "Adding bld log entry to \"/etc/newsyslog.conf\"."
+ cat <<EOF >>/etc/newsyslog.conf
+/var/log/bld.log 664 7 * 24 Z
+EOF
+ echo "Done."
+fi
diff --git a/net/bld/pkg-plist b/net/bld/pkg-plist
new file mode 100644
index 000000000000..196f7dd2d6f1
--- /dev/null
+++ b/net/bld/pkg-plist
@@ -0,0 +1,7 @@
+sbin/bld
+sbin/bldsubmit
+sbin/bldread
+sbin/bldquery
+etc/rc.d/bld.sh
+%%PORTDOCS%%@unexec %D/%%DOCSDIR%% 2>/dev/null || true
+@unexec rmdir /var/run/bld || (echo ; echo "Remove dumps from /var/run/bld/* if you don't want to keep them" ; echo) && true