summaryrefslogtreecommitdiff
path: root/gnu/packages/dns.scm
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-10-13 23:39:27 +0200
committerMarius Bakke <marius@gnu.org>2020-10-13 23:39:27 +0200
commitf7175626ffce578be1bc6df4916a129f86557872 (patch)
tree2eb0040522f2883764b3e09dc36595d68eeb14c1 /gnu/packages/dns.scm
parent2b6ecdf41a09ab9ecae06d7c537583a2f0f28efc (diff)
parente8c5533d26b4441c96e9ae92350efcb24d787c4b (diff)
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/dns.scm')
-rw-r--r--gnu/packages/dns.scm67
1 files changed, 54 insertions, 13 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 95524fa898..1775660162 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Simon South <simon@simonsouth.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
@@ -65,9 +67,11 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages ragel)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
+ #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
@@ -529,14 +533,14 @@ asynchronous fashion.")
(define-public nsd
(package
(name "nsd")
- (version "4.3.2")
+ (version "4.3.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
- (base32 "0ac3mbn5z4nc18782m9aswdpi2m9f4665vidw0ciyigdh0pywp2v"))))
+ (base32 "0lgdiqnkfvy245h6kkiqic586qjwmg51lsfs86vlc0kwjwddiijz"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -803,32 +807,57 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "3.0.0")
+ (version "3.0.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://secure.nic.cz/files/knot-dns/"
- "knot-" version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.nic.cz/knot/knot-dns")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1i76zflc49jbsaj3idxx7a6x87c0lzal294c3fdjyfl7dvznmjgi"))))
+ (base32 "10mlzldxqvbaw78nghkr0s73rlbpz9wg16z14321xw2l9xfibkad"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove Ragel-generated C files. We'll recreate them below.
+ (for-each delete-file (find-files "." "\\.c\\.[gt]."))
+ (delete-file "src/libknot/yparser/ypbody.c")
+ ;; Remove bundled library to ensure we always use the system's.
+ (delete-file-recursively "src/contrib/libbpf")
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-dnstap" ; let tools read/write capture files
- "--with-module-dnstap=yes" ; detailed query capturing & logging
- (string-append "--with-bash-completions="
- (assoc-ref %outputs "out")
- "/etc/bash_completion.d"))
+ "--enable-fastparser" ; disabled by default when .git/ exists
+ "--enable-xdp=auto" ; XXX [=yes] currently means =embedded
+ "--with-module-dnstap=yes") ; detailed query capturing & logging
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'link-missing-libbpf-dependency
+ ;; Linking against -lbpf later would fail to find -lz: libbpf.pc has
+ ;; zlib in its Requires.private (not Requires) field. Add it here.
+ (lambda _
+ (substitute* "configure.ac"
+ (("enable_xdp=yes" match)
+ (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
+ #t))
+ (add-before 'bootstrap 'update-parser
+ (lambda _
+ (with-directory-excursion "src"
+ (invoke "sh" "../scripts/update-parser.sh"))))
(add-before 'configure 'disable-directory-pre-creation
(lambda _
;; Don't install empty directories like ‘/etc’ outside the store.
;; This is needed even when using ‘make config_dir=... install’.
(substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))
#t))
+ (add-after 'build 'build-info
+ (lambda _
+ (invoke "make" "info")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -836,16 +865,28 @@ Extensions} (DNSSEC).")
(etc (string-append doc "/examples/etc")))
(invoke "make"
(string-append "config_dir=" etc)
- "install")))))))
+ "install"))))
+ (add-after 'install 'install-info
+ (lambda _
+ (invoke "make" "install-info"))))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("python-sphinx" ,python-sphinx)
+ ("ragel" ,ragel)
+ ("texinfo" ,texinfo)))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
("jansson" ,jansson)
+ ("libbpf" ,libbpf)
("libcap-ng" ,libcap-ng)
("libedit" ,libedit)
+ ("libelf" ,libelf)
("libidn" ,libidn)
+ ("libnghttp2" ,nghttp2 "lib")
("liburcu" ,liburcu)
("lmdb" ,lmdb)
("ncurses" ,ncurses)