From 23421e469d833943c449105b1908d086670d6dcc Mon Sep 17 00:00:00 2001 From: Kurt Jaeger Date: Sun, 4 Sep 2016 18:56:53 +0000 Subject: [PATCH] New port: dns/knot-resolver The Knot DNS Resolver is a caching full resolver implementation, including both a resolver library and a daemon. WWW: https://www.knot-resolver.cz/ PR: 212215 Submitted by: Leo Vandewoestijne --- GIDs | 2 +- UIDs | 2 +- dns/Makefile | 1 + dns/knot-resolver/Makefile | 63 +++++++++++++++ dns/knot-resolver/distinfo | 3 + .../files/patch-daemon_daemon.mk | 13 ++++ dns/knot-resolver/files/patch-lib_lib.mk | 13 ++++ dns/knot-resolver/files/patch-lib_nsrep.h | 10 +++ dns/knot-resolver/files/patch-lib_resolve.h | 10 +++ dns/knot-resolver/files/patch-platform.mk | 10 +++ dns/knot-resolver/files/pkg-message.in | 10 +++ dns/knot-resolver/pkg-descr | 4 + dns/knot-resolver/pkg-plist | 78 +++++++++++++++++++ 13 files changed, 217 insertions(+), 2 deletions(-) create mode 100644 dns/knot-resolver/Makefile create mode 100644 dns/knot-resolver/distinfo create mode 100644 dns/knot-resolver/files/patch-daemon_daemon.mk create mode 100644 dns/knot-resolver/files/patch-lib_lib.mk create mode 100644 dns/knot-resolver/files/patch-lib_nsrep.h create mode 100644 dns/knot-resolver/files/patch-lib_resolve.h create mode 100644 dns/knot-resolver/files/patch-platform.mk create mode 100644 dns/knot-resolver/files/pkg-message.in create mode 100644 dns/knot-resolver/pkg-descr create mode 100644 dns/knot-resolver/pkg-plist diff --git a/GIDs b/GIDs index a65ad0df8688..fb40abb4b9e6 100644 --- a/GIDs +++ b/GIDs @@ -493,7 +493,7 @@ ejabberd:*:543: # free: 549 # free: 550 # free: 551 -# free: 552 +kresd:*:552: knot:*:553: qtss:*:554: ircdru:*:555: diff --git a/UIDs b/UIDs index 7ed27d14d332..34a9a1a00210 100644 --- a/UIDs +++ b/UIDs @@ -498,7 +498,7 @@ ejabberd:*:543:543::0:0:ejabberd pseudo user:/var/spool/ejabberd:/bin/sh # free: 549 # free: 550 # free: 551 -# free: 552 +kresd:*:552:552::0:0:Knot DNS Resolver:/nonexistent:/usr/sbin/nologin knot:*:553:553::0:0:Knot DNS Server:/nonexistent:/usr/sbin/nologin qtss:*:554:554::0:0:Darwin Streaming Server:/nonexistent:/usr/sbin/nologin ircdru:*:555:555::0:0:Russian hybrid IRC server:/nonexistent:/bin/sh diff --git a/dns/Makefile b/dns/Makefile index 45d860bff13c..11f7882dc1d2 100644 --- a/dns/Makefile +++ b/dns/Makefile @@ -78,6 +78,7 @@ SUBDIR += inadyn-mt SUBDIR += ipcheck SUBDIR += ironsides + SUBDIR += knot-resolver SUBDIR += knot1 SUBDIR += knot2 SUBDIR += ldapdns diff --git a/dns/knot-resolver/Makefile b/dns/knot-resolver/Makefile new file mode 100644 index 000000000000..ce1876e01c70 --- /dev/null +++ b/dns/knot-resolver/Makefile @@ -0,0 +1,63 @@ +# Created by: Leo Vandewoestijne +# $FreeBSD$ + +PORTNAME= knot-resolver +PORTVERSION= 1.1.1 +CATEGORIES= dns ipv6 +MASTER_SITES= https://secure.nic.cz/files/knot-resolver/ \ + https://dns.company/downloads/knot-resolver/ + +MAINTAINER= freebsd@dns-lab.com +COMMENT= Caching full resolver implementation + +LICENSE= GPLv3 + +LIB_DEPENDS= libknot.so:dns/knot2 \ + liblmdb.so:databases/lmdb \ + libluajit-5.1.so:lang/luajit \ + libuv.so:devel/libuv \ + libgnutls.so:security/gnutls \ + libnettle.so:security/nettle + +CONFLICTS= knot-1.* knot1-[0-6].* + +BROKEN_FreeBSD_9= does not build, see PR#212215 for build failures + +MAKE_ARGS+= PREFIX=${PREFIX} +MAKE_ARGS+= LIBDIR=${PREFIX}/lib +MAKE_ARGS+= PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig +MAKE_ARGS+= lmdb_CFLAGS=-I${LOCALBASE}/include lmdb_LIBS=-llmdb + +USES= gmake libtool pkgconfig tar:xz +USE_CSTD= c99 +USE_LDCONFIG= ${PREFIX}/lib + +OPTIONS_DEFINE= DOXYGEN MEMCACHED REDIS +OPTIONS_DEFAULT= +DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen +DOXYGEN_MAKE_ARGS= HAS_doxygen=yes +DOXYGEN_MAKE_ARGS_OFF= HAS_doxygen=no +MEMCACHED_DESC= memcached in-memory data-backend +MEMCACHED_LIB_DEPENDS= libmemcached.so:databases/libmemcached +MEMCACHED_MAKE_ARGS= HAS_libmemcached=yes +MEMCACHED_MAKE_ARGS_OFF= HAS_libmemcached=no +MEMCACHED_PLIST_FILES= lib/kdns_modules/kmemcached.so +REDIS_DESC= redis in-memory data-backend +REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis +REDIS_MAKE_ARGS= HAS_hiredis=yes +REDIS_MAKE_ARGS_OFF= HAS_hiredis=no +REDIS_PLIST_FILES= lib/kdns_modules/redis.so + +USERS= kresd +GROUPS= kresd +SUB_LIST+= USERS="${USERS}" GROUPS="${GROUPS}" + +SUB_FILES= pkg-message + +PORTDOCS= AUTHORS COPYING CodingStyle README.md + +post-install: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}/ + +.include diff --git a/dns/knot-resolver/distinfo b/dns/knot-resolver/distinfo new file mode 100644 index 000000000000..e5d70b78011f --- /dev/null +++ b/dns/knot-resolver/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1472151881 +SHA256 (knot-resolver-1.1.1.tar.xz) = f848f6dd2c7a2c1a5067d3bd95dacb752d1f3d8dc9d5ccc0c34a4540d00ab54a +SIZE (knot-resolver-1.1.1.tar.xz) = 661612 diff --git a/dns/knot-resolver/files/patch-daemon_daemon.mk b/dns/knot-resolver/files/patch-daemon_daemon.mk new file mode 100644 index 000000000000..dfca130d8376 --- /dev/null +++ b/dns/knot-resolver/files/patch-daemon_daemon.mk @@ -0,0 +1,13 @@ +--- daemon/daemon.mk.orig 2016-08-24 12:05:47 UTC ++++ daemon/daemon.mk +@@ -46,8 +46,8 @@ daemon: $(kresd) + daemon-install: kresd-install bindings-install + ifneq ($(SED),) + $(SED) -e "s/@VERSION@/$(MAJOR).$(MINOR).$(PATCH)/" -e "s/@DATE@/$(date)/" doc/kresd.8.in > doc/kresd.8 +- $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man8/ +- $(INSTALL) -m 0644 doc/kresd.8 $(DESTDIR)$(PREFIX)/share/man/man8/ ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(PREFIX)/man/man8/ ++ $(INSTALL) -m 0644 doc/kresd.8 $(DESTDIR)$(PREFIX)/man/man8/ + endif + daemon-clean: kresd-clean + @$(RM) daemon/lua/*.inc diff --git a/dns/knot-resolver/files/patch-lib_lib.mk b/dns/knot-resolver/files/patch-lib_lib.mk new file mode 100644 index 000000000000..2f8479f63b5f --- /dev/null +++ b/dns/knot-resolver/files/patch-lib_lib.mk @@ -0,0 +1,13 @@ +--- lib/lib.mk.orig 2016-08-24 12:05:47 UTC ++++ lib/lib.mk +@@ -83,8 +83,8 @@ libkres.pc: + @echo 'Libs: -L$${libdir} -lkres' >> $@ + @echo 'Cflags: -I$${includedir}' >> $@ + libkres-pcinstall: libkres.pc libkres-install +- $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)/pkgconfig/ +- $(INSTALL) -m 644 $< $(DESTDIR)$(LIBDIR)/pkgconfig/ ++ $(INSTALL) -d -m 755 $(DESTDIR)$(PKG_CONFIG_PATH)/ ++ $(INSTALL) -m 644 $< $(DESTDIR)$(PKG_CONFIG_PATH)/ + + # Targets + lib: $(libkres) diff --git a/dns/knot-resolver/files/patch-lib_nsrep.h b/dns/knot-resolver/files/patch-lib_nsrep.h new file mode 100644 index 000000000000..09501548f117 --- /dev/null +++ b/dns/knot-resolver/files/patch-lib_nsrep.h @@ -0,0 +1,10 @@ +--- lib/nsrep.h.orig 2016-08-24 12:05:47 UTC ++++ lib/nsrep.h +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + + #include "lib/defines.h" + #include "lib/generic/map.h" diff --git a/dns/knot-resolver/files/patch-lib_resolve.h b/dns/knot-resolver/files/patch-lib_resolve.h new file mode 100644 index 000000000000..4393fef6e0ef --- /dev/null +++ b/dns/knot-resolver/files/patch-lib_resolve.h @@ -0,0 +1,10 @@ +--- lib/resolve.h.orig 2016-08-24 12:05:47 UTC ++++ lib/resolve.h +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + #include "lib/cookies/control.h" + #include "lib/cookies/lru_cache.h" diff --git a/dns/knot-resolver/files/patch-platform.mk b/dns/knot-resolver/files/patch-platform.mk new file mode 100644 index 000000000000..49c6a84d3f44 --- /dev/null +++ b/dns/knot-resolver/files/patch-platform.mk @@ -0,0 +1,10 @@ +--- platform.mk.orig 2016-08-24 12:05:47 UTC ++++ platform.mk +@@ -49,7 +49,6 @@ else + BINFLAGS += -pie + LDFLAGS += -Wl,-z,relro,-z,now + endif +- LDFLAGS += -ldl + endif + endif + diff --git a/dns/knot-resolver/files/pkg-message.in b/dns/knot-resolver/files/pkg-message.in new file mode 100644 index 000000000000..d86f07afcf8c --- /dev/null +++ b/dns/knot-resolver/files/pkg-message.in @@ -0,0 +1,10 @@ +###################################################################### + + Please consult the documentation: + - man kresd + - http://knot-resolver.readthedocs.io/en/latest/ + + To run as daemon see: + - http://knot-resolver.readthedocs.io/en/latest/daemon.html + +###################################################################### diff --git a/dns/knot-resolver/pkg-descr b/dns/knot-resolver/pkg-descr new file mode 100644 index 000000000000..91459c3a424d --- /dev/null +++ b/dns/knot-resolver/pkg-descr @@ -0,0 +1,4 @@ +The Knot DNS Resolver is a caching full resolver implementation, +including both a resolver library and a daemon. + +WWW: https://www.knot-resolver.cz/ diff --git a/dns/knot-resolver/pkg-plist b/dns/knot-resolver/pkg-plist new file mode 100644 index 000000000000..aff13913bc41 --- /dev/null +++ b/dns/knot-resolver/pkg-plist @@ -0,0 +1,78 @@ +etc/kresd/config.cluster +etc/kresd/config.isp +etc/kresd/config.personal +etc/kresd/config.splitview +etc/kresd/icann-ca.pem +include/libkres/alg_containers.h +include/libkres/alg_sha.h +include/libkres/array.h +include/libkres/cache.h +include/libkres/cdb.h +include/libkres/cdb_lmdb.h +include/libkres/control.h +include/libkres/dnssec.h +include/libkres/helper.h +include/libkres/layer.h +include/libkres/lru_cache.h +include/libkres/map.h +include/libkres/module.h +include/libkres/nonce.h +include/libkres/nsec.h +include/libkres/nsec3.h +include/libkres/nsrep.h +include/libkres/resolve.h +include/libkres/rplan.h +include/libkres/set.h +include/libkres/signature.h +include/libkres/ta.h +include/libkres/utils.h +include/libkres/zonecut.h +lib/kdns_modules/aho-corasick.lua +lib/kdns_modules/cookies.so +lib/kdns_modules/daf.lua +lib/kdns_modules/daf/daf.js +lib/kdns_modules/dns64.lua +lib/kdns_modules/graphite.lua +lib/kdns_modules/hints.so +lib/kdns_modules/http.lua +lib/kdns_modules/http/LICENSE +lib/kdns_modules/http/bootstrap-theme.min.css +lib/kdns_modules/http/bootstrap.min.css +lib/kdns_modules/http/bootstrap.min.js +lib/kdns_modules/http/d3.js +lib/kdns_modules/http/datamaps.world.min.js +lib/kdns_modules/http/dygraph-combined.js +lib/kdns_modules/http/epoch.css +lib/kdns_modules/http/epoch.js +lib/kdns_modules/http/favicon.ico +lib/kdns_modules/http/glyphicons-halflings-regular.woff2 +lib/kdns_modules/http/h2_connection.lua +lib/kdns_modules/http/h2_stream.lua +lib/kdns_modules/http/jquery.js +lib/kdns_modules/http/kresd.css +lib/kdns_modules/http/kresd.js +lib/kdns_modules/http/main.tpl +lib/kdns_modules/http/selectize.bootstrap3.min.css +lib/kdns_modules/http/selectize.min.css +lib/kdns_modules/http/selectize.min.js +lib/kdns_modules/http/server.lua +lib/kdns_modules/http/topojson.js +lib/kdns_modules/ketcd.lua +lib/kdns_modules/kres.lua +lib/kdns_modules/policy.lua +lib/kdns_modules/predict.lua +lib/kdns_modules/prometheus.lua +lib/kdns_modules/renumber.lua +lib/kdns_modules/stats.so +lib/kdns_modules/trust_anchors.lua +lib/kdns_modules/view.lua +lib/kdns_modules/zonefile.lua +lib/libkres.so +lib/libkres.so.1 +libdata/pkgconfig/libkres.pc +man/man8/kresd.8.gz +sbin/kresd +@dir lib/kdns_modules/daf +@dir lib/kdns_modules/http +@dir lib/kdns_modules +@dir libdata/pkgconfig