Skip to content
Snippets Groups Projects
Commit 8c35bfb6 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

system: Rewrite 'union' using gexps.

* gnu/system.scm (union): Rewrite using 'gexp->derivation'.
parent 8779d342
No related branches found
No related tags found
No related merge requests found
......@@ -120,38 +120,23 @@ (define* (union inputs
"Return a derivation that builds the union of INPUTS. INPUTS is a list of
input tuples."
(define builder
'(begin
(use-modules (guix build union))
#~(begin
(use-modules (guix build union))
(define inputs '#$inputs)
(setvbuf (current-output-port) _IOLBF)
(setvbuf (current-error-port) _IOLBF)
(setvbuf (current-output-port) _IOLBF)
(setvbuf (current-error-port) _IOLBF)
(let ((output (assoc-ref %outputs "out"))
(inputs (map cdr %build-inputs)))
(format #t "building union `~a' with ~a packages...~%"
output (length inputs))
(union-build output inputs))))
(format #t "building union `~a' with ~a packages...~%"
#$output (length inputs))
(union-build #$output inputs)))
(mlet %store-monad
((inputs (sequence %store-monad
(map (match-lambda
((or ((? package? p)) (? package? p))
(mlet %store-monad
((drv (package->derivation p system)))
(return `(,name ,drv))))
(((? package? p) output)
(mlet %store-monad
((drv (package->derivation p system)))
(return `(,name ,drv ,output))))
(x
(return x)))
inputs))))
(derivation-expression name builder
#:system system
#:inputs inputs
#:modules '((guix build union))
#:guile-for-build guile
#:local-build? #t)))
(gexp->derivation name builder
#:system system
#:modules '((guix build union))
#:guile-for-build guile
#:local-build? #t))
(define* (file-union name files)
"Return a derivation that builds a directory containing all of FILES. Each
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment