guix-glicid/glicid/packages/dns.scm

115 lines
6.3 KiB
Scheme
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(define-module (glicid packages dns)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cargo)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages linux)
#:use-module (gnu packages libevent)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (glicid packages web)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-web)
#:use-module (gnu packages crates-tls))
(define-public isc-bind
(package
(name "bind")
(version "9.20.1")
(source (origin
(method url-fetch)
(uri (list (string-append "https://downloads.isc.org/isc/bind9/" version "/bind-" version ".tar.xz")))
(sha256 (base32 "1c5f548l4b6w61x6vxlf2d88sbli4fn26mrbnqrhsh9197vxyvgy"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
(list libcap libuv liburcu libxml2 openssl p11-kit python `(,nghttp2 "lib") python-ply))
(native-inputs
(list perl pkg-config))
(arguments
`(
#:configure-flags
(list "--with-sysroot=/"
(string-append "--with-pkcs11=" (assoc-ref %build-inputs "p11-kit")))
#:phases
(modify-phases %standard-phases
(add-after 'strip 'move-to-utils
(lambda _
(for-each
(lambda (file)
(let ((target (string-append (assoc-ref %outputs "utils") file))
(src (string-append (assoc-ref %outputs "out") file)))
(mkdir-p (dirname target))
(link src target)
(delete-file src)))
'("/bin/dig" "/bin/delv" "/bin/nslookup" "/bin/host" "/bin/nsupdate"
"/share/man/man1/dig.1" "/share/man/man1/host.1" "/share/man/man1/nslookup.1"
"/share/man/man1/nsupdate.1"))
#t))
(replace 'check
(lambda _
(with-directory-excursion "fuzz" (invoke "make" "check"))
#t)))))
(synopsis "@acronym{DNS, Domain Name System} implementation")
(description "BIND implements the @acronym{DNS, Domain Name System} protocols for the Internet. check gnu/packages/dns for more")
(home-page "https://www.isc.org/bind/")
(license (list license:mpl2.0))))
(define-public rust-hickory-dns-0.24
(package
(name "rust-hickory-dns")
(version "0.24.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "hickory-dns" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0lxa0yz7fng4gjbgqcjxfbfsw62lwamgfhzzf44cimi0vmk092yb"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ;Error: No such file or directory (os error 2)
#:cargo-inputs (("rust-clap" ,rust-clap-4)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-hickory-client" ,rust-hickory-client-0.24)
("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-hickory-server" ,rust-hickory-server-0.24)
("rust-rustls" ,rust-rustls-0.21)
("rust-time" ,rust-time-0.3)
("rust-tokio" ,rust-tokio-1)
("rust-tracing" ,rust-tracing-0.1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))
#:features (list "dns-over-https-rustls") ; YD
#:cargo-development-inputs (("rust-hickory-proto" ,rust-hickory-proto-0.24)
("rust-hickory-resolver" ,rust-hickory-resolver-0.24)
("rust-native-tls" ,rust-native-tls-0.2)
("rust-regex" ,rust-regex-1)
("rust-webpki-roots" ,rust-webpki-roots-0.25))))
(inputs (list openssl-3.0)) ;; shouldn't be necessary
(home-page "https://hickory-dns.org/")
(synopsis
"Hickory DNS is a safe and secure DNS server with DNSSEC support.
Eventually this could be a replacement for BIND9. The DNSSEC support allows
for live signing of all records, in it does not currently support
records signed offline. The server supports dynamic DNS with SIG0 authenticated
requests. Hickory DNS is based on the Tokio and Futures libraries, which means
it should be easily integrated into other software that also use those
libraries.
")
(description
"Hickory DNS is a safe and secure DNS server with DNSSEC support. Eventually
this could be a replacement for BIND9. The DNSSEC support allows for live
signing of all records, in it does not currently support records signed offline.
The server supports dynamic DNS with SIG0 authenticated requests. Hickory DNS
is based on the Tokio and Futures libraries, which means it should be easily
integrated into other software that also use those libraries.")
(license (list license:expat license:asl2.0)
)))