Date: Tue, 29 Apr 2008 14:25:19 +0200 (CEST) From: Jaap Akkerhuis <jaap@NLnetLabs.nl> To: FreeBSD-gnats-submit@FreeBSD.org Cc: jaap@NLnetLabs.nl Subject: ports/123212: New port: dns/unbound Unbound is a validating, recursive, and caching DNS resolver Message-ID: <200804291225.m3TCPJgd082551@bartok.nlnetlabs.nl> Resent-Message-ID: <200804291230.m3TCU4a6097854@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 123212 >Category: ports >Synopsis: New port: dns/unbound Unbound is a validating, recursive, and caching DNS resolver >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Apr 29 12:30:04 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Jaap Akkerhuis >Release: FreeBSD 7.0-STABLE i386 >Organization: NLnet Labs >Environment: System: FreeBSD bartok.nlnetlabs.nl 7.0-STABLE FreeBSD 7.0-STABLE #61: Mon Apr 28 10:21:28 CEST 2008 root@bartok.nlnetlabs.nl:/usr/obj/usr/src/sys/BARTOK i386 >Description: Unbound is a validating, recursive, and caching DNS resolver >How-To-Repeat: >Fix: --- shar begins here --- # 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: # # unbound # unbound/Makefile # unbound/pkg-message # unbound/pkg-install # unbound/pkg-descr # unbound/pkg-deinstall # unbound/distinfo # unbound/files # unbound/files/unbound.in # echo c - unbound mkdir -p unbound > /dev/null 2>&1 echo x - unbound/Makefile sed 's/^X//' >unbound/Makefile << 'END-of-unbound/Makefile' X# New ports collection makefile for: unbound X# Date created: 24 April 2008 X# Whom: Jaap Akkerhuis <jaap@NLnetLabs.nl> X# X# $FreeBSD$ X# X XPORTNAME= unbound XPORTVERSION= 0.11 XCATEGORIES= dns XMASTER_SITES= http://unbound.net/downloads/ X XMAINTAINER= jaap@NLnetLabs.nl XCOMMENT= Unbound is a validating, recursive, and caching DNS resolver X XMAN1= unbound-host.1 XMAN3= libunbound.3 XMAN5= unbound.conf.5 XMAN8= unbound.8 unbound-checkconf.8 X XMANCOMPRESSED= no X XWRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} XUSE_GMAKE= yes XHAS_CONFIGURE= yes XCONFIGURE_ARGS= --prefix=${PREFIX} --mandir=${PREFIX}/man X XUSE_RC_SUBR= ${PORTNAME} X Xpre-install: X @PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} PRE-INSTALL X Xpost-install: X @${CAT} ${PKGMESSAGE} | ${SED} s,%%PREFIX%%,${PREFIX}, X @${PREFIX}/sbin/unbound-checkconf X XPLIST_FILES= sbin/unbound \ X sbin/unbound-checkconf \ X sbin/unbound-host \ X lib/libunbound.la \ X lib/libunbound.so \ X lib/libunbound.a \ X include/unbound.h X XPLIST_DIRS= etc/unbound X X.include <bsd.port.mk> END-of-unbound/Makefile echo x - unbound/pkg-message sed 's/^X//' >unbound/pkg-message << 'END-of-unbound/pkg-message' X********************************************************************* X* X* To have syslog work properly you should add to syslogd the arguments: X* "-l %%PREFIX%%/etc/unbound/var/run/log" X* (without the quotes) and restart syslogd X* X********************************************************************* END-of-unbound/pkg-message echo x - unbound/pkg-install sed 's/^X//' >unbound/pkg-install << 'END-of-unbound/pkg-install' X#! /bin/sh X# X# create account, group, etc. X# shamelessly stolen from /usr/ports/sysutil/munin-main/pkg-install X# X Xask() { X local question default answer X X question=$1 X default=$2 X if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; 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 X X u=$1 X g=$2 X gcos=$3 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 ! /usr/sbin/pw user show ${u} >/dev/null 2>/dev/null; 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 - \ X -s /usr/sbin/nologin -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 X######################################################################## X Xcase $2 in X PRE-INSTALL) X make_account unbound unbound "Unbound owner" X ;; Xesac END-of-unbound/pkg-install echo x - unbound/pkg-descr sed 's/^X//' >unbound/pkg-descr << 'END-of-unbound/pkg-descr' XUnbound is a validating, recursive, and caching DNS resolver. X XThe C implementation of Unbound is developed and maintained by NLnet XLabs. It is based on ideas and algorithms taken from a java prototype Xdeveloped by Verisign labs, Nominet, Kirei and ep.net. X XUnbound is designed as a set of modular components, so that also XDNSSEC (secure DNS) validation and stub-resolvers (that do not run Xas a server, but are linked into an application) are easily possible. X XThe source code is under a BSD License. X XWWW: http://unbound.net/ END-of-unbound/pkg-descr echo x - unbound/pkg-deinstall sed 's/^X//' >unbound/pkg-deinstall << 'END-of-unbound/pkg-deinstall' X#! /bin/sh X# X# create account, group, etc. X# shamelessly stolen from /usr/ports/sysutil/munin-main/pkg-install X# X X# Don not blindly remove account, we might be X# updating existing system (and configuration) X Xask() { X local question default answer X X question=$1 X default=$2 X if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; 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 Xdelete_account() { X local u g home X X u=$1 X g=$2 X if pw group show ${g} > /dev/null 2>&1; then X if yesno "Do you want me to remove group \"${g}\"" n; then X pw group del -n ${g} X echo "Done." X else X GID=`pw group show ${g} | awk -F: '{ print $3 }'` X fi X fi X if pw user show ${u} > /dev/null 2>&1; then X if yesno "Do you want me to remove user \"${u}\"" n; then X eval home=~${u} X pw user del -n ${u} -r X echo "Done." X if [ -d "${home}" ]; then X echo "Please remember to remove the home directory \"${home}\"" X fi X X # pw user del may have removed the group, too. X # Put it back if the admin asked us to retain it. X if [ -n "$GID" ]; then X pw group show ${g} > /dev/null 2>&1 X if [ $? -ne 0 ]; then X pw group add ${g} X fi X fi X fi X fi X} X X####################################################################### X Xcase $2 in X POST-DEINSTALL) X delete_account unbound unbound X ;; Xesac END-of-unbound/pkg-deinstall echo x - unbound/distinfo sed 's/^X//' >unbound/distinfo << 'END-of-unbound/distinfo' XMD5 (unbound-0.11.tar.gz) = 2d698050a9ffd492b0abd37b5000680f XSHA256 (unbound-0.11.tar.gz) = f6c44ccae56398273c1f03485f2e2b8e4b612663d501d89c82c8cf9f23422d9f XSIZE (unbound-0.11.tar.gz) = 3543955 END-of-unbound/distinfo echo c - unbound/files mkdir -p unbound/files > /dev/null 2>&1 echo x - unbound/files/unbound.in sed 's/^X//' >unbound/files/unbound.in << 'END-of-unbound/files/unbound.in' X#!/bin/sh X X# PROVIDE: unbound X# REQUIRE: SERVERS X# BEFORE: DAEMON X# KEYWORD: shutdown X Xprefix=%%PREFIX%% X X# Set unbound_enable="YES" in one of these files: X# /etc/rc.conf X# /etc/rc.conf.local X# /etc/rc.conf.d/unbound X# X# DO NOT CHANGE THESE DEFAULT VALUES HERE X# X X. %%RC_SUBR%% X Xname="unbound" Xrcvar=`set_rcvar` X X# %%PREFIX%% X: unbound_enable=${unbound_enable:="NO"} X Xcommand="%%PREFIX%%/sbin/unbound" X Xstart_precmd="unbound_start" Xstop_postcmd="unbound_stop" Xextra_commands="reload" X X: ${unbound_dir:="%%PREFIX%%/etc/unbound/"} Xpidfile="${unbound_dir}/unbound.pid" X Xunbound_start() X{ X /bin/test -d "${unbound_dir}" || /bin/mkdir "${unbound_dir}" X /sbin/umount "${unbound_dir}/dev" 2>/dev/null X X /usr/sbin/mtree -deU -p "${unbound_dir}" <<EOF X X /set type=dir uname=root gname=wheel mode=0755 X . uname=unbound mode=755 X dev X .. X etc X .. X var X run X .. X .. X .. XEOF X X if ! /sbin/mount -t devfs dev "${unbound_dir}/dev"; then X echo "Mounting devfs on ${unbound_dir}/dev failed..." X exit 1 X fi X X /sbin/devfs -m "${unbound_dir}/dev" rule apply hide X /sbin/devfs -m "${unbound_dir}/dev" rule apply path null unhide X /sbin/devfs -m "${unbound_dir}/dev" rule apply path random unhide X X for i in /etc/localtime /etc/resolv.conf; do X j="${unbound_dir}${i}" X if /bin/test -r "$i" && ! /usr/bin/cmp -s "$i" "$j"; then X /usr/bin/install -m 444 -o root -g wheel -p "$i" "$j" X fi X done X} X Xunbound_stop() X{ X /sbin/umount "${unbound_dir}/dev" X} X Xload_rc_config $name Xrun_rc_command "$1" END-of-unbound/files/unbound.in exit --- shar ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804291225.m3TCPJgd082551>