summaryrefslogtreecommitdiff
path: root/net/rbldnsd
diff options
context:
space:
mode:
authorcube <cube>2006-12-08 22:14:12 +0000
committercube <cube>2006-12-08 22:14:12 +0000
commit4dfa4da707530e43375768238f55702082326127 (patch)
treeddb82c596efc099db3e0450a18c98a9fc93e8edc /net/rbldnsd
parent068a01ccb61162eab61d62d57586d26ba7c414ff (diff)
downloadpkgsrc-4dfa4da707530e43375768238f55702082326127.tar.gz
Initial import of rbldnsd, version 0.996a, into the NetBSD Packages
Collection. rbldnsd is a small and fast DNS daemon which is especially made to serve DNSBL zones. This daemon was inspired by Dan J. Bernstein's rbldns program found in the djbdns package. rbldnsd is extremely fast - it outperforms both bind and djbdns greatly. It has very small memory footprint. The daemon can serve both IP-based (ordb.org, dsbl.org etc) and name-based (rfc-ignorant.org) blocklists. Unlike DJB's rbldns, it has ability to specify individual values for every entry, can serve as many zones on a single IP address as you wish, and, finally, it is a real nameserver: it can reply to DNS metadata requests. The daemon keeps all zones in memory for faster operations, but its memory usage is very efficient, especially for repeated TXT values which are stored only once.
Diffstat (limited to 'net/rbldnsd')
-rw-r--r--net/rbldnsd/DESCR14
-rw-r--r--net/rbldnsd/MESSAGE18
-rw-r--r--net/rbldnsd/Makefile43
-rw-r--r--net/rbldnsd/PLIST7
-rw-r--r--net/rbldnsd/distinfo5
-rw-r--r--net/rbldnsd/files/rbldnsd.sh44
-rw-r--r--net/rbldnsd/options.mk27
7 files changed, 158 insertions, 0 deletions
diff --git a/net/rbldnsd/DESCR b/net/rbldnsd/DESCR
new file mode 100644
index 00000000000..2e1ae22b136
--- /dev/null
+++ b/net/rbldnsd/DESCR
@@ -0,0 +1,14 @@
+rbldnsd is a small and fast DNS daemon which is especially made to serve DNSBL
+zones. This daemon was inspired by Dan J. Bernstein's rbldns program found in
+the djbdns package.
+
+rbldnsd is extremely fast - it outperforms both bind and djbdns greatly. It
+has very small memory footprint.
+
+The daemon can serve both IP-based (ordb.org, dsbl.org etc) and name-based
+(rfc-ignorant.org) blocklists. Unlike DJB's rbldns, it has ability to specify
+individual values for every entry, can serve as many zones on a single IP
+address as you wish, and, finally, it is a real nameserver: it can reply to DNS
+metadata requests. The daemon keeps all zones in memory for faster operations,
+but its memory usage is very efficient, especially for repeated TXT values
+which are stored only once.
diff --git a/net/rbldnsd/MESSAGE b/net/rbldnsd/MESSAGE
new file mode 100644
index 00000000000..0c05a9df2c0
--- /dev/null
+++ b/net/rbldnsd/MESSAGE
@@ -0,0 +1,18 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+
+rbldnsd doesn't have a configuration file and requires a certain number of
+parameters on its command line.
+
+In rc.conf, you will have to set the following variables to sensible
+values:
+
+ - rbldnsd_zones: the list of managed zones, following the syntax
+ described by rbldnsd(8).
+
+ - rbldnsd_flags: at least one occurrence of -b is required.
+
+ - rbldnsd_chrootdir: while optional, this option is strongly
+ recommended.
+
+===========================================================================
diff --git a/net/rbldnsd/Makefile b/net/rbldnsd/Makefile
new file mode 100644
index 00000000000..c810eae0d1b
--- /dev/null
+++ b/net/rbldnsd/Makefile
@@ -0,0 +1,43 @@
+# $NetBSD: Makefile,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+#
+
+DISTNAME= rbldnsd_0.996a
+PKGNAME= ${DISTNAME:S/_/-/}
+CATEGORIES= net
+MASTER_SITES= http://www.corpit.ru/mjt/rbldnsd/
+
+MAINTAINER= cube@NetBSD.org
+HOMEPAGE= http://www.corpit.ru/mjt/rbldnsd/
+COMMENT= Efficient DNS daemon to serve DNSBL zones
+
+WRKSRC= ${WRKDIR}/rbldnsd-0.996a
+HAS_CONFIGURE= yes
+
+.include "../../mk/bsd.prefs.mk"
+
+BUILD_DEFS+= RBLDNSD_USER RBLDNSD_GROUP RBLDNSD_DIR VARBASE
+
+RBLDNSD_USER?= rbldns
+RBLDNSD_GROUP?= rbldns
+RBLDNSD_DIR?= ${VARBASE}/chroot/rbldnsd
+
+PKG_GROUPS= ${RBLDNSD_GROUP}
+PKG_USERS= ${RBLDNSD_USER}:${RBLDNSD_GROUP}
+PKG_HOME.${RBLDNSD_USER}= ${RBLDNSD_DIR}
+
+FILES_SUBST+= RBLDNSD_USER=${RBLDNSD_USER} RBLDNSD_GROUP=${RBLDNSD_GROUP}
+RCD_SCRIPTS= rbldnsd
+
+.include "options.mk"
+
+RBLDNSD_DOCS= NEWS README.user
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/rbldnsd ${PREFIX}/sbin/
+ ${INSTALL_MAN} ${WRKSRC}/rbldnsd.8 ${PREFIX}/${PKGMANDIR}/man8/
+ ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/rbldnsd
+ set -e; for doc in ${RBLDNSD_DOCS}; do \
+ ${INSTALL_DATA} ${WRKSRC}/"$$doc" ${PREFIX}/share/doc/rbldnsd/; \
+ done
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/rbldnsd/PLIST b/net/rbldnsd/PLIST
new file mode 100644
index 00000000000..96aa103743f
--- /dev/null
+++ b/net/rbldnsd/PLIST
@@ -0,0 +1,7 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+${PKGMANDIR}/man8/rbldnsd.8
+sbin/rbldnsd
+share/doc/rbldnsd/NEWS
+share/doc/rbldnsd/README.user
+share/examples/rc.d/rbldnsd
+@dirrm share/doc/rbldnsd
diff --git a/net/rbldnsd/distinfo b/net/rbldnsd/distinfo
new file mode 100644
index 00000000000..cbc35ecfcc7
--- /dev/null
+++ b/net/rbldnsd/distinfo
@@ -0,0 +1,5 @@
+$NetBSD: distinfo,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+
+SHA1 (rbldnsd_0.996a.tar.gz) = 7630069156aeff4432a066bc9e292fa4fab6dd92
+RMD160 (rbldnsd_0.996a.tar.gz) = b44a61ba9df55ff43df4283ac0632c8c61f930e4
+Size (rbldnsd_0.996a.tar.gz) = 112339 bytes
diff --git a/net/rbldnsd/files/rbldnsd.sh b/net/rbldnsd/files/rbldnsd.sh
new file mode 100644
index 00000000000..f4478ab315c
--- /dev/null
+++ b/net/rbldnsd/files/rbldnsd.sh
@@ -0,0 +1,44 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: rbldnsd.sh,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+#
+
+# PROVIDE: rbldnsd
+# REQUIRE: SERVERS
+# BEFORE: DAEMON
+# KEYWORD: chrootdir
+
+. /etc/rc.subr
+
+name="rbldnsd"
+rcvar="${name}"
+command="@PREFIX@/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+start_precmd="rbldnsd_precmd"
+extra_commands="reload"
+required_dirs="$rbldnsd_chrootdir"
+
+rbldnsd_precmd()
+{
+ if [ -z "$rbldnsd_zones" ]; then
+ echo "rbldnsd_zones must be set."
+ return 1
+ fi
+
+ command_args="-p ${pidfile} ${rbldnsd_zones}"
+
+ if [ -z "$rbldnsd_chrootdir" ]; then
+ return 0;
+ fi
+
+ if [ -f /etc/localtime ]; then
+ @CMP@ -s /etc/localtime "${rbldnsd_chrootdir}/etc/localtime" || \
+ @CP@ -p /etc/localtime "${rbldnsd_chrootdir}/etc/localtime"
+ fi
+
+ command_args="-u @RBLDNSD_USER@:@RBLDNSD_GROUP@ ${command_args}"
+ command_args="-r ${rbldnsd_chrootdir} ${command_args}"
+}
+
+load_rc_config "$rcvar"
+run_rc_command "$1"
diff --git a/net/rbldnsd/options.mk b/net/rbldnsd/options.mk
new file mode 100644
index 00000000000..c07259d10a2
--- /dev/null
+++ b/net/rbldnsd/options.mk
@@ -0,0 +1,27 @@
+# $NetBSD: options.mk,v 1.1.1.1 2006/12/08 22:14:12 cube Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.rbldnsd
+PKG_SUPPORTED_OPTIONS= inet6 rbldnsd-master-dump zlib
+
+PKG_SUGGESTED_OPTIONS= inet6
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.else
+CONFIGURE_ARGS+= --disable-ipv6
+.endif
+
+.if !empty(PKG_OPTIONS:Mzlib)
+CONFIGURE_ARGS+= --enable-zlib
+.include "../../devel/zlib/buildlink3.mk"
+.else
+CONFIGURE_ARGS+= --disable-zlib
+.endif
+
+.if !empty(PKG_OPTIONS:Mrbldnsd-master-dump)
+CONFIGURE_ARGS+= --enable-master-dump
+.else
+CONFIGURE_ARGS+= --disable-master-dump
+.endif