mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
Add support for fixed-output derivations in `build-expression->derivation'.
* guix/derivations.scm (build-expression->derivation): Pass HASH and HASH-ALGO to `derivation'. * tests/derivations.scm ("build-expression->derivation for fixed-output derivation"): New test.
This commit is contained in:
parent
749c656755
commit
26b969dee0
2 changed files with 25 additions and 1 deletions
|
@ -396,4 +396,5 @@ (define %build-inputs
|
|||
(derivation store name system guile `("--no-auto-compile" ,builder)
|
||||
'(("HOME" . "/homeless"))
|
||||
`((,(%guile-for-build))
|
||||
(,builder)))))
|
||||
(,builder))
|
||||
#:hash hash #:hash-algo hash-algo)))
|
||||
|
|
|
@ -141,6 +141,29 @@ (define %coreutils
|
|||
(let ((p (derivation-path->output-path drv-path)))
|
||||
(string-contains (call-with-input-file p read-line) "GNU")))))
|
||||
|
||||
(test-skip (if (false-if-exception (getaddrinfo "ftp.gnu.org" "http"))
|
||||
0
|
||||
1))
|
||||
|
||||
(test-assert "build-expression->derivation for fixed-output derivation"
|
||||
(let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")
|
||||
(builder `(begin
|
||||
(use-modules (web client) (web uri)
|
||||
(rnrs io ports))
|
||||
(let ((bv (http-get (string->uri ,url)
|
||||
#:decode-body? #f)))
|
||||
(call-with-output-file %output
|
||||
(lambda (p)
|
||||
(put-bytevector p bv))))))
|
||||
(drv-path (build-expression->derivation
|
||||
%store "hello-2.8.tar.gz" "x86_64-linux" builder '()
|
||||
#:hash (nix-base32-string->bytevector
|
||||
"0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")
|
||||
#:hash-algo 'sha256))
|
||||
(succeeded? (build-derivations %store (list drv-path))))
|
||||
(and succeeded?
|
||||
(file-exists? (derivation-path->output-path drv-path)))))
|
||||
|
||||
(test-end)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue