diff --git a/dns/Makefile b/dns/Makefile index ccb7a13b1ea3..df42ad8993d6 100644 --- a/dns/Makefile +++ b/dns/Makefile @@ -70,6 +70,7 @@ SUBDIR += ipcheck SUBDIR += ironsides SUBDIR += knot + SUBDIR += knot2 SUBDIR += ldapdns SUBDIR += ldns SUBDIR += ldnsm diff --git a/dns/knot2/Makefile b/dns/knot2/Makefile new file mode 100644 index 000000000000..2a9ab2f7462e --- /dev/null +++ b/dns/knot2/Makefile @@ -0,0 +1,73 @@ +# Created by: Leo Vandewoestijne +# $FreeBSD$ + +PORTNAME= knot +DISTVERSION= 2.0.0-beta +CATEGORIES= dns ipv6 +MASTER_SITES= https://secure.nic.cz/files/knot-dns/ \ + http://dns-lab.com/downloads/knot-dns/ +PKGNAMESUFFIX= 2 + +MAINTAINER= freebsd@dns-lab.com +COMMENT= High performance authoritative-only DNS server + +LICENSE= GPLv3 + +LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls \ + libjansson.so:${PORTSDIR}/devel/jansson \ + liblmdb.so:${PORTSDIR}/databases/lmdb \ + libnettle.so:${PORTSDIR}/security/nettle \ + liburcu.so:${PORTSDIR}/sysutils/liburcu + +CONFLICTS= knot-1.* knot1-[0-6].* + +USES= alias libtool pkgconfig tar:xz +USE_LDCONFIG= yes + +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --with-rundir=/var/run/knot \ + --with-storage=/var/db/knot \ + --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig + +.if defined(BATCH) || defined(PACKAGE_BUILDING) +CONFIGURE_ARGS+= --disable-silent-rules +.endif + +INSTALL_TARGET= install-strip + +USE_RC_SUBR= ${PORTNAME} +SUB_FILES= pkg-message + +USERS= knot +GROUPS= knot +SUB_LIST+= USERS="${USERS}" GROUPS="${GROUPS}" + +PORTDOCS= AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS + +OPTIONS_DEFINE= DNSTAP FASTPARSER IDN + +DNSTAP_DESC= dnstap support (see dnstap.info) +DNSTAP_CONFIGURE_ENABLE= dnstap +DNSTAP_LIB_DEPENDS= libfstrm.so:${PORTSDIR}/devel/fstrm \ + libprotobuf-c.so:${PORTSDIR}/devel/protobuf-c + +FASTPARSER_DESC= Fast zone parser (demanding compilation) +FASTPARSER_CONFIGURE_ENABLE= fastparser + +IDN_CONFIGURE_WITH= libidn +IDN_LIB_DEPENDS= libidn.so:${PORTSDIR}/dns/libidn + +post-patch: + @${REINPLACE_CMD} 's|$$(INSTALL) -d $$(DESTDIR)/\@run_dir\@|#$$(INSTALL) -d $$(DESTDIR)/\@run_dir\@|' \ + ${WRKSRC}/src/Makefile.in + @${REINPLACE_CMD} 's|$$(INSTALL) -d $$(DESTDIR)/\@storage_dir\@|#$$(INSTALL) -d $$(DESTDIR)/\@storage_dir\@|' \ + ${WRKSRC}/src/Makefile.in + @${RM} -rf ${WRKSRC}/src/zscanner/scanner.c + +post-install: + ${MV} ${STAGEDIR}${ETCDIR}/knot.sample.conf \ + ${STAGEDIR}${ETCDIR}/knot.conf.sample + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ + +.include diff --git a/dns/knot2/distinfo b/dns/knot2/distinfo new file mode 100644 index 000000000000..74855a826156 --- /dev/null +++ b/dns/knot2/distinfo @@ -0,0 +1,2 @@ +SHA256 (knot-2.0.0-beta.tar.xz) = 7ed997d15b523abcaede51d7ce3670a687d7658b96eb742b9dd87ac5d3e0e9af +SIZE (knot-2.0.0-beta.tar.xz) = 939468 diff --git a/dns/knot2/files/knot.in b/dns/knot2/files/knot.in new file mode 100644 index 000000000000..51d0672bd66c --- /dev/null +++ b/dns/knot2/files/knot.in @@ -0,0 +1,54 @@ +#!/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 /usr/local/etc/knot/knot.conf +# by default. + +. /etc/rc.subr + +name=knot +rcvar=knot_enable + +load_rc_config ${name} + +: ${knot_enable:=NO} +: ${knot_config="%%PREFIX%%/etc/knot/knot.conf"} + +command=%%PREFIX%%/sbin/knotd +command_args="-c ${knot_config} -d" +control=%%PREFIX%%/sbin/knotc +pidfile=/var/run/knot/knot.pid + +required_files=${knot_config} + +extra_commands=reload +reload_cmd="${name}_reload" +start_precmd="${name}_prestart" + +knot_prestart() +{ + if [ ! -d /var/run/knot ]; then + install -d -o %%USERS%% -g %%GROUPS%% /var/run/knot + fi + if [ ! -d /var/db/knot ]; then + install -d -o %%USERS%% -g %%GROUPS%% /var/db/knot + fi + ${control} -c ${knot_config} checkconf +} + +knot_reload() +{ + echo "Reloading ${name}." + ${control} -c ${knot_config} reload +} + +run_rc_command "$1" diff --git a/dns/knot2/files/pkg-message.in b/dns/knot2/files/pkg-message.in new file mode 100644 index 000000000000..35557a5d1898 --- /dev/null +++ b/dns/knot2/files/pkg-message.in @@ -0,0 +1,17 @@ +###################################################################### + + To start using Knot DNS, you should complete the following tasks: + + cp %%ETCDIR%%/knot.conf.sample %%ETCDIR%%/knot.conf + $EDITOR %%ETCDIR%%/knot.conf + sysrc knot_enable=YES + sysrc knot_config=%%ETCDIR%%/knot.conf + service knot start + + Traditional (pre-FreeBSD 9.2) method, for last three commands: + + echo knot_enable=\"YES\" >> /etc/rc.conf + echo knot_config=\"%%PREFIX%%/etc/knot/knot.conf\" >> /etc/rc.conf + %%PREFIX%%/etc/rc.d/knot start + +###################################################################### diff --git a/dns/knot2/pkg-descr b/dns/knot2/pkg-descr new file mode 100644 index 000000000000..578048306912 --- /dev/null +++ b/dns/knot2/pkg-descr @@ -0,0 +1,14 @@ +Knot DNS is a high-performance authoritative-only DNS server which +supports all key features of the domain name system including zone +AXFR and IXFR, DDNS and DNSSEC. Its 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/ diff --git a/dns/knot2/pkg-plist b/dns/knot2/pkg-plist new file mode 100644 index 000000000000..0843db9dc51c --- /dev/null +++ b/dns/knot2/pkg-plist @@ -0,0 +1,118 @@ +%%ETCDIR%%/example.com.zone +@sample %%ETCDIR%%/knot.conf.sample +bin/kdig +bin/khost +bin/knot1to2 +bin/knsec3hash +bin/knsupdate +include/dnssec/binary.h +include/dnssec/crypto.h +include/dnssec/error.h +include/dnssec/event.h +include/dnssec/kasp.h +include/dnssec/key.h +include/dnssec/keyid.h +include/dnssec/keystore.h +include/dnssec/keytag.h +include/dnssec/list.h +include/dnssec/nsec.h +include/dnssec/random.h +include/dnssec/sign.h +include/dnssec/tsig.h +include/libknot/binary.h +include/libknot/consts.h +include/libknot/descriptor.h +include/libknot/dname.h +include/libknot/dnssec/key.h +include/libknot/errcode.h +include/libknot/internal/array-sort.h +include/libknot/internal/base32hex.h +include/libknot/internal/base64.h +include/libknot/internal/binsearch.h +include/libknot/internal/consts.h +include/libknot/internal/endian.h +include/libknot/internal/errcode.h +include/libknot/internal/getline.h +include/libknot/internal/heap.h +include/libknot/internal/hhash.h +include/libknot/internal/lists.h +include/libknot/internal/macros.h +include/libknot/internal/mem.h +include/libknot/internal/mempattern.h +include/libknot/internal/mempool.h +include/libknot/internal/namedb/namedb.h +include/libknot/internal/namedb/namedb_lmdb.h +include/libknot/internal/namedb/namedb_trie.h +include/libknot/internal/net.h +include/libknot/internal/print.h +include/libknot/internal/sockaddr.h +include/libknot/internal/strlcat.h +include/libknot/internal/strlcpy.h +include/libknot/internal/tolower.h +include/libknot/internal/trie/hat-trie.h +include/libknot/internal/trie/murmurhash3.h +include/libknot/internal/utils.h +include/libknot/libknot.h +include/libknot/packet/compr.h +include/libknot/packet/pkt.h +include/libknot/packet/rrset-wire.h +include/libknot/packet/wire.h +include/libknot/processing/layer.h +include/libknot/processing/overlay.h +include/libknot/processing/requestor.h +include/libknot/rdata.h +include/libknot/rdataset.h +include/libknot/rrset-dump.h +include/libknot/rrset.h +include/libknot/rrtype/aaaa.h +include/libknot/rrtype/dnskey.h +include/libknot/rrtype/naptr.h +include/libknot/rrtype/nsec.h +include/libknot/rrtype/nsec3.h +include/libknot/rrtype/nsec3param.h +include/libknot/rrtype/opt.h +include/libknot/rrtype/rdname.h +include/libknot/rrtype/rrsig.h +include/libknot/rrtype/soa.h +include/libknot/rrtype/tsig.h +include/libknot/tsig-op.h +include/libknot/yparser/yparser.h +include/libknot/yparser/ypformat.h +include/libknot/yparser/ypscheme.h +include/libknot/yparser/yptrafo.h +lib/libdnssec.a +lib/libdnssec.so +lib/libdnssec.so.0 +lib/libdnssec.so.0.0.0 +lib/libknot-2.so.0 +lib/libknot-2.so.0.0.0 +lib/libknot-int-2.so.0 +lib/libknot-int-2.so.0.0.0 +lib/libknot-int.a +lib/libknot-int.so +lib/libknot-yparser-2.so.0 +lib/libknot-yparser-2.so.0.0.0 +lib/libknot-yparser.a +lib/libknot-yparser.so +lib/libknot.a +lib/libknot.so +lib/libzscanner.a +lib/libzscanner.so +lib/libzscanner.so.0 +lib/libzscanner.so.0.0.0 +libdata/pkgconfig/libdnssec.pc +libdata/pkgconfig/libknot-int.pc +libdata/pkgconfig/libknot-yparser.pc +libdata/pkgconfig/libknot.pc +man/man1/kdig.1.gz +man/man1/khost.1.gz +man/man1/knot1to2.1.gz +man/man1/knsec3hash.1.gz +man/man1/knsupdate.1.gz +man/man5/knot.conf.5.gz +man/man8/keymgr.8.gz +man/man8/knotc.8.gz +man/man8/knotd.8.gz +sbin/keymgr +sbin/knotc +sbin/knotd