From 0309e1b0ba9764746fc99c6ee02917c585ea8579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 29 Aug 2015 00:32:31 +0200 Subject: [PATCH] gexp: Add #:script-name parameter to 'gexp->derivation'. * guix/gexp.scm (gexp->derivation): Add #:script-name parameter. * doc/guix.texi (G-Expressions): Document it. --- doc/guix.texi | 8 +++++--- guix/gexp.scm | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2973411beb..f69440c325 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3263,11 +3263,13 @@ information about monads.) [#:module-path @var{%load-path}] @ [#:references-graphs #f] [#:allowed-references #f] @ [#:leaked-env-vars #f] @ + [#:script-name (string-append @var{name} "-builder")] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with -@var{guile-for-build} (a derivation) on @var{system}. When @var{target} -is true, it is used as the cross-compilation target triplet for packages -referred to by @var{exp}. +@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is +stored in a file called @var{script-name}. When @var{target} is true, +it is used as the cross-compilation target triplet for packages referred +to by @var{exp}. Make @var{modules} available in the evaluation context of @var{exp}; @var{modules} is a list of names of Guile modules searched in diff --git a/guix/gexp.scm b/guix/gexp.scm index 6dc816dc40..63af40aed9 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -331,10 +331,12 @@ (define* (gexp->derivation name exp references-graphs allowed-references leaked-env-vars - local-build? (substitutable? #t)) + local-build? (substitutable? #t) + (script-name (string-append name "-builder"))) "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a -derivation) on SYSTEM. When TARGET is true, it is used as the -cross-compilation target triplet for packages referred to by EXP. +derivation) on SYSTEM; EXP is stored in a file called SCRIPT-NAME. When +TARGET is true, it is used as the cross-compilation target triplet for +packages referred to by EXP. Make MODULES available in the evaluation context of EXP; MODULES is a list of names of Guile modules searched in MODULE-PATH to be copied in the store, @@ -397,7 +399,7 @@ (define (graphs-file-names graphs) (sexp (gexp->sexp exp #:system system #:target target)) - (builder (text-file (string-append name "-builder") + (builder (text-file script-name (object->string sexp))) (modules (if (pair? %modules) (imported-modules %modules