New port: dns/knot high-performance auth-only DNS server by NIC-CZ

PR:		ports/165798
Submitted by:	Leo Vandewoestijne <freebsd@dns-lab.com>
Approved by:	Leo Vandewoestijne <freebsd@dns-lab.com> (maintainer)
Feature safe:	yes
This commit is contained in:
Michael Scheidell 2012-03-14 21:41:59 +00:00
parent dd82b2083c
commit 14622161b7
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=293325
7 changed files with 173 additions and 0 deletions

View File

@ -60,6 +60,7 @@
SUBDIR += idnkit2 SUBDIR += idnkit2
SUBDIR += inadyn SUBDIR += inadyn
SUBDIR += ipcheck SUBDIR += ipcheck
SUBDIR += knot
SUBDIR += ldapdns SUBDIR += ldapdns
SUBDIR += ldns SUBDIR += ldns
SUBDIR += ldnsm SUBDIR += ldnsm

49
dns/knot/Makefile Normal file
View File

@ -0,0 +1,49 @@
# New ports collection makefile for: knot
# Date created: 29 February 2012
# Whom: Leo Vandewoestijne <freebsd@dns-lab.com>
#
# $FreeBSD$
#
PORTNAME= knot
PORTVERSION= 1.0.1
CATEGORIES= dns ipv6
MASTER_SITES= http://public.nic.cz/files/knot-dns/ \
http://www.dns-lab.com/downloads/knot-dns/
MAINTAINER= freebsd@dns-lab.com
COMMENT= Knot DNS is a high performance authoritative-only DNS server
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= bison:${PORTSDIR}/devel/bison \
flex>=2.5.35_1:${PORTSDIR}/textproc/flex
LIB_DEPENDS= urcu.1:${PORTSDIR}/sysutils/userspace-rcu
CONFIGURE_ARGS= --sysconfdir=${ETCDIR}
GNU_CONFIGURE= yes
USE_AUTOTOOLS= libtool
USE_OPENSSL= yes
SUB_FILES= pkg-message
USE_RC_SUBR= ${PORTNAME}d
MAN8= knotc.8 knotd.8
PORTDOCS= AUTHORS ChangeLog CodingStyle COPYING \
INSTALL KNOWN_ISSUES NEWS README RELNOTES
post-install:
@${MKDIR} ${ETCDIR}
@${INSTALL_DATA} ${WRKSRC}/samples/knot.min.conf ${ETCDIR}
@if [ ! -f ${ETCDIR}/knot.conf ]; then \
${INSTALL_DATA} ${ETCDIR}/knot.min.conf ${ETCDIR}/knot.conf; \
fi
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
@${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${DOCSDIR}/
.endif
.include <bsd.port.mk>

2
dns/knot/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (knot-1.0.1.tar.gz) = 0c18dd3c72a1d2df7708d45c638c83cf8a7a5b7ceafdb7c3350bebb2ca258f93
SIZE (knot-1.0.1.tar.gz) = 1052858

56
dns/knot/files/knotd.in Normal file
View File

@ -0,0 +1,56 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: knot
# REQUIRE: SERVERS cleanvar
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable knot:
#
# knot_enable="YES": Set to NO by default.
# Set it to YES to enable knot.
# knot_config="": Set to %%PREFIX%%/etc/knot/knot.conf
# by default.
. /etc/rc.subr
name=knot
rcvar=knot_enable
extra_commands="reload compile"
compile_cmd="${name}_compile"
reload_cmd="${name}_reload"
start_precmd="${name}_compile"
status_cmd="${name}_status"
stop_cmd="${name}_stop"
load_rc_config ${name}
: ${knot_enable:="NO"}
: ${knot_config="%%PREFIX%%/etc/knot/knot.conf"}
command=%%PREFIX%%/sbin/${name}c
procname=%%PREFIX%%/sbin/${name}d
pidfile=/var/run/${name}.pid
command_args="-c ${knot_config} -w start"
required_files=${knot_config}
knot_compile() {
echo "Compiling zone(s)..."
${command} -c ${knot_config} compile
}
knot_reload() {
echo "Reloading ${name}."
${command} -c ${knot_config} -a reload
}
knot_status() {
${command} -c ${knot_config} running
}
knot_stop() {
echo "Stopping ${name}."
${command} -c ${knot_config} stop
}
run_rc_command "$1"

View File

@ -0,0 +1,29 @@
####################################################################
#
# To start using Knot DNS, you should complete the following tasks:
#
# ----- configure --------------------------------------------------
#
$EDITOR %%PREFIX%%/etc/knot/knot.conf
#
# For all option have a look at the contents of
# %%PREFIX%%/etc/knot/knot.sample.conf
#
# For example, under "system" you might like to add
# user "bind.bind";
# to not have knotd run as root/wheel
#
# ----- prepare ----------------------------------------------------
#
# required:
echo knot_enable=\"YES\" >> /etc/rc.conf
# for customization if desired:
# echo knot_config=\"%%PREFIX%%/etc/knot/knot.conf" >> /etc/rc.conf
#
# ----- startup ----------------------------------------------------
#
%%PREFIX%%/etc/rc.d/knot start
#
####################################################################

20
dns/knot/pkg-descr Normal file
View File

@ -0,0 +1,20 @@
Knot DNS is a high-performance authoritative-only DNS server
which supports all key features of the domain name system
including zone transfers, dynamic updates and DNSSEC.
Key features:
- Open source
- High-performance, multi-threaded, and mostly
lock-free implementation which scales well on SMPs
- Object-oriented design
- Support for all important DNS protocols:
- Full and incremental zone transfers
- EDNS0 and DNSSEC extensions, including NSEC3
- NSID
WWW: http://www.knot-dns.cz/

16
dns/knot/pkg-plist Normal file
View File

@ -0,0 +1,16 @@
@comment $FreeBSD$
@stopdaemon knotd
%%ETCDIR%%/example.com.zone
@unexec if cmp -s %B/knot.min.conf %B/knot.conf; then rm -f %B/knot.conf; fi
%%ETCDIR%%/knot.min.conf
@exec [ -f %B/knot.conf ] || cp %B/%f %B/knot.conf
%%ETCDIR%%/knot.sample.conf
libexec/knot-zcompile
libexec/unittests
libexec/unittests-libknot
libexec/unittests-libknot-realdata
libexec/unittests-xfr
libexec/unittests-zcompile
sbin/knotc
sbin/knotd
@dirrmtry %%ETCDIR%%