Can't built minimal ROOT 6.38.00 with X11 and asimage

Describe the bug

Cannot build minimal ROOT 6.38.00 with GUI on AlmaLinux 10.
Build fails with

ninja: error: 'graf2d/asimage/Gui', needed by '/opt/root_build/graf2d/asimage/G__ASImageGui.cxx', missing and no known rule to make it

Expected behavior

Successful build.

To Reproduce

Start in fresh AlmaLinux 10 sandbox.

dnf update -y
dnf install -y epel-release \
    make ninja-build cmake gcc-c++ gcc binutils mold patch wget \
    openssl-devel \
    libX11-devel libXpm-devel libXft-devel libXext-devel \
    tbb-devel libuuid-devel readline-devel \
    xxhash-devel libzstd-devel lz4-devel xz-devel \
    libpng-devel libjpeg-devel giflib-devel libtiff-devel

cd /opt/
mkdir -p root_source root_build root
wget -qO - https://github.com/root-project/root/archive/refs/tags/v6-38-00.tar.gz |
    tar -xzf - -C root_source --strip-components=1

cmake -G"Ninja" -DCMAKE_BUILD_TYPE=Debug \
    -S root_source -B root_build -DCMAKE_INSTALL_PREFIX=/opt/root \
    -DCMAKE_CXX_STANDARD=17 \
    -DCMAKE_CXX_STANDARD_REQUIRED=ON \
    -DCMAKE_CXX_EXTENSIONS=OFF \
    -Dminimal=ON -Dfail-on-missing=ON \
    -Dbuiltin_nlohmannjson=ON \
    -Dasimage=ON -Dasimage_tiff=ON \
    -Dx11=ON
# -- Build files have been written to: /opt/root_build

cmake --build root_build --parallel $(nproc) --target install
# ninja: error: 'graf2d/asimage/Gui', needed by '/opt/root_build/graf2d/asimage/G__ASImageGui.cxx', missing and no known rule to make it

Note that CMake generates build files without errors, and then build fails.

Setup

AlmaLinux 10.1 (Heliotrope Lion)
gcc (GCC) 14.3.1 20250617 (Red Hat 14.3.1-2)
cmake version 3.30.5
ninja 1.11.1 | GNU Make 4.4.1
ROOT v6.38.00

Additional context

Building with -G"Unix Makefiles" proceeds at first, but eventually fails with cryptic errors. I’ve managed to get meaningful message like No rule to make target 'graf2d/asimage/Gui' a couple of times, but couldn’t reproduce it. I switched to Ninja and it consistently refuses to start build with clean error message.

Could you try with gminimal instead of minimal ?

1 Like

Indeed, changing -Dminimal=ON to -Dgminimal=ON works. Thank you!

I think it would be more clean to explicitly fail on configure step.