mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
packages: Introduce <content-hash> and use it in <origin>.
* guix/packages.scm (<content-hash>): New record type.
(define-content-hash-constructor, build-content-hash)
(content-hash): New macros.
(print-content-hash): New procedure.
(<origin>): Rename constructor to '%origin'.
[sha256]: Remove field.
[hash]: New field. Adjust users.
(origin-compatibility-helper, origin): New macros.
(origin-sha256): New deprecated procedure.
(origin->derivation): Adjust accordingly.
* tests/packages.scm ("package-source-derivation, origin, sha512"): New
test.
* guix/tests.scm: Hide (gcrypt hash) 'sha256' for proper syntax
matching.
* tests/challenge.scm: Add #:prefix for (gcrypt hash) and adjust users.
* tests/derivations.scm: Likewise.
* tests/store.scm: Likewise.
* tests/graph.scm ("bag DAG, including origins"): Provide 'sha256' field
with the right length.
* gnu/packages/aspell.scm (aspell-dictionary)
(aspell-dict-ca, aspell-dict-it): Use 'hash' and 'content-hash' for
proper syntax matching.
* gnu/packages/bash.scm (bash-patch): Rename 'sha256' to 'sha256-bv'.
* gnu/packages/bootstrap.scm (bootstrap-executable): Rename 'sha256' to 'bv'.
* gnu/packages/readline.scm (readline-patch): Likewise.
* gnu/packages/virtualization.scm (qemu-patch): Rename 'sha256' to
'sha256-bv'.
* guix/import/utils.scm: Hide (gcrypt hash) 'sha256'.
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module ((gcrypt hash) #:prefix gcrypt:)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix tests)
|
||||
#:use-module (guix tests http)
|
||||
@@ -215,7 +215,7 @@
|
||||
#:env-vars `(("url"
|
||||
. ,(object->string (%local-url))))
|
||||
#:hash-algo 'sha256
|
||||
#:hash (sha256 (string->utf8 text)))))
|
||||
#:hash (gcrypt:sha256 (string->utf8 text)))))
|
||||
(and (build-derivations %store (list drv))
|
||||
(string=? (call-with-input-file (derivation->output-path drv)
|
||||
get-string-all)
|
||||
@@ -230,7 +230,7 @@
|
||||
#:env-vars `(("url"
|
||||
. ,(object->string (%local-url))))
|
||||
#:hash-algo 'sha256
|
||||
#:hash (sha256 (random-bytevector 100))))) ;wrong
|
||||
#:hash (gcrypt:sha256 (random-bytevector 100))))) ;wrong
|
||||
(guard (c ((store-protocol-error? c)
|
||||
(string-contains (store-protocol-error-message c) "failed")))
|
||||
(build-derivations %store (list drv))
|
||||
@@ -245,7 +245,7 @@
|
||||
#:env-vars `(("url"
|
||||
. ,(object->string (%local-url))))
|
||||
#:hash-algo 'sha256
|
||||
#:hash (sha256 (random-bytevector 100)))))
|
||||
#:hash (gcrypt:sha256 (random-bytevector 100)))))
|
||||
(guard (c ((store-protocol-error? c)
|
||||
(string-contains (store-protocol-error-message (pk c)) "failed")))
|
||||
(build-derivations %store (list drv))
|
||||
@@ -273,7 +273,7 @@
|
||||
#:env-vars `(("url"
|
||||
. ,(object->string (%local-url))))
|
||||
#:hash-algo 'sha256
|
||||
#:hash (sha256 (string->utf8 text)))))
|
||||
#:hash (gcrypt:sha256 (string->utf8 text)))))
|
||||
(and (with-http-server `((200 ,text))
|
||||
(build-derivations %store (list drv)))
|
||||
(with-http-server `((200 ,text))
|
||||
@@ -317,7 +317,7 @@
|
||||
(test-assert "fixed-output-derivation?"
|
||||
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
|
||||
"echo -n hello > $out" '()))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(drv (derivation %store "fixed"
|
||||
%bash `(,builder)
|
||||
#:sources (list builder)
|
||||
@@ -329,10 +329,10 @@
|
||||
(map (lambda (hash-algorithm)
|
||||
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
|
||||
"echo -n hello > $out" '()))
|
||||
(sha256 (sha256 (string->utf8 "hello")))
|
||||
(hash (bytevector-hash
|
||||
(sha256 (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:bytevector-hash
|
||||
(string->utf8 "hello")
|
||||
(lookup-hash-algorithm hash-algorithm)))
|
||||
(gcrypt:lookup-hash-algorithm hash-algorithm)))
|
||||
(drv (derivation %store
|
||||
(string-append
|
||||
"fixed-" (symbol->string hash-algorithm))
|
||||
@@ -353,7 +353,7 @@
|
||||
"echo -n hello > $out" '()))
|
||||
(builder2 (add-text-to-store %store "fixed-builder2.sh"
|
||||
"echo hey; echo -n hello > $out" '()))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(drv1 (derivation %store "fixed"
|
||||
%bash `(,builder1)
|
||||
#:hash hash #:hash-algo 'sha256))
|
||||
@@ -368,7 +368,7 @@
|
||||
(test-assert "fixed-output derivation, recursive"
|
||||
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
|
||||
"echo -n hello > $out" '()))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(drv (derivation %store "fixed-rec"
|
||||
%bash `(,builder)
|
||||
#:sources (list builder)
|
||||
@@ -390,7 +390,7 @@
|
||||
"echo -n hello > $out" '()))
|
||||
(builder2 (add-text-to-store %store "fixed-builder2.sh"
|
||||
"echo hey; echo -n hello > $out" '()))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(fixed1 (derivation %store "fixed"
|
||||
%bash `(,builder1)
|
||||
#:hash hash #:hash-algo 'sha256))
|
||||
@@ -427,7 +427,7 @@
|
||||
"echo -n hello > $out" '()))
|
||||
(builder2 (add-text-to-store %store "fixed-builder2.sh"
|
||||
"echo hey; echo -n hello > $out" '()))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(fixed1 (derivation %store "fixed"
|
||||
%bash `(,builder1)
|
||||
#:hash hash #:hash-algo 'sha256))
|
||||
@@ -680,7 +680,7 @@
|
||||
(let* ((value (getenv "GUIX_STATE_DIRECTORY"))
|
||||
(drv (derivation %store "leaked-env-vars" %bash
|
||||
'("-c" "echo -n $GUIX_STATE_DIRECTORY > $out")
|
||||
#:hash (sha256 (string->utf8 value))
|
||||
#:hash (gcrypt:sha256 (string->utf8 value))
|
||||
#:hash-algo 'sha256
|
||||
#:sources (list %bash)
|
||||
#:leaked-env-vars '("GUIX_STATE_DIRECTORY"))))
|
||||
@@ -1106,7 +1106,7 @@
|
||||
(builder2 '(call-with-output-file (pk 'difference-here! %output)
|
||||
(lambda (p)
|
||||
(write "hello" p))))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(input1 (build-expression->derivation %store "fixed" builder1
|
||||
#:hash hash
|
||||
#:hash-algo 'sha256))
|
||||
@@ -1127,7 +1127,7 @@
|
||||
(builder2 '(call-with-output-file (pk 'difference-here! %output)
|
||||
(lambda (p)
|
||||
(write "hello" p))))
|
||||
(hash (sha256 (string->utf8 "hello")))
|
||||
(hash (gcrypt:sha256 (string->utf8 "hello")))
|
||||
(input1 (build-expression->derivation %store "fixed" builder1
|
||||
#:hash hash
|
||||
#:hash-algo 'sha256))
|
||||
|
||||
Reference in New Issue
Block a user