GNU bug report logs -
#75851
Don't add propagated-inputs for all outputs
Previous Next
Reported by: 宋文武 <iyzsong <at> envs.net>
Date: Sun, 26 Jan 2025 04:09:02 UTC
Severity: normal
Done: 宋文武 <iyzsong <at> envs.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Hi,
宋文武 <iyzsong <at> envs.net> writes:
> 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 <at> member.fsf.org>
> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong <at> 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)
That seems a heuristic that is bound to fail in surprising ways (and
with no easy recourse). I think it's best to not merge this; perhaps
close it to focus on other ways to get rid of propagated inputs, like
that GCD you've submitted that would help in the GTK/KDE worlds.
What do you think?
--
Thanks,
Maxim
This bug report was last modified 158 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.