aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/crypto.scm49
1 files changed, 49 insertions, 0 deletions
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.
+ ;; <https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.0.0>
+ (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))))