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.scm570
1 files changed, 320 insertions, 250 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 45e250138e..c061c9a22d 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2016, 2020 Marius Bakke <[email protected]>
;;; Copyright © 2017 Vasile Dumitrascu <[email protected]>
;;; Copyright © 2017 Gregor Giesen <[email protected]>
-;;; Copyright © 2018 Oleg Pykhalov <[email protected]>
+;;; Copyright © 2018, 2022 Oleg Pykhalov <[email protected]>
;;; Copyright © 2019 Mathieu Othacehe <[email protected]>
;;; Copyright © 2019 Chris Marusich <[email protected]>
;;; Copyright © 2019 Rutger Helling <[email protected]>
@@ -40,8 +40,8 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
- #:use-module (gnu packages certs)
#:use-module (gnu packages check)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compression)
@@ -69,6 +69,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages ragel)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
@@ -77,28 +78,77 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
+ #:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial))
+(define-public cloudflare-cli
+ (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
+ (revision "1"))
+ (package
+ (name "cloudflare-cli")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/earlchew/cloudflare-cli")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f86g6n86kwykl3jnhqjrdfy8ybkp03ghr3dlr70q2552qw4axw2"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan '(("cloudflare-cli" "bin/") ("cloudflare-cli.sh" "bin/"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'find-jsonsh
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "cloudflare-cli.sh"
+ (("\\$\\{0%/\\*\\}/jsonsh")
+ (string-append (assoc-ref inputs "json.sh") "/bin/JSON.sh")))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out") "/bin/cloudflare-cli")
+ `("PATH" ":" prefix
+ (,(string-join
+ (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+ '("grep" "curl"))
+ ":"))))
+ #t)))))
+ (inputs
+ (list bash-minimal curl grep json.sh))
+ (synopsis
+ "CLI to edit Cloudflare DNS records")
+ (description
+ "This command line tool to update Cloudfare DNS records is useful for tasks
+such as updating dynamic DNS records or updating DNS records for the ACME DNS-01
+protocol.")
+ (home-page "https://github.com/earlchew/cloudflare-cli")
+ (license license:expat))))
+
(define-public ldns
(package
(name "ldns")
- (version "1.7.1")
+ (version "1.8.1")
(source
(origin
(method url-fetch)
(uri
(string-append "https://www.nlnetlabs.nl/downloads/"
- name "/" name "-" version ".tar.gz"))
+ "ldns/ldns-" version ".tar.gz"))
(sha256
- (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
+ (base32 "18vzdmyg9bm45janw602d4hifjsncrv143awlwcslfjdrsmjk0lm"))
(patches
(search-patches
;; To create make-flag variables,
@@ -107,62 +157,41 @@
(build-system gnu-build-system)
(outputs '("out" "drill" "examples" "pyldns"))
(arguments
- `( ;; Tests require Tpkg.
- ;; https://tpkg.github.io/
- #:tests? #f
- #:configure-flags
- (list
- "--disable-static"
- "--enable-gost-anyway"
- "--enable-rrtype-ninfo"
- "--enable-rrtype-rkey"
- "--enable-rrtype-ta"
- "--enable-rrtype-avc"
- "--enable-rrtype-doa"
- "--enable-rrtype-amtrelay"
- "--with-drill"
- "--with-examples"
- "--with-pyldns"
- ;; Perl module DNS::LDNS not available.
- ;; https://github.com/erikoest/DNS-LDNS.git
- ;; "--with-p5-dns-ldns"
- (string-append "--with-ssl="
- (assoc-ref %build-inputs "openssl"))
- (string-append "--with-ca-path="
- (assoc-ref %build-inputs "nss-certs")
- "/etc/ssl/certs"))
- #:make-flags
- (list
- (string-append "drillbindir="
- (assoc-ref %outputs "drill")
- "/bin")
- (string-append "drillmandir="
- (assoc-ref %outputs "drill")
- "/share/man")
- (string-append "examplesbindir="
- (assoc-ref %outputs "examples")
- "/bin")
- (string-append "examplesmandir="
- (assoc-ref %outputs "examples")
- "/share/man")
- (string-append "python_site="
- (assoc-ref %outputs "pyldns")
- "/lib/python"
- ,(version-major+minor
- (package-version python))
- "/site-packages"))))
+ (list
+ #:tests? #f ; tests require <https://tpkg.github.io>
+ #:configure-flags
+ #~(list
+ "--disable-static"
+ "--enable-gost-anyway"
+ "--enable-rrtype-ninfo"
+ "--enable-rrtype-rkey"
+ "--enable-rrtype-ta"
+ "--enable-rrtype-avc"
+ "--enable-rrtype-doa"
+ "--enable-rrtype-amtrelay"
+ "--with-drill"
+ "--with-examples"
+ "--with-pyldns"
+ ;; Perl module DNS::LDNS not available.
+ ;; https://github.com/erikoest/DNS-LDNS.git
+ ;; "--with-p5-dns-ldns"
+ (string-append "--with-ssl=" #$(this-package-input "openssl"))
+ (string-append "--with-ca-path=/etc/ssl/certs"))
+ #:make-flags
+ #~(list
+ (string-append "drillbindir=" #$output:drill "/bin")
+ (string-append "drillmandir=" #$output:drill "/share/man")
+ (string-append "examplesbindir=" #$output:examples "/bin")
+ (string-append "examplesmandir=" #$output:examples "/share/man")
+ (string-append "python_site=" #$output:pyldns "/lib/python"
+ #$(version-major+minor (package-version
+ (this-package-input
+ "python-wrapper")))
+ "/site-packages"))))
(native-inputs
- `(("doxygen" ,doxygen)
- ("ksh" ,oksh)
- ("perl" ,perl)
- ("perl-devel-checklib" ,perl-devel-checklib)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)
- ("swig" ,swig)))
+ (list doxygen perl perl-devel-checklib pkg-config swig))
(inputs
- `(("libpcap" ,libpcap)
- ("nss-certs" ,nss-certs)
- ("openssl" ,openssl)))
+ (list libpcap openssl python-wrapper))
(synopsis "DNS library that facilitates DNS tool programming")
(description "LDNS aims to simplify DNS programming, it supports recent
RFCs like the DNSSEC documents, and allows developers to easily create
@@ -187,84 +216,67 @@ C it should be a lot faster than Perl.")
(build-system glib-or-gtk-build-system)
(outputs '("out" "gui" "nm"))
(arguments
- `(#:test-target "test"
- #:configure-flags
- (list
- (string-append "--with-ssl="
- (assoc-ref %build-inputs "openssl"))
- "--with-hooks=networkmanager"
- (string-append "--with-networkmanager-dispatch="
- (assoc-ref %outputs "nm")
- "/etc/NetworkManager/dispatcher.d")
- (string-append "--with-xdg-autostart="
- (assoc-ref %outputs "gui")
- "/etc/xdg/autostart")
- (string-append "--with-uidir="
- (assoc-ref %outputs "gui")
- "/share/dnssec-trigger")
- (string-append "--with-python="
- (assoc-ref %build-inputs "python")
- "/bin/python")
- (string-append "--with-unbound-control="
- (assoc-ref %build-inputs "unbound")
- "/sbin/unbound-control")
- "--with-forward-zones-support")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-configure
- (lambda _
- (substitute* "configure"
- (("appindicator-0.1")
- "appindicator3-0.1"))
- #t))
- (add-before 'configure 'patch-makefile
- (lambda _
- (substitute* "Makefile.in"
- (("/usr")
- "$(prefix)")
- (("/etc")
- "$(prefix)/etc")
- ((".*gtk-update-icon-cache.*")
- ""))
- #t))
- (add-after 'install 'remove-systemd
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out")))
- (delete-file-recursively
- (string-append out "/lib/systemd"))
- #t)))
- (add-after 'remove-systemd 'move-gui
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (gui (assoc-ref outputs "gui")))
- (mkdir-p (string-append gui "/bin"))
- (mkdir-p (string-append gui "/share"))
- (rename-file
- (string-append out "/bin")
- (string-append gui "/bin"))
- (rename-file
- (string-append out "/share/icons")
- (string-append gui "/share/icons"))
- #t)))
- (add-after 'move-gui 'move-nm
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (nm (assoc-ref outputs "nm")))
- (mkdir-p (string-append nm "/libexec"))
- (rename-file
- (string-append out "/libexec")
- (string-append nm "/libexec"))
- #t))))))
+ (list #:test-target "test"
+ #:configure-flags
+ #~(list
+ (string-append "--with-ssl=" #$(this-package-input "openssl"))
+ "--with-hooks=networkmanager"
+ (string-append "--with-networkmanager-dispatch="
+ #$output:nm
+ "/etc/NetworkManager/dispatcher.d")
+ (string-append "--with-xdg-autostart="
+ #$output:gui
+ "/etc/xdg/autostart")
+ (string-append "--with-uidir="
+ #$output:gui
+ "/share/dnssec-trigger")
+ (string-append "--with-python="
+ #$(this-package-native-input "python-wrapper")
+ "/bin/python")
+ (string-append "--with-unbound-control="
+ #$(this-package-input "unbound")
+ "/sbin/unbound-control")
+ "--with-forward-zones-support")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-configure
+ (lambda _
+ (substitute* "configure"
+ (("appindicator-0.1")
+ "appindicator3-0.1"))))
+ (add-before 'configure 'patch-makefile
+ (lambda _
+ (substitute* "Makefile.in"
+ (("/usr")
+ "$(prefix)")
+ (("/etc")
+ "$(prefix)/etc")
+ ((".*gtk-update-icon-cache.*")
+ ""))))
+ (add-after 'install 'remove-systemd
+ (lambda _
+ (delete-file-recursively
+ (string-append #$output "/lib/systemd"))))
+ (add-after 'remove-systemd 'move-gui
+ (lambda _
+ (mkdir-p (string-append #$output:gui "/bin"))
+ (mkdir-p (string-append #$output:gui "/share"))
+ (rename-file
+ (string-append #$output "/bin")
+ (string-append #$output:gui "/bin"))
+ (rename-file
+ (string-append #$output "/share/icons")
+ (string-append #$output:gui "/share/icons"))))
+ (add-after 'move-gui 'move-nm
+ (lambda _
+ (mkdir-p (string-append #$output:nm "/libexec"))
+ (rename-file
+ (string-append #$output "/libexec")
+ (string-append #$output:nm "/libexec")))))))
(native-inputs
- `(("cmocka" ,cmocka)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)))
+ (list cmocka pkg-config python-wrapper))
(inputs
- `(("gtk+-2" ,gtk+-2)
- ("ldns" ,ldns)
- ("libappindicator" ,libappindicator)
- ("openssl" ,openssl)
- ("unbound" ,unbound)))
+ (list gtk+-2 ldns libappindicator openssl unbound))
(synopsis "DNSSEC protection for the DNS traffic")
(description "DNSSEC-Trigger enables your computer to use DNSSEC protection
for the DNS traffic. It relies on the Unbound DNS resolver running locally on
@@ -278,7 +290,7 @@ prompt the user with the option to go with insecure DNS only.")
(define-public dnsmasq
(package
(name "dnsmasq")
- (version "2.85")
+ (version "2.86")
(source (origin
(method url-fetch)
(uri (string-append
@@ -286,17 +298,17 @@ prompt the user with the option to go with insecure DNS only.")
version ".tar.xz"))
(sha256
(base32
- "1yhjwgz8g5qrqvxh6bbmg3443zi8qqjks3q872wyb1zn7n0d765d"))))
+ "027b0ycw8h8yvvkq46vnr7dv8iqn5srm4kr7hm7sq110kvy2rm98"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ (list pkg-config))
(inputs
- `(("dbus" ,dbus)))
+ (list dbus))
(arguments
`(#:phases
(modify-phases %standard-phases (delete 'configure))
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
- "CC=gcc"
+ (string-append "CC=" ,(cc-for-target))
"COPTS=\"-DHAVE_DBUS\"")
#:tests? #f)) ; no ‘check’ target
(home-page "http://www.thekelleys.org.uk/dnsmasq/doc.html")
@@ -320,29 +332,29 @@ and BOOTP/TFTP for network booting of diskless machines.")
;; When updating, check whether isc-dhcp's bundled copy should be as well.
;; The BIND release notes are available here:
;; https://www.isc.org/bind/
- (version "9.16.16")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://ftp.isc.org/isc/bind9/" version
- "/bind-" version ".tar.xz"))
- (sha256
- (base32
- "0yqxfq7qc26x7qhk0nkp8h7x9jggzaafm712bvfffy7qml13k4bc"))))
+ (version "9.16.25")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://ftp.isc.org/isc/bind9/" version
+ "/bind-" version ".tar.xz"))
+ (sha256
+ (base32 "1wqzbq7jfd8zlidkfgx3fc1132xn5hrga7xznzw3x1421y2ji8wz"))
+ (patches
+ (search-patches "bind-re-add-attr-constructor-priority.patch"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
;; It would be nice to add GeoIP and gssapi once there are packages.
- `(("libcap" ,libcap)
- ("libuv" ,libuv)
- ("libxml2" ,libxml2)
- ("openssl" ,openssl)
- ("p11-kit" ,p11-kit)
- ("python" ,python)
- ("python-ply" ,python-ply)))
+ (list libcap
+ libuv
+ libxml2
+ openssl
+ p11-kit
+ python
+ python-ply))
(native-inputs
- `(("perl" ,perl)
- ("pkg-config" ,pkg-config)))
+ (list perl pkg-config))
(arguments
`(#:configure-flags
(list (string-append "--with-pkcs11="
@@ -435,13 +447,9 @@ Dynamic DNS update utility
;; The system version is still favored and referenced.
(invoke "autoreconf" "-vif"))))))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("automake" ,automake)
- ("autoconf" ,autoconf)
- ("libtool" ,libtool)))
+ (list pkg-config automake autoconf libtool))
(inputs
- `(("libltdl" ,libltdl)
- ("libsodium" ,libsodium)))
+ (list libltdl libsodium))
(home-page "https://www.dnscrypt.org/")
(synopsis "Securely send DNS requests to a remote server")
(description
@@ -480,10 +488,9 @@ servers is included, and an up-to-date version is available at
(lambda _
(invoke "make" "configure"))))))
(native-inputs
- `(("autoconf" ,autoconf)))
+ (list autoconf))
(inputs
- `(("libevent" ,libevent)
- ("libsodium" ,libsodium)))
+ (list libevent libsodium))
(home-page "https://github.com/Cofyc/dnscrypt-wrapper")
(synopsis "Server-side dnscrypt proxy")
(description
@@ -520,10 +527,7 @@ the two.")
(string-append out "/share/man/man3"))
#t))))))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ (list autoconf automake libtool pkg-config))
(home-page "https://www.opensmtpd.org")
(synopsis "Asynchronous resolver library by the OpenBSD project")
(description
@@ -539,14 +543,14 @@ asynchronous fashion.")
(define-public nsd
(package
(name "nsd")
- (version "4.3.7")
+ (version "4.3.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
- (base32 "1bg87g0i66hw16fm7gbqmzyi2rcn1hadzz0bg9b8s5mx7g2rwfzx"))))
+ (base32 "13ay2gr7ln8gl09wdqnxkrdxi51jaqsbn54yh82vvv49jbq4j5ak"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -582,12 +586,10 @@ asynchronous fashion.")
((".*INSTALL.*\\$\\((config|pid|xfr|db)dir" command)
(string-append "#" command))
(("\\$\\(nsdconfigfile\\)\\.sample" file-name)
- (string-append doc "/examples/" file-name)))
- #t))))
+ (string-append doc "/examples/" file-name)))))))
#:tests? #f)) ; no tests
(inputs
- `(("libevent" ,libevent)
- ("openssl" ,openssl)))
+ (list libevent openssl))
(home-page "https://www.nlnetlabs.nl/projects/nsd/about/")
(synopsis "Authoritative DNS name server")
(description "@dfn{NSD}, short for Name Server Daemon, is an authoritative
@@ -606,6 +608,60 @@ run in a @code{chroot} jail, thus making any security flaws in NSD less likely
to result in system-wide compromise.")
(license (list license:bsd-3))))
+(define-public rbldnsd
+ (package
+ (name "rbldnsd")
+ (version "0.998b")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/spamhaus/rbldnsd")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0jj3kyir43qnjgd9rk0wz13iggf3p4p1779v0wgmx3ci0ypnglcr"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; The ./configure is hand-written and doesn't ignore unknown
+ ;; standard autotools options like CONFIG_SHELL.
+ (lambda _
+ (invoke "./configure")))
+ (replace 'install
+ ;; There is no Makefile ‘install’ target. contrib/debian/rules has
+ ;; one but relies on Debian-specific helpers, so install manually.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (sbin (string-append out "/sbin"))
+ (man8 (string-append out "/share/man/man8")))
+ (install-file "rbldnsd" sbin)
+ (install-file "rbldnsd.8" man8)))))))
+ (inputs
+ (list zlib))
+ (native-inputs
+ ;; For running the test suite. Python 3 is not yet supported by a release:
+ ;; see <https://github.com/spamhaus/rbldnsd/issues/16>.
+ `(("python" ,python-2)))
+ (home-page "https://rbldnsd.io/")
+ (synopsis
+ "Small nameserver to efficiently serve @acronym{DNSBL, DNS blocklists}")
+ (description
+ "This package contains a small DNS daemon especially made to handle queries
+of @acronym{DNSBL, DNS blocklists}, a simple way to publish IP addresses and/or
+(domain) names which are somehow notable. Such lists are frequently used to
+refuse e-mail service to clients known to send unwanted (spam) messages.
+
+@command{rbldnsd} is not a general-purpose nameserver. It answers to a limited
+variety of queries. This makes it extremely fast---greatly outperforming both
+BIND and djbdns---whilst using relatively little memory.")
+ (license
+ (list license:bsd-3 ; btrie.[ch]
+ license:lgpl2.1+ ; qsort.c
+ license:gpl2+)))) ; the rest
+
(define-public unbound
(package
(name "unbound")
@@ -620,15 +676,14 @@ to result in system-wide compromise.")
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs
- `(("flex" ,flex)
- ("swig" ,swig)))
+ (list flex swig))
(inputs
- `(("expat" ,expat)
- ("libevent" ,libevent)
- ("nghttp2" ,nghttp2 "lib")
- ("protobuf" ,protobuf)
- ("python-wrapper" ,python-wrapper)
- ("openssl" ,openssl)))
+ (list expat
+ libevent
+ `(,nghttp2 "lib")
+ protobuf
+ python-wrapper
+ openssl))
(arguments
`(#:configure-flags
(list "--disable-static" ; save space and non-determinism in libunbound.a
@@ -769,36 +824,34 @@ served by AS112. Stub and forward zones are supported.")
(define-public yadifa
(package
(name "yadifa")
- (version "2.5.0")
+ (version "2.5.3")
(source
- (let ((build "10188"))
+ (let ((build "10333"))
(origin
(method url-fetch)
(uri
(string-append "https://www.yadifa.eu/sites/default/files/releases/"
"yadifa-" version "-" build ".tar.gz"))
(sha256
- (base32 "05ps6fif3sqn6yzkprnp1cm81f3ja4vqc0r6vh7nvzl73gv4rp2w")))))
+ (base32 "1mwy6sfnlaslx26f3kpj9alh8i8y8bf1nbnsdd5j04hjsbavd07p")))))
(build-system gnu-build-system)
(native-inputs
- `(("which" ,which)))
+ (list which))
(inputs
- `(("openssl" ,openssl)))
+ (list openssl))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'omit-example-configurations
(lambda _
(substitute* "Makefile.in"
- ((" (etc|var)") ""))
- #t))
+ ((" (etc|var)") ""))))
(add-after 'configure 'omit-spurious-references
(lambda _
;; The many Makefile.in grep this(!) to #define BUILD_OPTIONS.
(substitute* "config.log"
(("(=/gnu/store/)[^-]*" _ match)
- (string-append match "...")))
- #t)))
+ (string-append match "..."))))))
#:configure-flags
(list "--sysconfdir=/etc"
"--localstatedir=/var"
@@ -817,7 +870,7 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "3.0.7")
+ (version "3.1.5")
(source
(origin
(method git-fetch)
@@ -826,7 +879,7 @@ Extensions} (DNSSEC).")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0ihd0lfh0r1nzz2di2rqkrx5j1017xv7m54irlhccx21inwv6g3y"))
+ (base32 "145fnz740y1g0h2m07kpcimf2rx37saq2l905bl6vwa5ifybrgcq"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -834,8 +887,7 @@ Extensions} (DNSSEC).")
(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))))
+ (delete-file-recursively "src/contrib/libbpf")))))
(build-system gnu-build-system)
(outputs (list "out" "doc" "lib" "tools"))
(arguments
@@ -847,9 +899,10 @@ Extensions} (DNSSEC).")
(string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
"--sysconfdir=/etc"
"--localstatedir=/var"
+ "--disable-static" ; static libraries are built by default
"--enable-dnstap" ; let tools read/write capture files
"--enable-fastparser" ; disabled by default when .git/ exists
- "--enable-xdp=auto" ; XXX [=yes] currently means =embedded
+ "--enable-xdp=yes"
"--with-module-dnstap=yes") ; detailed query capturing & logging
#:phases
(modify-phases %standard-phases
@@ -859,8 +912,7 @@ Extensions} (DNSSEC).")
(lambda _
(substitute* "configure.ac"
(("enable_xdp=yes" match)
- (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
- #true))
+ (string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))))
(add-before 'bootstrap 'update-parser
(lambda _
(with-directory-excursion "src"
@@ -869,22 +921,32 @@ Extensions} (DNSSEC).")
(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))
+ (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
(add-after 'build 'build-info
- (lambda _
- (invoke "make" "info")))
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (apply invoke "make" "info"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags))))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key make-flags outputs parallel-build? #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/" ,name "-" ,version))
(etc (string-append doc "/examples/etc")))
- (invoke "make"
- (string-append "config_dir=" etc)
- "install"))))
+ (apply invoke "make" "install"
+ (string-append "config_dir=" etc)
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags)))))
(add-after 'install 'install-info
- (lambda _
- (invoke "make" "install-info")))
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+ (apply invoke "make" "install-info"
+ `(,@(if parallel-build?
+ `("-j" ,(number->string (parallel-job-count)))
+ '())
+ ,@make-flags))))
(add-after 'install 'break-circular-:lib->:out-reference
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib")))
@@ -892,8 +954,7 @@ Extensions} (DNSSEC).")
(substitute* file
(("(prefix=).*" _ assign)
(string-append assign lib "\n"))))
- (find-files lib "\\.pc$"))
- #true)))
+ (find-files lib "\\.pc$")))))
(add-after 'install 'split-:tools
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -902,16 +963,15 @@ Extensions} (DNSSEC).")
(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))))))
+ (string-append tools "/share/man/man1"))))))))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("python-sphinx" ,python-sphinx)
- ("ragel" ,ragel)
- ("texinfo" ,texinfo)))
+ (list autoconf
+ automake
+ libtool
+ pkg-config
+ python-sphinx
+ ragel
+ texinfo))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
@@ -921,6 +981,7 @@ Extensions} (DNSSEC).")
("libedit" ,libedit)
("libelf" ,libelf)
("libidn" ,libidn)
+ ("libmnl" ,libmnl)
("libnghttp2" ,nghttp2 "lib")
("liburcu" ,liburcu)
("lmdb" ,lmdb)
@@ -947,14 +1008,14 @@ synthesis, and on-the-fly re-configuration.")
(define-public knot-resolver
(package
(name "knot-resolver")
- (version "5.4.1")
+ (version "5.4.4")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
- "0rixiqfj53rfabrz8qpnq4whx8y29d2m5w64a4jlwx7gv4nrd2zv"))))
+ "1sic5ccbbqml4c01dbikkg6qx1gg81nqi76cj79pjdllkqqn92aq"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
@@ -966,8 +1027,7 @@ synthesis, and on-the-fly re-configuration.")
;; Disable the default managed root TA, since we don't have
;; write access to the keyfile and its directory in store.
(substitute* "daemon/lua/sandbox.lua.in"
- (("^trust_anchors\\.add_file.*") ""))
- #t))
+ (("^trust_anchors\\.add_file.*") ""))))
(add-after 'build 'build-doc
(lambda _
(invoke "ninja" "doc")))
@@ -998,17 +1058,16 @@ synthesis, and on-the-fly re-configuration.")
(string-append p "/lib/lua/5.1/?.so"))))
(wrap-program (string-append out "/sbin/kresd")
`("LUA_PATH" ";" prefix ,(map lua-path lua-*))
- `("LUA_CPATH" ";" prefix ,(map lua-cpath lua-*)))
- #t))))))
+ `("LUA_CPATH" ";" prefix ,(map lua-cpath lua-*)))))))))
(native-inputs
- `(("cmocka" ,cmocka) ; for unit tests
- ("doxygen" ,doxygen)
- ("protobuf-c" ,protobuf-c)
- ("pkg-config" ,pkg-config)
- ("python-breathe" ,python-breathe)
- ("python-sphinx" ,python-sphinx)
- ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
- ("texinfo" ,texinfo)))
+ (list cmocka ; for unit tests
+ doxygen
+ protobuf-c
+ pkg-config
+ python-breathe
+ python-sphinx
+ python-sphinx-rtd-theme
+ texinfo))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
@@ -1018,7 +1077,8 @@ synthesis, and on-the-fly re-configuration.")
("luajit" ,luajit)
;; TODO: Add optional lua modules: basexx and psl.
("lua-bitop" ,lua5.1-bitop)
- ("nghttp2" ,nghttp2 "lib")))
+ ("nghttp2" ,nghttp2 "lib")
+ ("python" ,python)))
(home-page "https://www.knot-resolver.cz/")
(synopsis "Caching validating DNS resolver")
(description
@@ -1045,14 +1105,13 @@ LuaJIT, both a resolver library and a daemon.")
(base32 "0hf377g4j9r9sac75xp17nk2h58mazswz4vkg4g2gl2yyhvzq91w"))))
(build-system trivial-build-system) ; no Makefile.PL
(native-inputs
- `(("bash" ,bash)
- ("perl" ,perl)))
+ (list bash perl))
(inputs
- `(("inetutils" ,inetutils) ; logger
- ("net-tools" ,net-tools)
- ("perl-data-validate-ip" ,perl-data-validate-ip)
- ("perl-digest-sha1" ,perl-digest-sha1)
- ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
+ (list inetutils ; logger
+ net-tools
+ perl-data-validate-ip
+ perl-digest-sha1
+ perl-io-socket-ssl))
(arguments
`(#:modules ((guix build utils))
#:builder
@@ -1150,12 +1209,9 @@ attempts the update when it has changed.")
(arguments
'(#:configure-flags '("--disable-static"))) ;no need for libhsk.a
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
+ (list autoconf automake libtool))
(inputs
- `(("unbound" ,unbound)
- ("libuv" ,libuv)))
+ (list unbound libuv))
(home-page "https://www.handshake.org/")
(synopsis "Resolver daemon for the Handshake naming protocol")
(description
@@ -1303,7 +1359,21 @@ and TCP-capable recursive DNS server for finding domains on the internet.")
#:configure-flags
(list (string-append "--sysconfdir=/etc"))
#:make-flags
- (list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))))
+ (list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (coreutils (assoc-ref inputs "coreutils-minimal")))
+ (substitute* (string-append out "/sbin/resolvconf")
+ (("RESOLVCONF=\"\\$0\"")
+ (format #f "\
+RESOLVCONF=\"$0\"
+PATH=~a/bin:$PATH"
+ coreutils)))))))))
+ (inputs
+ (list coreutils-minimal))
(home-page "https://roy.marples.name/projects/openresolv/")
(synopsis "Resolvconf POSIX compliant implementation, a middleman for resolv.conf")
(description "openresolv is an implementation of @command{resolvconf}, the