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:
Ludovic Courtès 2012-06-09 18:51:25 +02:00
parent 749c656755
commit 26b969dee0
2 changed files with 25 additions and 1 deletions

@ -396,4 +396,5 @@ from 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 @@
(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)