unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Ioannis Kappas <ioannis.kappas@gmail.com>
Cc: 55793@debbugs.gnu.org
Subject: bug#55793: Issue with elfutils libdw pkg-config's inputs
Date: Wed, 17 Jan 2024 22:20:54 -0500	[thread overview]
Message-ID: <87zfx3l42x.fsf@gmail.com> (raw)
In-Reply-To: <CAMRHuGASi=iroEhfj1-fcrM465Di8DM=g--6+_v=6zt3AZZuYw@mail.gmail.com> (Ioannis Kappas's message of "Sat, 4 Jun 2022 10:54:45 +0100")

Hello,

Ioannis Kappas <ioannis.kappas@gmail.com> writes:

> Hi,
>
> there appears to be an issue with the elfutils package that is missing
> a dependency after it is installed.
>
> To reproduce, on a profile without `xz' installed:
>
> $ guix install elfutils
> $ pkg-config --cflags libdw
>
> Package liblzma was not found in the pkg-config search path.
> Perhaps you should add the directory containing `liblzma.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'liblzma', required by 'libdw', not found
>
> or using gstreamer which depends on elfutils
>
> $ guix shell --check gstreamer pkg-config --pure
> $ pkg-config --cflags libdw
> Package liblzma was not found in the pkg-config search path.
> Perhaps you should add the directory containing `liblzma.pc'
> to the PKG_CONFIG_PATH environment variable
> Package 'liblzma', required by 'libdw', not found
>
> This is because elfutils has discovered an installation of the `xz'
> library during the configure phase (log @
> http://ci.guix.gnu.org/log/jp6027624wl2f4xx5yz1vjzd2b9yvwl9-elfutils-0.183)
>
> ...
>   checking for library containing gzdirect... -lz
>   checking for library containing BZ2_bzdopen... -lbz2
>   checking for library containing lzma_auto_decoder... -llzma
>   checking for library containing ZSTD_decompress... no
> ...
>
> even though it is not part of the package inputs
>
> gnu/packages/elf.scm:
> (define-public elfutils
>   (package
>    (name "elfutils")
>    (version "0.183")
>    ;; ...
>    (native-inputs (list m4))
>    (inputs (list zlib))
>    ;; ...
>    ))
>
> The `xz' package is most likely coming as an implicit input from the
> commencement module's %final-inputs and thus picked up by the
> configure script, but is never propagated.
>
> Assuming the above analysis is correct, potential solutions could be:
>
> 1. Declare `xz` as a propagated input in elfutils.
> 2. Pass --without-lzma to the configure script.
> 3. Change the build scripts so that build inputs that are only used
> for unpacking sources are only visible to unpack phase.
>
> Looking closer at the configure output, it appears there is an
> additional implicit input that is picked up by the configure script
> `bzip2`, thus this should also be considered.
>
> Furthermore, the configure script recommends that all compression
> methods should be installed
>
>     RECOMMENDED FEATURES (should all be yes)
>       gzip support                       : yes
>       bzip2 support                      : yes
>       lzma/xz support                    : yes
>       zstd support                       : no
>       libstdc++ demangle support         : yes
>       File textrel check                 : yes
>       Symbol versioning                  : yes
>
> so perhaps option#1 above should be the preferred solution, and should
>  also include zstd as a dep? If so, I've created the following draft
> to demonstrate its use
>
>>From 158b3f67fdd43b4e9b6ac1d46d27169e4f67c4de Mon Sep 17 00:00:00 2001
> Subject: [PATCH] Include elfutils recommended inputs for libdw pc
>
> ---
>  gnu/packages/elf.scm | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
> index 414d6a2856..cfe3bd466a 100644
> --- a/gnu/packages/elf.scm
> +++ b/gnu/packages/elf.scm
> @@ -109,6 +109,10 @@ (define-public elfutils
>
>      (native-inputs (list m4))
>      (inputs (list zlib))
> +    ;; libdw dependencies
> +    (propagated-inputs `(("xz" ,xz)
> +                         ("lbzip2" ,lbzip2)
> +                         ("zstd:lib" ,zstd "lib")))
>      (home-page "https://sourceware.org/elfutils/")
>      (synopsis "Collection of utilities and libraries to handle ELF files and
>  DWARF data")

Thank you for the detailed analysis and report!  I think it'd make sense
to apply your patch.  I won't do so myself at the moment as core-updates
is being frozen, but perhaps after it gets merged or a temporary branch
of core-updates is created to refine it there.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>

-- 
Thanks,
Maxim




      reply	other threads:[~2024-01-18  3:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-04  9:54 bug#55793: Issue with elfutils libdw pkg-config's inputs Ioannis Kappas
2024-01-18  3:20 ` Maxim Cournoyer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zfx3l42x.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=55793@debbugs.gnu.org \
    --cc=ioannis.kappas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).