2023-02-17 16:46:09 +00:00
|
|
|
|
(define-module (glicid packages dns)
|
2023-02-17 17:41:38 +01:00
|
|
|
|
#:use-module (guix build-system gnu)
|
2024-04-24 16:47:06 +02:00
|
|
|
|
#:use-module (guix build-system cargo)
|
2023-02-17 17:41:38 +01:00
|
|
|
|
#:use-module (guix download)
|
|
|
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
|
|
|
#:use-module (guix packages)
|
|
|
|
|
#:use-module (guix utils)
|
|
|
|
|
#: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)
|
2024-04-24 16:47:06 +02:00
|
|
|
|
#:use-module (glicid packages web)
|
|
|
|
|
#:use-module (gnu packages crates-io)
|
|
|
|
|
#:use-module (gnu packages crates-web)
|
|
|
|
|
#:use-module (gnu packages crates-tls))
|
|
|
|
|
|
2023-02-17 17:41:38 +01:00
|
|
|
|
|
|
|
|
|
(define-public isc-bind
|
|
|
|
|
(package
|
|
|
|
|
(name "bind")
|
2023-10-19 12:48:36 +02:00
|
|
|
|
(version "9.18.19")
|
2023-02-17 17:41:38 +01:00
|
|
|
|
(source (origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (list (string-append "https://downloads.isc.org/isc/bind9/" version "/bind-" version ".tar.xz")))
|
2023-10-19 12:48:36 +02:00
|
|
|
|
(sha256 (base32 "1k0jfv9a91wcb28gdply29h3psw8z84dlbi73pgbmgirak00jphi"))))
|
2023-02-17 17:41:38 +01:00
|
|
|
|
(build-system gnu-build-system)
|
|
|
|
|
(outputs `("out" "utils"))
|
|
|
|
|
(inputs
|
|
|
|
|
(list libcap libuv libxml2 openssl p11-kit python `(,nghttp2 "lib") python-ply))
|
|
|
|
|
(native-inputs
|
|
|
|
|
(list perl pkg-config))
|
|
|
|
|
(arguments
|
|
|
|
|
`(
|
|
|
|
|
#:configure-flags
|
|
|
|
|
(list "--with-sysroot=/")
|
|
|
|
|
#: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))))
|
2024-04-24 16:47:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(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)
|
|
|
|
|
)))
|
|
|
|
|
|