1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 13:10:33 +02:00

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
This commit is contained in:
Hilton Chain
2025-07-02 18:40:54 +08:00
parent 48ddcb0b68
commit 2142fce056
2 changed files with 22 additions and 8 deletions

View File

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

View File

@@ -521,6 +521,17 @@
(manifest-entry-search-paths (manifest-entry-search-paths
(package->manifest-entry mpl))))) (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" (test-assert "packages->manifest, no duplicates"
(let ((expected (let ((expected
(manifest (manifest