From 650dcc18e7f840a789a6aa06533b4a4ffc06af59 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 19 Oct 2021 11:33:28 -0400 Subject: [PATCH] gnu: Add BLAKE3 command line tool. * gnu/packages/crypto.scm (b3sum): New variable. --- gnu/packages/crypto.scm | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index a2b67fd332..b6f2010a80 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1571,3 +1571,52 @@ SHA-3, and BLAKE2.") ;; Users may choose between these two licenses when redistributing the ;; program provided by this package. (license (list license:cc0 license:asl2.0)))) + +(define-public b3sum + (package + (name "b3sum") + ;; Version 1 requires Rust >= 1.51. + ;; + (version "0.3.8") + (source + (origin + (method url-fetch) + (uri (crate-uri "b3sum" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0h3fz16q5lk6mg7r8kjkjrq5hd4injngn5m7pswjbf2pyzjmg4b4")))) + (build-system cargo-build-system) + (arguments + `(;; Install the source so that Cargo.toml is installed, because that is + ;; the only reference to the license information. + #:install-source? #t + #:phases + (modify-phases %standard-phases + (add-before 'check 'patch-tests + (lambda _ + (substitute* "tests/cli_tests.rs" + (("/bin/sh") (which "sh"))))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" + ,(package-version this-package)))) + (install-file "README.md" doc))))) + #:cargo-inputs + (("rust-anyhow" ,rust-anyhow-1) + ("rust-blake3" ,rust-blake3-0.3) + ("rust-clap" ,rust-clap-2) + ("rust-hex" ,rust-hex-0.4) + ("rust-memmap" ,rust-memmap-0.7) + ("rust-rayon" ,rust-rayon-1) + ("rust-wild" ,rust-wild-2)) + #:cargo-development-inputs + (("rust-duct" ,rust-duct-0.13) + ("rust-tempfile" ,rust-tempfile-3)))) + (home-page "https://github.com/BLAKE3-team/BLAKE3") + (synopsis "Command line BLAKE3 checksum tool") + (description "This package provides @code{b3sum}, a command line +checksum tool based on the BLAKE3 cryptographic hash function.") + ;; Users may choose between these two licenses when redistributing the + ;; program provided by this package. + (license (list license:cc0 license:asl2.0))))