Skip to content

Transitive dependency includes missing during build step #5124

@ocaisa

Description

@ocaisa

In #5023 we ensured that the include headers are added to C_INCLUDE_PATH and friends for direct dependencies. This does not cover the case though where transitive dependencies are needed. I saw this for a build of VTE:

In file included from /cvmfs/software.eessi.io/versions/2025.06/software/linux/aarch64/nvidia/grace/software/GTK4/4.20.2-GCCcore-14.3.0/include/gtk-4.0/gdk/wayland/gdkwayland.h:31,
                 from ../vte-0.82.2/src/app/app.cc:48:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/aarch64/nvidia/grace/software/GTK4/4.20.2-GCCcore-14.3.0/include/gtk-4.0/gdk/wayland/gdkwaylanddevice.h:26:10: fatal error: wa
yland-client.h: No such file or directory
   26 | #include <wayland-client.h>

I entered the failing step and saw

eb-shell> echo $C_INCLUDE_PATH
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/GTK4/4.20.2-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/GTK3/3.24.43-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/GnuTLS/3.8.10-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/fmt/11.2.0-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/lz4/1.10.0-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/Pango/1.57.0-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/cairo/1.18.4-GCCcore-14.3.0/include:
/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/software/Vala/0.56.18-GCCcore-14.3.0/include

The full set of include paths should be far longer, and include Wayland (where the header can be found)

eb-shell> module list

Currently Loaded Modules:
  1) EESSI/2025.06                    21) libarchive/3.8.1-GCCcore-14.3.0     41) fmt/11.2.0-GCCcore-14.3.0           61) OpenGL/2025.09-GCCcore-14.3.0
  2) EasyBuild/5.2.0                  22) CMake/4.0.3-GCCcore-14.3.0          42) GMP/6.3.0-GCCcore-14.3.0            62) libepoxy/1.5.10-GCCcore-14.3.0
  3) EESSI-extend/2025.06-easybuild   23) PCRE2/10.45-GCCcore-14.3.0          43) nettle/3.10.2-GCCcore-14.3.0        63) GTK3/3.24.43-GCCcore-14.3.0
  4) GCCcore/14.3.0                   24) GLib/2.85.3-GCCcore-14.3.0          44) libtasn1/4.20.0-GCCcore-14.3.0      64) GStreamer/1.26.5-GCCcore-14.3.0
  5) libtommath/1.3.0-GCCcore-14.3.0  25) Vala/0.56.18-GCCcore-14.3.0         45) p11-kit/0.25.10-GCCcore-14.3.0      65) Graphene/1.10.8-GCCcore-14.3.0
  6) Tcl/9.0.1-GCCcore-14.3.0         26) libpng/1.6.50-GCCcore-14.3.0        46) GnuTLS/3.8.10-GCCcore-14.3.0        66) alsa-lib/1.2.14-GCCcore-14.3.0
  7) SQLite/3.50.1-GCCcore-14.3.0     27) Brotli/1.1.0-GCCcore-14.3.0         47) ATK/2.38.0-GCCcore-14.3.0           67) libogg/1.3.6-GCCcore-14.3.0
  8) libffi/3.5.1-GCCcore-14.3.0      28) freetype/2.13.3-GCCcore-14.3.0      48) at-spi2-core/2.56.2-GCCcore-14.3.0  68) libopus/1.5.2-GCCcore-14.3.0
  9) OpenSSL/3                        29) pixman/0.46.4-GCCcore-14.3.0        49) at-spi2-atk/2.38.0-GCCcore-14.3.0   69) libvorbis/1.3.7-GCCcore-14.3.0
 10) Python/3.13.5-GCCcore-14.3.0     30) expat/2.7.1-GCCcore-14.3.0          50) libjpeg-turbo/3.1.1-GCCcore-14.3.0  70) GST-plugins-base/1.26.6-GCCcore-14.3.0
 11) Meson/1.8.2-GCCcore-14.3.0       31) fontconfig/2.17.0-GCCcore-14.3.0    51) jbigkit/2.1-GCCcore-14.3.0          71) GST-plugins-bad/1.26.6-GCCcore-14.3.0
 12) Ninja/1.13.0-GCCcore-14.3.0      32) xorg-macros/1.20.2-GCCcore-14.3.0   52) libdeflate/1.24-GCCcore-14.3.0      72) GObject-Introspection/1.84.0-GCCcore-14.3.0
 13) libidn2/2.3.8-GCCcore-14.3.0     33) libpciaccess/0.18.1-GCCcore-14.3.0  53) LibTIFF/4.7.0-GCCcore-14.3.0        73) PyCairo/1.28.0-GCCcore-14.3.0
 14) libiconv/1.18-GCCcore-14.3.0     34) X11/20250608-GCCcore-14.3.0         54) Gdk-Pixbuf/2.42.12-GCCcore-14.3.0   74) PyGObject/3.54.3-GCCcore-14.3.0
 15) libunistring/1.3-GCCcore-14.3.0  35) cairo/1.18.4-GCCcore-14.3.0         55) Z3/4.15.1-GCCcore-14.3.0            75) librsvg/2.61.0-GCCcore-14.3.0
 16) libpsl/0.21.5-GCCcore-14.3.0     36) ICU/77.1-GCCcore-14.3.0             56) LLVM/20.1.8-GCCcore-14.3.0          76) libcroco/0.6.13-GCCcore-14.3.0
 17) cURL/8.14.1-GCCcore-14.3.0       37) HarfBuzz/11.4.1-GCCcore-14.3.0      57) Wayland/1.24.0-GCCcore-14.3.0       77) GTK4/4.20.2-GCCcore-14.3.0
 18) libxml2/2.14.3-GCCcore-14.3.0    38) FriBidi/1.0.16-GCCcore-14.3.0       58) elfutils/0.193-GCCcore-14.3.0
 19) gzip/1.14-GCCcore-14.3.0         39) Pango/1.57.0-GCCcore-14.3.0         59) libdrm/2.4.125-GCCcore-14.3.0
 20) zstd/1.5.7-GCCcore-14.3.0        40) lz4/1.10.0-GCCcore-14.3.0           60) libunwind/1.8.2-GCCcore-14.3.0

Doing a module refresh allowed the build step to succeed.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions