mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-27 06:42:14 -05:00
profiles: 'lower-manifest-entry' recurses on dependencies.
* guix/profiles.scm (lower-manifest-entry)[recurse]: New procedure. Call it on dependencies and set the 'dependencies' field accordingly.
This commit is contained in:
parent
a187cc5628
commit
1a9a373eb4
1 changed files with 9 additions and 2 deletions
|
@ -264,17 +264,24 @@ (define mapping
|
|||
(define* (lower-manifest-entry entry system #:key target)
|
||||
"Lower ENTRY for SYSTEM and TARGET such that its 'item' field is a store
|
||||
file name."
|
||||
(define (recurse entry)
|
||||
(mapm/accumulate-builds (lambda (entry)
|
||||
(lower-manifest-entry entry system
|
||||
#:target target))
|
||||
(manifest-entry-dependencies entry)))
|
||||
|
||||
(let ((item (manifest-entry-item entry)))
|
||||
(if (string? item)
|
||||
(with-monad %store-monad
|
||||
(return entry))
|
||||
(mlet %store-monad ((drv (lower-object item system
|
||||
#:target target))
|
||||
(dependencies (recurse entry))
|
||||
(output -> (manifest-entry-output entry)))
|
||||
(return (manifest-entry
|
||||
(inherit entry)
|
||||
;; TODO: Lower dependencies, recursively.
|
||||
(item (derivation->output-path drv output))))))))
|
||||
(item (derivation->output-path drv output))
|
||||
(dependencies dependencies)))))))
|
||||
|
||||
(define* (check-for-collisions manifest system #:key target)
|
||||
"Check whether the entries of MANIFEST conflict with one another; raise a
|
||||
|
|
Loading…
Reference in a new issue