mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
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:
parent
8e6c1415d8
commit
0505eda9c7
2 changed files with 30 additions and 1 deletions
|
@ -191,7 +191,10 @@ (define-syntax name
|
||||||
|
|
||||||
(define-content-hash-constructor build-content-hash
|
(define-content-hash-constructor build-content-hash
|
||||||
(sha256 32)
|
(sha256 32)
|
||||||
(sha512 64))
|
(sha512 64)
|
||||||
|
(sha3-256 32)
|
||||||
|
(sha3-512 64)
|
||||||
|
(blake2s-256 64))
|
||||||
|
|
||||||
(define-syntax content-hash
|
(define-syntax content-hash
|
||||||
(lambda (s)
|
(lambda (s)
|
||||||
|
|
|
@ -524,6 +524,32 @@ (define read-at
|
||||||
(build-derivations %store (list drv))
|
(build-derivations %store (list drv))
|
||||||
(call-with-input-file output get-string-all)))
|
(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))
|
(unless (network-reachable?) (test-skip 1))
|
||||||
(test-equal "package-source-derivation, snippet"
|
(test-equal "package-source-derivation, snippet"
|
||||||
"OK"
|
"OK"
|
||||||
|
|
Loading…
Reference in a new issue