diff options
| author | Hilton Chain <hako@ultrarare.space> | 2025-07-02 18:40:54 +0800 |
|---|---|---|
| committer | Hilton Chain <hako@ultrarare.space> | 2025-11-03 20:06:14 +0800 |
| commit | 2142fce0562b6bf3f7f5460e069ddf377e5a62b2 (patch) | |
| tree | 347a5ca92e6a038ad9baae9d99a63725a938f811 | |
| parent | 48ddcb0b686249a094dc4c92863e3d08c8631825 (diff) | |
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
| -rw-r--r-- | guix/profiles.scm | 19 | ||||
| -rw-r--r-- | tests/profiles.scm | 11 |
2 files changed, 22 insertions, 8 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm index 8cf4903fb8d..831f69b11c9 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -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)) diff --git a/tests/profiles.scm b/tests/profiles.scm index e448137cff1..f63c0773cb3 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -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 |
