From e0608cfb9c7c150a7123b18654dd4c3909fe4f07 Mon Sep 17 00:00:00 2001 From: "dupont-y@univ-nantes.fr" Date: Wed, 24 Apr 2024 16:47:06 +0200 Subject: [PATCH] add hickory dns server --- glicid/packages/dns.scm | 61 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/glicid/packages/dns.scm b/glicid/packages/dns.scm index c4fe01d..9294c20 100644 --- a/glicid/packages/dns.scm +++ b/glicid/packages/dns.scm @@ -1,5 +1,6 @@ (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) @@ -12,7 +13,11 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages tls) #:use-module (gnu packages xml) - #:use-module (glicid packages web)) + #: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 @@ -55,3 +60,57 @@ (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) +))) +