packages: Recognize SHA3 and BLAKE2s for 'content-hash'.

* guix/packages.scm (build-content-hash): Add 'sha3-256', 'sha3-512',
and 'blake2s-256'.
* tests/packages.scm ("package-source-derivation, origin, sha3-512"):
New test.
This commit is contained in:
Ludovic Courtès 2020-06-23 16:35:58 +02:00
parent 8e6c1415d8
commit 0505eda9c7
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 30 additions and 1 deletions

View file

@ -191,7 +191,10 @@ (define-syntax name
(define-content-hash-constructor build-content-hash
(sha256 32)
(sha512 64))
(sha512 64)
(sha3-256 32)
(sha3-512 64)
(blake2s-256 64))
(define-syntax content-hash
(lambda (s)

View file

@ -524,6 +524,32 @@ (define read-at
(build-derivations %store (list drv))
(call-with-input-file output get-string-all)))
(test-equal "package-source-derivation, origin, sha3-512"
"hello, sha3"
(let* ((bash (search-bootstrap-binary "bash" (%current-system)))
(builder (add-text-to-store %store "my-fixed-builder.sh"
"echo -n hello, sha3 > $out" '()))
(method (lambda* (url hash-algo hash #:optional name
#:rest rest)
(and (eq? hash-algo 'sha3-512)
(raw-derivation name bash (list builder)
#:sources (list builder)
#:hash hash
#:hash-algo hash-algo))))
(source (origin
(method method)
(uri "unused://")
(file-name "origin-sha3")
(hash (content-hash
(gcrypt:bytevector-hash (string->utf8 "hello, sha3")
(gcrypt:lookup-hash-algorithm
'sha3-512))
sha3-512))))
(drv (package-source-derivation %store source))
(output (derivation->output-path drv)))
(build-derivations %store (list drv))
(call-with-input-file output get-string-all)))
(unless (network-reachable?) (test-skip 1))
(test-equal "package-source-derivation, snippet"
"OK"