~ruther/guix-local

2142fce0562b6bf3f7f5460e069ddf377e5a62b2 — Hilton Chain 9 months ago 48ddcb0
profiles: package->manifest-entry: Filter packages.

The new Rust packaging model moves sources to inputs and there'll be
possiblity to have sources in propagated-inputs as well.

* guix/profiles.scm (package->manifest-entry): Filter packages.
* tests/profiles.scm ("package->manifest-entry, origin in propagated inputs"):
New test.

Change-Id: Id5b9ceb693a35760289b04cd9b8f208b4cbf2e35
2 files changed, 22 insertions(+), 8 deletions(-)

M guix/profiles.scm
M tests/profiles.scm
M guix/profiles.scm => guix/profiles.scm +11 -8
@@ 384,14 384,17 @@ file name."
                                  (properties (default-package-properties package)))
  "Return a manifest entry for the OUTPUT of package PACKAGE."
  ;; For each dependency, keep a promise pointing to its "parent" entry.
  (letrec* ((deps  (map (match-lambda
                          ((label package)
                           (package->manifest-entry package
                                                    #:parent (delay entry)))
                          ((label package output)
                           (package->manifest-entry package output
                                                    #:parent (delay entry))))
                        (package-propagated-inputs package)))
  (letrec* ((deps  (filter-map
                    (match-lambda
                      ((label (? package? package))
                       (package->manifest-entry package
                                                #:parent (delay entry)))
                      ((label (? package? package) output)
                       (package->manifest-entry package output
                                                #:parent (delay entry)))
                      (_
                       #f))
                    (package-propagated-inputs package)))
            (entry (manifest-entry
                     (name (package-name package))
                     (version (package-version package))

M tests/profiles.scm => tests/profiles.scm +11 -0
@@ 521,6 521,17 @@
           (manifest-entry-search-paths
            (package->manifest-entry mpl)))))

(test-assert "package->manifest-entry, origin in propagated inputs"
  ;; See <https://codeberg.org/guix/guix/pulls/969>
  (let ((p1 (dummy-package "pkg"))
        (p2 (dummy-package "pkg"
              (propagated-inputs
               (list (package-source %bootstrap-guile)))))
        (package->manifest-entry-dependencies
         (compose manifest-entry-dependencies package->manifest-entry)))
    (and (null? (package->manifest-entry-dependencies p1))
         (null? (package->manifest-entry-dependencies p2)))))

(test-assert "packages->manifest, no duplicates"
  (let ((expected
         (manifest