summaryrefslogtreecommitdiff
path: root/gnu/packages/dns.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/dns.scm')
-rw-r--r--gnu/packages/dns.scm147
1 files changed, 101 insertions, 46 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 8bb34111d2..a27b670d8c 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)
@@ -313,7 +317,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(package
(name "bind")
;; When updating, check whether isc-dhcp's bundled copy should be as well.
- (version "9.16.6")
+ (version "9.16.7")
(source (origin
(method url-fetch)
(uri (string-append
@@ -321,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz"))
(sha256
(base32
- "1jvi6ms51vyrhpflx05xlb7gblyd59zsyj28b8s3pl3xnkrv0rxm"))))
+ "1l8lhgnkj3fnl1101bs3pzj5gv2x5m9ahvrbyscsc9mxxc91hzcz"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@@ -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
@@ -756,16 +760,16 @@ served by AS112. Stub and forward zones are supported.")
(define-public yadifa
(package
(name "yadifa")
- (version "2.3.9")
+ (version "2.3.10")
(source
- (let ((build "8497"))
+ (let ((build "9729"))
(origin
(method url-fetch)
(uri
(string-append "http://cdn.yadifa.eu/sites/default/files/releases/"
"yadifa-" version "-" build ".tar.gz"))
(sha256
- (base32 "0xvyr91sfgzkpw6g3h893ldbwnki3w2472n56rr18w67qghs1sa5")))))
+ (base32 "0azaignqmylfdzr4x02s8y3pkn4f0xkpz3d1pkiiz8mwk92zgybn")))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)))
@@ -803,44 +807,63 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "2.9.6")
+ (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 "1rxjjisr6rz1wa4279ghvj5zzhgyjhncmb9dkzqm8nw2qs1jhx5z"))
+ (base32 "10mlzldxqvbaw78nghkr0s73rlbpz9wg16z14321xw2l9xfibkad"))
(modules '((guix build utils)))
(snippet
'(begin
- ;; Delete bundled libraries.
- (with-directory-excursion "src/contrib"
- (delete-file-recursively "lmdb"))
+ ;; 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)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("fstrm" ,fstrm)
- ("gnutls" ,gnutls)
- ("jansson" ,jansson)
- ("libcap-ng" ,libcap-ng)
- ("libedit" ,libedit)
- ("libidn" ,libidn)
- ("liburcu" ,liburcu)
- ("lmdb" ,lmdb)
- ("ncurses" ,ncurses)
- ("protobuf-c" ,protobuf-c)))
+ (outputs (list "out" "doc" "lib" "tools"))
(arguments
- `(#:phases
+ `(#:configure-flags
+ (list (string-append "--docdir=" (assoc-ref %outputs "doc")
+ "/share/" ,name "-" ,version)
+ (string-append "--infodir=" (assoc-ref %outputs "doc")
+ "/share/info")
+ (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
+ "--sysconfdir=/etc"
+ "--localstatedir=/var"
+ "--enable-dnstap" ; let tools read/write capture files
+ "--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\"")))
+ #true))
+ (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"))
@@ -848,15 +871,51 @@ Extensions} (DNSSEC).")
(etc (string-append doc "/examples/etc")))
(invoke "make"
(string-append "config_dir=" etc)
- "install")))))
- #: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"))))
+ "install"))))
+ (add-after 'install 'install-info
+ (lambda _
+ (invoke "make" "install-info")))
+ (add-after 'install 'break-circular-:lib->:out-reference
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((lib (assoc-ref outputs "lib")))
+ (for-each (lambda (file)
+ (substitute* file
+ (("(prefix=).*" _ assign)
+ (string-append assign lib "\n"))))
+ (find-files lib "\\.pc$"))
+ #true)))
+ (add-after 'install 'split-:tools
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (tools (assoc-ref outputs "tools")))
+ (mkdir-p (string-append tools "/share/man"))
+ (rename-file (string-append out "/bin")
+ (string-append tools "/bin"))
+ (rename-file (string-append out "/share/man/man1")
+ (string-append tools "/share/man/man1"))
+ #true))))))
+ (native-inputs
+ `(("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)
+ ("protobuf-c" ,protobuf-c)))
(home-page "https://www.knot-dns.cz/")
(synopsis "Authoritative DNS name server")
(description "Knot DNS is an authoritative name server for the @dfn{Domain
@@ -878,14 +937,14 @@ synthesis, and on-the-fly re-configuration.")
(define-public knot-resolver
(package
(name "knot-resolver")
- (version "4.3.0")
+ (version "5.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
- "09ffmqx79lv5psr433x4n946njgsn071b9b7161pcb9bmrqz380c"))))
+ "12s5070nqqf599s1mb6rjas2as481rjf751qk5yrz6p34y885k90"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags '("-Ddoc=enabled")
@@ -927,16 +986,12 @@ synthesis, and on-the-fly re-configuration.")
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
- ("knot" ,knot)
+ ("knot:lib" ,knot "lib")
("libuv" ,libuv)
("lmdb" ,lmdb)
("luajit" ,luajit)
;; TODO: Add optional lua modules: basexx and psl.
- ("lua-bitop" ,lua5.1-bitop)
- ("lua-cqueues" ,lua5.1-cqueues)
- ("lua-filesystem" ,lua5.1-filesystem)
- ("lua-sec" ,lua5.1-sec)
- ("lua-socket" ,lua5.1-socket)))
+ ("lua-bitop" ,lua5.1-bitop)))
(home-page "https://www.knot-resolver.cz/")
(synopsis "Caching validating DNS resolver")
(description