mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-27 19:41:50 +02:00
store: 'build-things' accepts derivation/output pairs.
This allows callers to request the substitution of a single derivation
output.
* guix/store.scm (build-things): Accept derivation/output pairs among
THINGS.
* guix/derivations.scm (build-derivations): Likewise.
* tests/store.scm ("substitute + build-things with specific output"):
New test.
* tests/derivations.scm ("build-derivations with specific output"):
New test.
* doc/guix.texi (The Store): Adjust accordingly.
This commit is contained in:
@@ -787,6 +787,28 @@
|
||||
(build-derivations store (list drv))
|
||||
#f)))
|
||||
|
||||
(test-assert "build-derivations with specific output"
|
||||
(with-store store
|
||||
(let* ((content (random-text)) ;contents of the output
|
||||
(drv (build-expression->derivation
|
||||
store "substitute-me"
|
||||
`(begin ,content (exit 1)) ;would fail
|
||||
#:outputs '("out" "one" "two")
|
||||
#:guile-for-build
|
||||
(package-derivation store %bootstrap-guile)))
|
||||
(out (derivation->output-path drv)))
|
||||
(with-derivation-substitute drv content
|
||||
(set-build-options store #:use-substitutes? #t
|
||||
#:substitute-urls (%test-substitute-urls))
|
||||
(and (has-substitutes? store out)
|
||||
|
||||
;; Ask for nothing but the "out" output of DRV.
|
||||
(build-derivations store `((,drv . "out")))
|
||||
|
||||
(valid-path? store out)
|
||||
(equal? (pk 'x content) (pk 'y (call-with-input-file out get-string-all)))
|
||||
)))))
|
||||
|
||||
(test-assert "build-expression->derivation and derivation-prerequisites-to-build"
|
||||
(let ((drv (build-expression->derivation %store "fail" #f)))
|
||||
;; The only direct dependency is (%guile-for-build) and it's already
|
||||
|
||||
Reference in New Issue
Block a user