mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-27 23:02:16 -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)
|
(define* (lower-manifest-entry entry system #:key target)
|
||||||
"Lower ENTRY for SYSTEM and TARGET such that its 'item' field is a store
|
"Lower ENTRY for SYSTEM and TARGET such that its 'item' field is a store
|
||||||
file name."
|
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)))
|
(let ((item (manifest-entry-item entry)))
|
||||||
(if (string? item)
|
(if (string? item)
|
||||||
(with-monad %store-monad
|
(with-monad %store-monad
|
||||||
(return entry))
|
(return entry))
|
||||||
(mlet %store-monad ((drv (lower-object item system
|
(mlet %store-monad ((drv (lower-object item system
|
||||||
#:target target))
|
#:target target))
|
||||||
|
(dependencies (recurse entry))
|
||||||
(output -> (manifest-entry-output entry)))
|
(output -> (manifest-entry-output entry)))
|
||||||
(return (manifest-entry
|
(return (manifest-entry
|
||||||
(inherit 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)
|
(define* (check-for-collisions manifest system #:key target)
|
||||||
"Check whether the entries of MANIFEST conflict with one another; raise a
|
"Check whether the entries of MANIFEST conflict with one another; raise a
|
||||||
|
|
Loading…
Reference in a new issue