summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/gexp.scm15
1 files changed, 7 insertions, 8 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm
index 01084c2620..a52360cd11 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -101,7 +101,7 @@ The other arguments are as for 'derivation'."
   (define outputs (gexp-outputs exp))
 
   (mlet* %store-monad ((inputs   (lower-inputs (gexp-inputs exp)))
-                       (sexp     (gexp->sexp exp #:outputs outputs))
+                       (sexp     (gexp->sexp exp))
                        (builder  (text-file (string-append name "-builder")
                                             (object->string sexp)))
                        (modules  (if (pair? %modules)
@@ -179,7 +179,7 @@ The other arguments are as for 'derivation'."
               '()
               (gexp-references exp)))
 
-(define* (gexp->sexp exp #:key (outputs '()))
+(define* (gexp->sexp exp)
   "Return (monadically) the sexp corresponding to EXP for the given OUTPUT,
 and in the current monad setting (system type, etc.)"
   (define (reference->sexp ref)
@@ -190,13 +190,12 @@ and in the current monad setting (system type, etc.)"
         (((? package? p) (? string? output))
          (package-file p #:output output))
         (($ <output-ref> output)
-         (match (member output outputs)
-           (#f
-            (error "no such output" output))
-           (_
-            (return `((@ (guile) getenv) ,output)))))
+         ;; Output file names are not known in advance but the daemon defines
+         ;; an environment variable for each of them at build time, so use
+         ;; that trick.
+         (return `((@ (guile) getenv) ,output)))
         ((? gexp? exp)
-         (gexp->sexp exp #:outputs outputs))
+         (gexp->sexp exp))
         (((? string? str))
          (return (if (direct-store-path? str) str ref)))
         ((refs ...)