Bug#1105330: grass: FTBFS with make --shuffle=reverse: ERROR: gcc -E -Wdate-time -D_FORTIFY_SOURCE=2 -I/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/include -I/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/include -D__GLIBC_HAVE_LONG_LONG: /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/include/grass/gprojects.h:57:10: fatal error: ogr_srs_api.h: No such file or directory

Lucas Nussbaum lucas at debian.org
Tue May 13 19:59:31 BST 2025


Source: grass
Version: 8.4.1-1
Severity: minor
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-shuffle

Hi,

GNU Make now has a --shuffle option that simulates non-deterministic ordering
of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous
work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

This package fails to build with make --shuffle=reverse.
This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.

More information about this mass bug filing is available at
https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

Relevant part (hopefully):
> make[4]: Leaving directory '/build/reproducible-path/grass-8.4.1/scripts/r.mapcalc.simple'
> ../include/Make/Dir.make:48: update target 'r.drain' due to: target is .PHONY
> make -C r.drain || echo /build/reproducible-path/grass-8.4.1/scripts/r.drain >> /build/reproducible-path/grass-8.4.1/error.log
> ../../include/Make/Html.make:11: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/docs/man/man1/r.in.srtm.1' due to: target does not exist
> VERSION_NUMBER=8.4.1 /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/utils/g.html2man.py "/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/docs/html/r.in.srtm.html" "/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/docs/man/man1/r.in.srtm.1"
> ../../include/Make/ScriptRules.make:16: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_gdal_drv.py' due to: target does not exist
> /usr/bin/install -c -m 644 wms_gdal_drv.py /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_gdal_drv.py
> ../../include/Make/ScriptRules.make:16: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_drv.py' due to: target does not exist
> /usr/bin/install -c -m 644 wms_drv.py /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_drv.py
> ../../include/Make/ScriptRules.make:16: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_base.py' due to: target does not exist
> /usr/bin/install -c -m 644 wms_base.py /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/wms_base.py
> make[4]: Entering directory '/build/reproducible-path/grass-8.4.1/scripts/r.drain'
> ../../include/Make/ScriptRules.make:28: update target '/build/reproducible-path/grass-8.4.1/locale/scriptstrings/r.drain_to_translate.c' due to: target does not exist
> GISRC=/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/demolocation/.grassrc84 GISBASE=/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu PATH="/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/bin:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/bin:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/scripts:$PATH" PYTHONPATH="/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/python:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/gui/wxpython:$PYTHONPATH" LD_LIBRARY_PATH="/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/bin:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/bin:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/scripts:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/lib:/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/lib:" LC_ALL=C LANG=C LANGUAGE=C g.parser -t r.drain.py | sed s/\"/\\\\\"/g | sed 's/.*/_("&")/' > /build/reproducible-path/grass-8.4.1/locale/scriptstrings/r.drain_to_translate.c
> ../../include/Make/Html.make:7: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/docs/html/r.in.wms.html' due to: target does not exist
> VERSION_NUMBER=8.4.1 VERSION_DATE=2025 MODULE_TOPDIR=../.. \
>         python3 /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/utils/mkhtml.py r.in.wms > /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/docs/html/r.in.wms.html
> ../../include/Make/ScriptRules.make:16: update target '/build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/srs.pyc' due to: target does not exist
> /usr/bin/install -c -m 644 srs.pyc /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/srs.pyc
> install: cannot stat 'srs.pyc': No such file or directory
> make[4]: *** [../../include/Make/ScriptRules.make:16: /build/reproducible-path/grass-8.4.1/dist.x86_64-pc-linux-gnu/etc/r.in.wms/srs.pyc] Error 1 shuffle=reverse


The full build log is available from:
http://qa-logs.debian.net/2025/05/05/shuffle/reverse/grass_8.4.1-1_unstable_reverse.log

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects



More information about the Pkg-grass-devel mailing list