Hello, Ioannis Kappas <ioannis.kap...@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.courno...@gmail.com> -- Thanks, Maxim