;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016 ng0 <ng0@n0.is>
+;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; 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.
;;;
#: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 databases)
#:use-module (gnu packages documentation)
#: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)
#:use-module (gnu packages glib)
#:use-module (gnu packages groff)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#: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)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
+ #: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 ldns
+ (package
+ (name "ldns")
+ (version "1.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://www.nlnetlabs.nl/downloads/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
+ (patches
+ (search-patches
+ ;; To create make-flag vairables,
+ ;; for splitting installation of drill and examples.
+ "ldns-drill-examples.patch"))))
+ (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"))))
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("ksh" ,oksh)
+ ("perl" ,perl)
+ ("perl-devel-checklib" ,perl-devel-checklib)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)
+ ("swig" ,swig)))
+ (inputs
+ `(("libpcap" ,libpcap)
+ ("nss-certs" ,nss-certs)
+ ("openssl" ,openssl)))
+ (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
+software conforming to current RFCs, and experimental software for current
+Internet Drafts. A secondary benefit of using ldns is speed; ldns is written in
+C it should be a lot faster than Perl.")
+ (home-page "https://nlnetlabs.nl/projects/ldns/about/")
+ (license license:bsd-3)))
+
+(define-public dnssec-trigger
+ (package
+ (name "dnssec-trigger")
+ (version "0.17")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://www.nlnetlabs.nl/downloads/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10928q406x9r66a090xl5kznzgyxpja88w4srwcv454hd351j9f0"))))
+ (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))))))
+ (native-inputs
+ `(("cmocka" ,cmocka)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)))
+ (inputs
+ `(("gtk+-2" ,gtk+-2)
+ ("ldns" ,ldns)
+ ("libappindicator" ,libappindicator)
+ ("openssl" ,openssl)
+ ("unbound" ,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
+your system, which performs DNSSEC validation. It reconfigures Unbound in such
+a way that it will signal it to to use the DHCP obtained forwarders if possible,
+fallback to doing its own AUTH queries if that fails, and if that fails it will
+prompt the user with the option to go with insecure DNS only.")
+ (home-page "https://www.nlnetlabs.nl/projects/dnssec-trigger/about/")
+ (license license:bsd-3)))
+
(define-public dnsmasq
(package
(name "dnsmasq")
- (version "2.80")
+ (version "2.82")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.xz"))
(sha256
(base32
- "1fv3g8vikj3sn37x1j6qsywn09w1jipvlv34j3q5qrljbrwa5ayd"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; The SIOCGSTAMP ioctl is defined in <linux/sockios.h> instead
- ;; of <asm/sockios.h> starting with linux-libre-headers 5.2.
- ;; Remove this for dnsmasq versions > 2.80.
- (substitute* "src/dnsmasq.h"
- (("#if defined\\(HAVE_LINUX_NETWORK\\)" all)
- (string-append all "\n#include <linux/sockios.h>")))
- #t))))
+ "0cn1xd1s6xs78jmrmwjnh9m6w3q38pk6dyqy2phvasqiyd33cll4"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public isc-bind
(package
(name "bind")
- (version "9.16.1")
+ ;; When updating, check whether isc-dhcp's bundled copy should be as well.
+ (version "9.16.10")
(source (origin
(method url-fetch)
(uri (string-append
"/bind-" version ".tar.xz"))
(sha256
(base32
- "14ayswxnyaqwb935iqdi1w9ih3zs0a0va59j4cyi5f9mh7kxf4x9"))))
+ "1cv26gzbyk3ahidr1fip0pgj28s7l52cafdqpykfc1b2kh0zqixw"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
(with-directory-excursion "fuzz"
(invoke "make" "check"))
#t)))))
- (synopsis "An implementation of the Domain Name System")
+ (synopsis "Domain Name System (DNS) implementation")
(description "BIND is an implementation of the @dfn{Domain Name System}
(DNS) protocols for the Internet. It is a reference implementation of those
protocols, but it is also production-grade software, suitable for use in
-high-volume and high-reliability applications. The name BIND stands for
-\"Berkeley Internet Name Domain\", because the software originated in the early
-1980s at the University of California at Berkeley.")
- (home-page "https://www.isc.org/downloads/bind")
+high-volume and high-reliability applications. The name BIND stands for
+\"Berkeley Internet Name Domain\", because the software originated in the
+early 1980s at the University of California at Berkeley. The @code{utils}
+output of this package contains the following DNS name servers related command
+line utilities:
+@table @code
+@item delv
+DNS lookup and validation utility
+@item dig
+DNS lookup utility
+@item host
+DNS lookup utility
+@item nslookup
+Internet name servers interactive query utility
+@item nsupdate
+Dynamic DNS update utility
+@end table")
+ (home-page "https://www.isc.org/bind/")
(license (list license:mpl2.0))))
(define-public dnscrypt-proxy
(synopsis "Asynchronous resolver library by the OpenBSD project")
(description
"libasr is a free, simple and portable asynchronous resolver library.
-It allows to run DNS queries and perform hostname resolutions in a fully
+It runs DNS queries and performs hostname resolution in a fully
asynchronous fashion.")
(license (list license:isc
license:bsd-2 ; last part of getrrsetbyname_async.c
(define-public nsd
(package
(name "nsd")
- (version "4.2.4")
+ (version "4.3.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
- (base32 "0z7j3vwqqj0hh8n5irb2yqwzl45k4sn2wczbq1b1lqv5cxv6vgcy"))))
+ (base32 "0l4ba80ihwg3s2ifhnkmk7rjabrcy5zw6sz4hn0vm9sif6lk9s1v"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(define-public unbound
(package
(name "unbound")
- (version "1.10.0")
+ (version "1.13.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.unbound.net/downloads/unbound-"
version ".tar.gz"))
(sha256
- (base32 "0mg9divpysr42sp0m693a70693dp8025v6c9dv1yabr4g1jlhbqm"))))
+ (base32 "18dj7migq6379hps59793457l81s3z7dll3y0fj6qcmhjlx08m59"))))
(build-system gnu-build-system)
(outputs '("out" "python"))
(native-inputs
(define-public yadifa
(package
(name "yadifa")
- (version "2.3.9")
+ (version "2.4.1")
(source
- (let ((build "8497"))
+ (let ((build "9916"))
(origin
(method url-fetch)
(uri
- (string-append "http://cdn.yadifa.eu/sites/default/files/releases/"
+ (string-append "https://www.yadifa.eu/sites/default/files/releases/"
"yadifa-" version "-" build ".tar.gz"))
(sha256
- (base32 "0xvyr91sfgzkpw6g3h893ldbwnki3w2472n56rr18w67qghs1sa5")))))
+ (base32 "1m1j7q1f0682xig8qign5ms52igix8pd45fds7p5j285dvrfa4xd")))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)))
(lambda _
(substitute* "Makefile.in"
((" (etc|var)") ""))
+ #t))
+ (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)))
#:configure-flags
(list "--sysconfdir=/etc"
"--localstatedir=/var"
- "--disable-build-timestamp" ; build reproducibly
- "--enable-shared"
- "--disable-static"
- "--enable-acl"
- "--enable-caching"
- "--enable-ctrl" ; enable remote control
- "--enable-nsec"
- "--enable-nsec3"
- "--enable-tsig")))
+ "--enable-shared" "--disable-static"
+ "--disable-build-timestamp"))) ; build reproducibly
(home-page "https://www.yadifa.eu/")
(synopsis "Authoritative DNS name server")
(description "YADIFA is an authoritative name server for the @dfn{Domain
(define-public knot
(package
(name "knot")
- (version "2.9.3")
+ (version "3.0.3")
(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 "0zm0642hkb16sqkqpa84f89f3s0bw44m837r1nia8m89swvz3bgj"))
+ (base32 "0xzig9l91wj6x23mh75vw2r51ihrgx916c7wxvpcfnwrqsv4f3hy"))
(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"))
(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
(define-public knot-resolver
(package
(name "knot-resolver")
- (version "4.3.0")
+ (version "5.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-resolver/"
"knot-resolver-" version ".tar.xz"))
(sha256
(base32
- "09ffmqx79lv5psr433x4n946njgsn071b9b7161pcb9bmrqz380c"))))
+ "09jqy23q1pgj76y2qd1xfk72wwmypnyawm3span3gx00qi2bfdxa"))))
(build-system meson-build-system)
+ (outputs '("out" "doc"))
(arguments
'(#:configure-flags '("-Ddoc=enabled")
#:phases
(add-after 'build 'build-doc
(lambda _
(invoke "ninja" "doc")))
+ (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move the manual and the example configuration files to the
+ ;; "doc" output.
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (mkdir-p (string-append doc "/share/doc/knot-resolver"))
+ (for-each
+ (lambda (dir)
+ (rename-file (string-append out "/share/" dir)
+ (string-append doc "/share/" dir)))
+ '("doc/knot-resolver/examples"
+ "doc/knot-resolver/html"
+ "info")))))
(add-after 'install 'wrap-binary
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
("pkg-config" ,pkg-config)
("python-breathe" ,python-breathe)
("python-sphinx" ,python-sphinx)
- ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
+ ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
+ ("texinfo" ,texinfo)))
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
- ("knot" ,knot)
+ ("knot:lib" ,knot "lib")
("libuv" ,libuv)
("lmdb" ,lmdb)
("luajit" ,luajit)
- ;; TODO: Add optional lua modules: basexx, cqueues and psl.
+ ;; TODO: Add optional lua modules: basexx and psl.
("lua-bitop" ,lua5.1-bitop)
- ("lua-filesystem" ,lua5.1-filesystem)
- ("lua-sec" ,lua5.1-sec)
- ("lua-socket" ,lua5.1-socket)))
+ ("nghttp2" ,nghttp2 "lib")))
(home-page "https://www.knot-resolver.cz/")
(synopsis "Caching validating DNS resolver")
(description
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ddclient/ddclient.git")
+ (url "https://github.com/ddclient/ddclient")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public libmicrodns
(package
(name "libmicrodns")
- (version "0.0.10")
+ (version "0.1.2")
(source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/videolabs/libmicrodns")
- (commit version)))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "https://github.com/videolabs/libmicrodns/"
+ "releases/download/" version "/microdns-"
+ version ".tar.xz"))
(sha256
(base32
- "1xvl9k49ng35wbsqmnjnyqvkyjf8dcq2ywsq3jp3wh0rgmxhq2fh"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)))
+ "0p4va18zxgmzcdwhlbg2mmjwswlbgqy4ay5vaxrw7cxmhsflnv36"))))
+ (build-system meson-build-system)
(home-page "https://github.com/videolabs/libmicrodns")
(synopsis "Minimal mDNS resolver library")
(description "@code{libmicrodns} provides a minimal implementation of a
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/publicsuffix/list.git")
+ (url "https://github.com/publicsuffix/list")
(commit commit)))
(file-name (git-file-name name version))
(sha256
of public suffixes are .com, .co.uk and pvt.k12.ma.us. This is a list of all
known public suffixes.")
(license license:mpl2.0))))
+
+(define-public maradns
+ (package
+ (name "maradns")
+ (version "3.5.0007")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://maradns.samiam.org/download/"
+ (version-major+minor version) "/"
+ version "/maradns-" version ".tar.xz"))
+ (sha256
+ (base32 "0bc19xylg4whww9qaj5i4izwxcrh0c0ja7l1pfcn2la02hlvg1a6"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; need to be root to run tests
+ #:make-flags
+ (list
+ ,(string-append "CC=" (cc-for-target))
+ (string-append "PREFIX=" %output)
+ (string-append "RPM_BUILD_ROOT=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key native-inputs target #:allow-other-keys)
+ ;; make_32bit_tables generates a header file that is used during
+ ;; compilation. Hence, during cross compilation, it should be
+ ;; built for the host system.
+ (when target
+ (substitute* "rng/Makefile"
+ (("\\$\\(CC\\) -o make_32bit_tables")
+ (string-append (assoc-ref native-inputs "gcc")
+ "/bin/gcc -o make_32bit_tables"))))
+ (invoke "./configure")))
+ (add-before 'install 'create-install-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (dir)
+ (mkdir-p (string-append out dir)))
+ (list "/bin" "/sbin" "/etc"
+ "/share/man/man1"
+ "/share/man/man5"
+ "/share/man/man8"))
+ #t))))))
+ (home-page "https://maradns.samiam.org")
+ (synopsis "Small lightweight DNS server")
+ (description "MaraDNS is a small and lightweight DNS server. MaraDNS
+consists of a UDP-only authoritative DNS server for hosting domains, and a UDP
+and TCP-capable recursive DNS server for finding domains on the internet.")
+ (license license:bsd-2)))
+
+(define-public openresolv
+ (package
+ (name "openresolv")
+ (version "3.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://roy.marples.name/downloads/openresolv/"
+ "openresolv-" version ".tar.xz"))
+ (sha256
+ (base32
+ "01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20"))
+ (patches
+ (search-patches "openresolv-restartcmd-guix.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No test suite
+ #:configure-flags
+ (list (string-append "--sysconfdir=/etc"))
+ #:make-flags
+ (list (string-append "SYSCONFDIR=/" (assoc-ref %outputs "out") "/etc"))))
+ (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
+middleman between the network configuration services and
+@file{/etc/resolv.conf}. @command{resolvconf} itself is just a script that
+stores, removes and lists a full @file{resolv.conf} generated for the
+interface. It then calls all the helper scripts it knows about so it can
+configure the real @file{/etc/resolv.conf} and optionally any local
+nameservers other than libc.")
+ (license license:bsd-2)))