#1112849 dislocker: FTBFS with CMake 4

#1112849#5
Date:
2025-08-31 22:52:32 UTC
From:
To:
Dear maintainer,

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

Log Summary:
-------------------------------------------------------------------------------
[...]
--------------------------------------------------------

Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  fakeroot libfakeroot
The following NEW packages will be installed:
  fakeroot libfakeroot sbuild-build-depends-fakeroot-dummy
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 106 kB of archives.
After this operation, 465 kB of additional disk space will be used.
Get:1 copy:/build/reproducible-path/resolver-YcFsK4/apt_archive ./ sbuild-build-depends-fakeroot-dummy 0.invalid.0 [832 B]
Get:2 http://deb.debian.org/debian sid/main arm64 libfakeroot arm64 1.37.1.2-1 [29.7 kB]
Get:3 http://deb.debian.org/debian sid/main arm64 fakeroot arm64 1.37.1.2-1 [75.4 kB]
Fetched 106 kB in 0s (1745 kB/s)
Selecting previously unselected package libfakeroot:arm64.
(Reading database ... 24240 files and directories currently installed.)
Preparing to unpack .../libfakeroot_1.37.1.2-1_arm64.deb ...
Unpacking libfakeroot:arm64 (1.37.1.2-1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../fakeroot_1.37.1.2-1_arm64.deb ...
Unpacking fakeroot (1.37.1.2-1) ...
Selecting previously unselected package sbuild-build-depends-fakeroot-dummy.
Preparing to unpack .../sbuild-build-depends-fakeroot-dummy_0.invalid.0_arm64.deb ...
Unpacking sbuild-build-depends-fakeroot-dummy (0.invalid.0) ...
Setting up libfakeroot:arm64 (1.37.1.2-1) ...
Setting up fakeroot (1.37.1.2-1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up sbuild-build-depends-fakeroot-dummy (0.invalid.0) ...
Processing triggers for man-db (2.13.1-1) ...
Not building database; man-db/auto-update is not 'true'.
Processing triggers for libc-bin (2.41-12) ...

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 dislocker
dpkg-buildpackage: info: source version 0.7.3+git20240607-3
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Sven Geuer <sge@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
 fakeroot debian/rules clean
dh clean --buildsystem=cmake --sourcedirectory=. --builddirectory=.
   debian/rules override_dh_auto_clean
make[1]: Entering directory '/build/reproducible-path/dislocker-0.7.3+git20240607'
dh_auto_clean
rm -rf CMakeFiles src/CMakeFiles
find /build/reproducible-path/dislocker-0.7.3+git20240607/man -name '*gz' -exec rm -f {} \;
make[1]: Leaving directory '/build/reproducible-path/dislocker-0.7.3+git20240607'
   dh_autoreconf_clean -O--buildsystem=cmake -O--sourcedirectory=. -O--builddirectory=.
   dh_clean -O--buildsystem=cmake -O--sourcedirectory=. -O--builddirectory=.
 debian/rules build
dh build --buildsystem=cmake --sourcedirectory=. --builddirectory=.
   dh_update_autotools_config -O--buildsystem=cmake -O--sourcedirectory=. -O--builddirectory=.
   dh_autoreconf -O--buildsystem=cmake -O--sourcedirectory=. -O--builddirectory=.
   dh_auto_configure -O--buildsystem=cmake -O--sourcedirectory=. -O--builddirectory=.
	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 .
CMake Error at CMakeLists.txt:20 (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/2391136/

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/152706/

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

#1112849#12
Date:
2025-09-01 11:51:21 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