diff options
Diffstat (limited to 'gnu/packages/dns.scm')
-rw-r--r-- | gnu/packages/dns.scm | 570 |
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 |