From db393b333f77ffbb573faf47b6df74dc65a0e85b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 16 Jun 2012 16:46:29 +0200 Subject: build-expression->derivation: Have the build fail when EXP returns #f. * guix/derivations.scm (build-expression->derivation)[builder]: Pass the result of EXP to `exit'. * tests/derivations.scm ("build-expression->derivation with expression returning #f"): New test. --- guix/derivations.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'guix') diff --git a/guix/derivations.scm b/guix/derivations.scm index ffdf570fc2..24ee06c399 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -446,7 +446,9 @@ derivation NAME. INPUTS must be a list of (NAME DRV-PATH SUB-DRV) tuples; when SUB-DRV is omitted, \"out\" is assumed. EXP is evaluated in an environment where %OUTPUT is bound to the main output path, %OUTPUTS is bound to a list of output/path pairs, and where %BUILD-INPUTS is bound to an alist -of string/output-path pairs made from INPUTS." +of string/output-path pairs made from INPUTS. The builder terminates by +passing the result of EXP to `exit'; thus, when EXP returns #f, the build is +considered to have failed." (define guile (string-append (derivation-path->output-path (%guile-for-build)) "/bin/guile")) @@ -472,7 +474,8 @@ of string/output-path pairs made from INPUTS." (builder (add-text-to-store store (string-append name "-guile-builder") (string-append (object->string prologue) - (object->string exp)) + (object->string + `(exit ,exp))) (map second inputs))) (mod-drv (if (null? modules) #f -- cgit v1.2.3