[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#65550] Don't add propagated-inputs for all outputs
From: |
宋文武 |
Subject: |
[bug#65550] Don't add propagated-inputs for all outputs |
Date: |
Sat, 26 Aug 2023 19:36:05 +0800 |
Hello, we have a TODO for "extend `propagated-inputs` with support for
multiple outputs". I try to do it for a while, but unable to find a
clear way, since add a new syntax for specify output in
propagated-inputs require changes in too many places..
Think about the intention, what we want is to avoid unwanted
propagated-inputs for building a package or user profiles, and
propagated-inputs is mostly used for development packages which
requiring headers/libraries from its inputs. It seems I can hardcode
the choice here to the "dev" output (if a package have both "dev" and
"out", its "out" should considered be an application) or the "out"
output (a library/development package).
Then the change is straight:
>From 98a8666a0cbf33e24efff615243b98144a92c950 Mon Sep 17 00:00:00 2001
Message-ID:
<98a8666a0cbf33e24efff615243b98144a92c950.1693047369.git.iyzsong@member.fsf.org>
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@member.fsf.org>
Date: Sat, 26 Aug 2023 18:27:09 +0800
Subject: [PATCH] packages: Don't propagate inputs for non-development package
outputs.
* guix/packages.scm (transitive-inputs): Only include propagated inputs from a
package for its "dev" output, or its "out" output if the package doesn't have
a "dev" one.
---
guix/packages.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/guix/packages.scm b/guix/packages.scm
index ba98bb0fb4..435d55de71 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -1143,7 +1143,13 @@ (define (transitive-inputs inputs)
(loop rest result propagated first? seen)
(loop rest
(cons input result)
- (cons (package-propagated-inputs package) propagated)
+ ;; Only add propagated inputs for PACKAGE:dev, or PACKAGE:out
+ ;; when PACKAGE doesn't have a "dev" output.
+ (if (if (member "dev" (package-outputs package))
+ (member "dev" outputs)
+ (or (null? outputs) (member "out" outputs)))
+ (cons (package-propagated-inputs package) propagated)
+ propagated)
first?
(vhash-consq package outputs seen))))
((input rest ...)
base-commit: eeb71d778f149834015858467fbeeb1276d96d1d
--
2.41.0
Not much benifits now, but i think it will helps when we have more
mulitple outputs packages. Also how about add a slimming team aiming to
reduce the closure size of packages and system, anyone interested?
Thanks. 🥳
- [bug#65550] Don't add propagated-inputs for all outputs,
宋文武 <=
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., iyzsong, 2023/08/26
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., Liliana Marie Prikler, 2023/08/26
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., 宋文武, 2023/08/27
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., Liliana Marie Prikler, 2023/08/27
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., 宋文武, 2023/08/29
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., Liliana Marie Prikler, 2023/08/29
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., 宋文武, 2023/08/30
- [bug#65550] Don't add propagated-inputs for all outputs, Maxim Cournoyer, 2023/08/31
- [bug#65550] [PATCH] profiles: Don't propagate inputs for non-development packages., Josselin Poiret, 2023/08/27
- [bug#65550] Don't add propagated-inputs for all outputs, Maxim Cournoyer, 2023/08/31