diff options
Diffstat (limited to 'gnu/packages/dns.scm')
-rw-r--r-- | gnu/packages/dns.scm | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index b49a0b7392..16e2220c90 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,9 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages databases) + #:use-module (gnu packages crypto) #:use-module (gnu packages groff) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -134,6 +137,97 @@ high-volume and high-reliability applications. The name BIND stands for (home-page "https://www.isc.org/downloads/bind") (license (list license:isc)))) +(define-public dnscrypt-proxy + (package + (name "dnscrypt-proxy") + (version "1.7.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://download.dnscrypt.org/dnscrypt-proxy/" + "dnscrypt-proxy-" version ".tar.bz2")) + (sha256 + (base32 + "1qw2nib0d5ia8581lbdnjxgn9c7pf2qw8vhpnnh1wjcjj3gpgbqx")) + (modules '((guix build utils))) + (snippet + ;; Delete bundled libltdl. XXX: This package also bundles + ;; a modified libevent that cannot currently be removed. + '(delete-file-recursively "libltdl")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'autoreconf + (lambda _ + ;; Re-generate build files due to unbundling ltdl. + ;; TODO: Prevent generating new libltdl and building it. + ;; The system version is still favored and referenced. + (zero? (system* "autoreconf" "-vif"))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("automake" ,automake) + ("autoconf" ,autoconf) + ("libtool" ,libtool))) + (inputs + `(("libltdl" ,libltdl) + ("libsodium" ,libsodium))) + (home-page "https://www.dnscrypt.org/") + (synopsis "Securely send DNS requests to a remote server") + (description + "@command{dnscrypt-proxy} is a tool for securing communications +between a client and a DNS resolver. It verifies that responses you get +from a DNS provider was actually sent by that provider, and haven't been +tampered with. For optimal performance it is recommended to use this as +a forwarder for a caching DNS resolver such as @command{dnsmasq}, but it +can also be used as a normal DNS \"server\". A list of public dnscrypt +servers is included, and an up-to-date version is available at +@url{https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv}.") + (license (list license:isc + ;; Libevent and src/ext/queue.h is 3-clause BSD. + license:bsd-3)))) + +(define-public dnscrypt-wrapper + (package + (name "dnscrypt-wrapper") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/cofyc/dnscrypt-wrapper/releases" + "/download/v" version "/" name "-v" version ".tar.bz2")) + (sha256 + (base32 + "1vhg4g0r687f51wcdn7z9w1hxapazx6vyh5rsr8wa48sljzd583g")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags '("CC=gcc") + ;; TODO: Tests require ruby-cucumber and ruby-aruba. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'configure 'create-configure + (lambda _ + (zero? (system* "make" "configure"))))))) + (native-inputs + `(("autoconf" ,autoconf))) + (inputs + `(("libevent" ,libevent) + ("libsodium" ,libsodium))) + (home-page "https://github.com/Cofyc/dnscrypt-wrapper") + (synopsis "Server-side dnscrypt proxy") + (description + "@command{dnscrypt-wrapper} is a tool to expose a name server over +the @code{dnscrypt} protocol. It can be used as an endpoint for the +@command{dnscrypt-proxy} client to securely tunnel DNS requests between +the two.") + (license (list license:isc + ;; Bundled argparse is MIT. TODO: package and unbundle. + license:expat + ;; dns-protocol.h and rfc1035.{c,h} is gpl2 or gpl3 (either). + license:gpl2 + license:gpl3)))) + (define-public libasr (package (name "libasr") |