summaryrefslogtreecommitdiff
path: root/guix/ui.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-09-18 17:01:40 +0200
committerLudovic Courtès <ludo@gnu.org>2013-09-18 18:49:53 +0200
commit59688fc4b5cfac3e05610195a47795f5cc15f338 (patch)
treea1f498fc498857e65e5002817760c8721c9caf45 /guix/ui.scm
parent81b66f8567ea2e3ecb0983318d5dedd3b1332e48 (diff)
derivations: 'derivation' and related procedures return a single value.
* guix/derivations.scm (derivation->output-path, derivation->output-paths): New procedures. (derivation-path->output-path): Use 'derivation->output-path'. (derivation-path->output-paths): Use 'derivation->output-paths'. (derivation): Accept 'derivation?' objects as inputs. Return a single value. (build-derivations): New procedure. (compiled-modules): Use 'derivation->output-paths'. (build-expression->derivation)[source-path]: Add case for when the input matches 'derivation?'. [prologue]: Accept 'derivation?' objects in INPUTS. [mod-dir, go-dir]: Use 'derivation->output-path'. * guix/download.scm (url-fetch): Adjust to the single-value return. * guix/packages.scm (package-output): Use 'derivation->output-path'. * guix/scripts/build.scm (guix-build): When the argument is 'derivation-path?', pass it through 'read-derivation'. Use 'derivation-file-name' to print out the .drv file names, and to register them. Use 'derivation->output-path' instead of 'derivation-path->output-path'. * guix/scripts/package.scm (roll-back): Adjust to the single-value return. (guix-package): Use 'derivation->output-path'. * guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?' objects instead of .drv file names. * gnu/system/grub.scm (grub-configuration-file): Use 'derivation->output-path' instead of 'derivation-path->output-path'. * gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise. * tests/builders.scm, tests/derivations.scm, tests/packages.scm, tests/store.scm, tests/union.scm: Adjust to the new calling convention. * doc/guix.texi (Defining Packages, The Store, Derivations): Adjust accordingly.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r--guix/ui.scm34
1 files changed, 17 insertions, 17 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index 720d01be02..293730308e 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -210,27 +210,27 @@ derivations listed in DRV. Return #t if there's something to build, #f
otherwise. When USE-SUBSTITUTES?, check and report what is prerequisites are
available for download."
(let*-values (((build download)
- (fold2 (lambda (drv-path build download)
- (let ((drv (call-with-input-file drv-path
- read-derivation)))
- (let-values (((b d)
- (derivation-prerequisites-to-build
- store drv
- #:use-substitutes?
- use-substitutes?)))
- (values (append b build)
- (append d download)))))
+ (fold2 (lambda (drv build download)
+ (let-values (((b d)
+ (derivation-prerequisites-to-build
+ store drv
+ #:use-substitutes?
+ use-substitutes?)))
+ (values (append b build)
+ (append d download))))
'() '()
drv))
((build) ; add the DRV themselves
(delete-duplicates
- (append (remove (compose (lambda (out)
- (or (valid-path? store out)
- (and use-substitutes?
- (has-substitutes? store
- out))))
- derivation-path->output-path)
- drv)
+ (append (map derivation-file-name
+ (remove (lambda (drv)
+ (let ((out (derivation->output-path
+ drv)))
+ (or (valid-path? store out)
+ (and use-substitutes?
+ (has-substitutes? store
+ out)))))
+ drv))
(map derivation-input-path build))))
((download) ; add the references of DOWNLOAD
(if use-substitutes?