#1113482 ruy: FTBFS with CMake 4

#1113482#5
Date:
2025-08-31 23:04:11 UTC
From:
To:
Dear maintainer,

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

Log Summary:
-------------------------------------------------------------------------------
[...]
make[3]: Entering directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu" && /usr/bin/cmake -E cmake_depends "Unix Makefiles" "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe" "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/ruy" "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu" "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy/CMakeFiles/ruy_prepacked_cache.dir/DependInfo.cmake" "--color="
[ 22%] Building CXX object ruy/CMakeFiles/ruy_tune.dir/tune.cc.o
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/c++ -DCPUINFO_SUPPORTED_PLATFORM=1 -I"/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe" -g -O2 -ffile-prefix-map=/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=gnu++14 -fPIC -Wall -Wextra -Wc++14-compat -Wundef -O3 -MD -MT ruy/CMakeFiles/ruy_tune.dir/tune.cc.o -MF CMakeFiles/ruy_tune.dir/tune.cc.o.d -o CMakeFiles/ruy_tune.dir/tune.cc.o -c "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/ruy/tune.cc"
make  -f ruy/CMakeFiles/ruy_prepacked_cache.dir/build.make ruy/CMakeFiles/ruy_prepacked_cache.dir/build
make[3]: Entering directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
[ 23%] Building CXX object ruy/CMakeFiles/ruy_prepacked_cache.dir/prepacked_cache.cc.o
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/c++  -I"/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe" -g -O2 -ffile-prefix-map=/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -std=gnu++14 -fPIC -Wall -Wextra -Wc++14-compat -Wundef -O3 -MD -MT ruy/CMakeFiles/ruy_prepacked_cache.dir/prepacked_cache.cc.o -MF CMakeFiles/ruy_prepacked_cache.dir/prepacked_cache.cc.o.d -o CMakeFiles/ruy_prepacked_cache.dir/prepacked_cache.cc.o -c "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/ruy/prepacked_cache.cc"
In file included from /usr/include/gtest/gtest.h:67:
/usr/include/gtest/gtest-param-test.h:483:56: error: missing template arguments before ‘(’ token
  483 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
/usr/include/gtest/gtest-param-test.h:493:56: error: missing template arguments before ‘(’ token
  493 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
In file included from /usr/include/gtest/gtest.h:67:
/usr/include/gtest/gtest-param-test.h:483:56: error: missing template arguments before ‘(’ token
  483 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
/usr/include/gtest/gtest-param-test.h:493:56: error: missing template arguments before ‘(’ token
  493 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
[ 24%] Linking CXX static library libruy_tune.a
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/cmake -P CMakeFiles/ruy_tune.dir/cmake_clean_target.cmake
make[3]: *** [ruy/CMakeFiles/ruy_check_macros_test.dir/build.make:82: ruy/CMakeFiles/ruy_check_macros_test.dir/check_macros_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:370: ruy/CMakeFiles/ruy_check_macros_test.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/cmake -E cmake_link_script CMakeFiles/ruy_tune.dir/link.txt --verbose=1
/usr/bin/ar qc libruy_tune.a CMakeFiles/ruy_tune.dir/tune.cc.o
/usr/bin/ranlib libruy_tune.a
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
In file included from /usr/include/gtest/gtest.h:67:
/usr/include/gtest/gtest-param-test.h:483:56: error: missing template arguments before ‘(’ token
  483 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
/usr/include/gtest/gtest-param-test.h:493:56: error: missing template arguments before ‘(’ token
  493 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
[ 24%] Built target ruy_tune
make[3]: *** [ruy/CMakeFiles/ruy_size_util_test.dir/build.make:82: ruy/CMakeFiles/ruy_size_util_test.dir/size_util_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:466: ruy/CMakeFiles/ruy_size_util_test.dir/all] Error 2
make[3]: *** [ruy/CMakeFiles/ruy_matrix_test.dir/build.make:82: ruy/CMakeFiles/ruy_matrix_test.dir/matrix_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:948: ruy/CMakeFiles/ruy_matrix_test.dir/all] Error 2
[ 24%] Linking CXX static library libruy_prepacked_cache.a
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/cmake -P CMakeFiles/ruy_prepacked_cache.dir/cmake_clean_target.cmake
make[3]: *** [ruy/CMakeFiles/ruy_apply_multiplier_test.dir/build.make:82: ruy/CMakeFiles/ruy_apply_multiplier_test.dir/apply_multiplier_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:1044: ruy/CMakeFiles/ruy_apply_multiplier_test.dir/all] Error 2
cd "/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu/ruy" && /usr/bin/cmake -E cmake_link_script CMakeFiles/ruy_prepacked_cache.dir/link.txt --verbose=1
/usr/bin/ar qc libruy_prepacked_cache.a CMakeFiles/ruy_prepacked_cache.dir/prepacked_cache.cc.o
/usr/bin/ranlib libruy_prepacked_cache.a
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
[ 24%] Built target ruy_prepacked_cache
make[3]: *** [ruy/CMakeFiles/ruy_mul_params_test.dir/build.make:82: ruy/CMakeFiles/ruy_mul_params_test.dir/mul_params_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:980: ruy/CMakeFiles/ruy_mul_params_test.dir/all] Error 2
In file included from /usr/include/gtest/gtest.h:67:
/usr/include/gtest/gtest-param-test.h:483:56: error: missing template arguments before ‘(’ token
  483 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
/usr/include/gtest/gtest-param-test.h:493:56: error: missing template arguments before ‘(’ token
  493 |           typename StdFunction = decltype(std::function(std::declval<Func>()))>
      |                                                        ^
make[3]: *** [ruy/CMakeFiles/ruy_wait_test.dir/build.make:82: ruy/CMakeFiles/ruy_wait_test.dir/wait_test.cc.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:434: ruy/CMakeFiles/ruy_wait_test.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/ruy-0.0.0~git20230215.21a85fe/obj-aarch64-linux-gnu'
dh_auto_build: error: cd obj-aarch64-linux-gnu && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2025-08-30T18:08:23Z
-------------------------------------------------------------------------------

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

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

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

#1113482#12
Date:
2025-09-01 11:52:29 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