#1113537 spring: FTBFS with CMake 4

#1113537#5
Date:
2025-08-31 23:05:15 UTC
From:
To:
Dear maintainer,

During a test rebuild for CMake 4, spring failed to rebuild.

Log Summary:
-------------------------------------------------------------------------------
[...]
dpkg-source: info: unpacking spring_106.0+dfsg.orig.tar.xz
dpkg-source: info: unpacking spring_106.0+dfsg-4.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying glibc-2.34.patch
dpkg-source: info: applying gold-linker.patch
dpkg-source: info: applying reproducible.patch
dpkg-source: info: applying sdl-debian.patch
dpkg-source: info: applying version.patch
dpkg-source: info: applying manpage.patch
dpkg-source: info: applying jsoncpp.patch
dpkg-source: info: applying glShaderSource.patch
dpkg-source: info: applying spring-gcc12.patch
dpkg-source: info: applying gcc13.patch

Check disk space
----------------

Sufficient free space for build

User Environment
----------------

APT_CONFIG=/var/lib/sbuild/apt.conf
HOME=/sbuild-nonexistent
LANG=C.UTF-8
LC_ALL=C.UTF-8
LOGNAME=sbuild
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SHELL=/bin/sh
USER=sbuild

dpkg-buildpackage
-----------------

Command: dpkg-buildpackage --sanitize-env -us -uc -b
dpkg-buildpackage: info: source package spring
dpkg-buildpackage: info: source version 106.0+dfsg-4
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Alexandre Detiste <tchet@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
 debian/rules clean
I: spring_106.0+dfsg
dh clean
   dh_clean
 debian/rules binary
I: spring_106.0+dfsg
dh binary
   dh_update_autotools_config
   dh_autoreconf
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/build/reproducible-path/spring-106.0+dfsg'
I: spring_106.0+dfsg
dh_auto_configure -- \
	-DBINDIR=games \
	-DDATADIR=share/games/spring \
	-DLIBDIR=lib/spring \
	-DAI_LIBS_DIR=lib/spring \
	-DAI_DATA_DIR=share/games/spring \
	-DAI_FIND_QUIETLY=FALSE \
	-DJAVA_FIND_REQUIRED=TRUE \
	-DCMAKE_BUILD_TYPE=RELWITHDEBINFO \
	-DMARCH_FLAG="x86-64" \
	-DPRD_JSONCPP_INTERNAL=FALSE
	cd obj-aarch64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb PKG_CONFIG=/usr/bin/pkg-config cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/aarch64-linux-gnu -DBINDIR=games -DDATADIR=share/games/spring -DLIBDIR=lib/spring -DAI_LIBS_DIR=lib/spring -DAI_DATA_DIR=share/games/spring -DAI_FIND_QUIETLY=FALSE -DJAVA_FIND_REQUIRED=TRUE -DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DMARCH_FLAG=x86-64 -DPRD_JSONCPP_INTERNAL=FALSE ..
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
-------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/2411722/

The most likely cause of build failures is the removed backwards compatibility for
CMake versions earlier than 3.5. You can find additional information in my
debian-devel announcement:

https://lists.debian.org/debian-devel/2025/04/msg00310.html

About the archive rebuild: The build was made on debusine.debian.net,
using sbuild.

You can find the build task here:
https://debusine.debian.net/work-request/154927/

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks,
Timo

#1113537#12
Date:
2025-09-01 11:52:35 UTC
From:
To:
I have downgraded the bug to non-RC severity temporarily and reverted
CMake in unstable to version 3.31.6. I plan to re-upgrade in about a
month's time. I realize that despite my April announcement, the upload
to unstable came rather surprising, and I don't want to cause
unnecessary pain.

Also, the build log URL has an unfortunate mistake. The correct URL
should include the workspace, i.e.,

https://debusine.debian.net/debian/developers/artifact/XXXX

CMake 4 will also be available in experimental again, so it can be
used to verify that the bug is fixed.

Cheers
Timo

#1113537#19
Date:
2025-12-26 17:01:45 UTC
From:
To:
Control: tags -1 + patch

I've pushed patches to games-team git that fix the FTBFS with g++-15 and
the FTBFS with CMake 4. Please could a user of this package build, test
and upload it? It doesn't seem to be testable as a complete game
without downloading code from outside Debian, as far as I can tell.

(I have also confirmed that with these changes, this package builds
successfully with libsdl2-dev provided by src:sdl2-compat from
experimental, which is why I was looking at it.)

Thanks,
     smcv