Subject: Re: [PATCH v2] gnu: elfutils: Move inputs to propagated-inputs.
From: Maxim Cournoyer <[email-masked]>
To: [email-masked]
Cc: Olivier Dion <[email-masked]>, [email-masked]
Date: Thu, 30 May 2024 23:13:53 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

[email-masked] writes:

> From: Olivier Dion <[email-masked]>
>
> zlib and liblzma are required in `lib/pkgconfig/{libdw,libelf}.pc'.
> Thus, `lib/pkgconfig/liblzma.pc' and `lib/pkgconfig/zlib.pc' from the xz
> and zlib packages must be propagated for pkg-config to work on libdw and
> libelf.
>
> * gnu/packages/elf.scm (elfutils): Move packages ...
> [inputs]: ... from here ...
> [propagated-inputs]: ... to here.

I've reworded the GNU ChangeLog part like:

* gnu/packages/elf.scm (elfutils)
[inputs]: Turn into...
[propagated-inputs]: ... this field.

> Change-Id: Ic89d226b2392fe821b207302d3b386f9633b981a
> ---
>  gnu/packages/elf.scm | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
> index a100038f14..484f8dfc2c 100644
> --- a/gnu/packages/elf.scm
> +++ b/gnu/packages/elf.scm
> @@ -138,7 +138,11 @@ (define-public elfutils
>               '()))))
>  
>      (native-inputs (list m4))
> -    (inputs (list xz zlib))
> +    ;; zlib and liblzma are required in `lib/pkgconfig/{libdw,libelf}.pc'.
> +    ;; Thus, `lib/pkgconfig/liblzma.pc' and `lib/pkgconfig/zlib.pc' from the
> +    ;; xz and zlib packages must be propagated for pkg-config to work on libdw
> +    ;; and libelf.
> +    (propagated-inputs (list xz zlib))

And simplified this to:

    (propagated-inputs (list xz zlib))  ;in Requires of libdw.pc, libelf.pc

and...

Actually, these are in 'Requires.private', which ought to be only useful
for static compilation (though these would be consulted for Cflags since
there's no Cflags.private in pkg-config).

pkgconf handles this better than pkg-config, letting you do without
propagation here, as long as the libs are found in a standard include
path and you are building a shared library.

I think with the planned switch to pkgconf, we probably should avoid
propagation here unless really necessary; do you have a failing example
at hand?

-- 
Maxim