Subject: bug#75080: guix pull fails on arm64 due to cmake DEB self-tests

From: Simon Josefsson <[email-masked]>
Date: Wed, 25 Dec 2024 09:13:50 +0100

Hi!

I'm running the following commands on a arm64 GitLab shared runner node:

export LC_ALL=C.UTF-8
apt-get update
apt-get install -y guix podman ca-certificates
(guix-daemon --disable-chroot --build-users-group=_guixbuild &
guix pull --url=https://gitlab.com/debdistutils/guix/mirror.git \
 || (ls -la /var/log/guix/drvs/*/*.drv.gz; zcat /var/log/guix/drvs/qz/9fsb0935lpyssgg9428w9rvsypbfgv-cmake-bootstrap-3.24.2.drv.gz)

I get a build failure regarding "cmake-bootstrap" shown here:

https://gitlab.com/debdistutils/guix/container/-/jobs/8717616613

I cannot reproduce this on my own arm64 machine running Trisquel.

It seems only cmake's DEB related self-tests fail:

The following tests FAILED:
	561 - RunCMake.CPack_DEB.CUSTOM_NAMES (Failed)
	562 - RunCMake.CPack_DEB.DEBUGINFO (Failed)
	563 - RunCMake.CPack_DEB.DEFAULT_PERMISSIONS (Failed)
	564 - RunCMake.CPack_DEB.DEPENDENCIES (Failed)
	565 - RunCMake.CPack_DEB.EMPTY_DIR (Failed)
	566 - RunCMake.CPack_DEB.VERSION (Failed)
	567 - RunCMake.CPack_DEB.EXTRA (Failed)
	568 - RunCMake.CPack_DEB.GENERATE_SHLIBS (Failed)
	569 - RunCMake.CPack_DEB.GENERATE_SHLIBS_LDCONFIG (Failed)
	571 - RunCMake.CPack_DEB.MINIMAL (Failed)
	572 - RunCMake.CPack_DEB.PER_COMPONENT_FIELDS (Failed)
	573 - RunCMake.CPack_DEB.TIMESTAMPS (Failed)
	574 - RunCMake.CPack_DEB.MD5SUMS (Failed)
	575 - RunCMake.CPack_DEB.DEB_PACKAGE_VERSION_BACK_COMPATIBILITY (Failed)
	576 - RunCMake.CPack_DEB.DEB_DESCRIPTION (Failed)
	577 - RunCMake.CPack_DEB.PROJECT_META (Failed)
Errors while running CTest

That make me believe that the minimal nature of the container has some
impact.  Maybe some missing environment variable or tool or something?
That is usually present during normal builds but not this build.

The first failure starts here:

https://gitlab.com/debdistutils/guix/container/-/jobs/8717616613#L1746

with output cited below.  I don't spot any obvious problem.  I suspect
something odd is happening when running 'dpkg'.

Any ideas how to debug this further?

/Simon

549/622 Test #561: RunCMake.CPack_DEB.CUSTOM_NAMES .............................***Failed    0.88 sec
-- CUSTOM_NAMES-COMPONENT-type - PASSED
-- CUSTOM_NAMES-COMPONENT-type-Build - PASSED
CMake Error at RunCMake.cmake:216 (message):
  DEB/CUSTOM_NAMES-COMPONENT-type - FAILED:
  Result is [1], not [0].
  stderr does not match that expected.
  Command was:
   command> "/tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/bin/cmake" "-DRunCMake_TEST=CUSTOM_NAMES-COMPONENT-type" "-DRunCMake_TEST_FILE_PREFIX=CUSTOM_NAMES" "-DRunCMake_SUBTEST_SUFFIX=" "-DGENERATOR_TYPE=DEB" "-DPACKAGING_TYPE=COMPONENT" "-Dsrc_dir=/tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/CPack" "-Dbin_dir=/tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/DEB.CUSTOM_NAMES/CPack/CUSTOM_NAMES-build" "-Dconfig_file=/tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/CPack/conf/DEB.CUSTOM_NAMES_config.cmake" "-P" "/tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/CPack/VerifyResult.cmake"
  Actual stdout:
   actual-out> 
  Expected stderr to match:
   expect-err> ^$
  Actual stderr:
   actual-err> CMake Error at /tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/CPack/VerifyResult.cmake:84 (message):
   actual-err>   Unexpected file content for file 1!
   actual-err> 
   actual-err>   The content was:
   actual-err> 
   actual-err>    actual> 
   actual-err> 
   actual-err>   which does not match:
   actual-err> 
   actual-err>    expect> /usr;/usr/foo;/usr/foo/CMakeLists.txt
   actual-err> 
   actual-err>   CPack output:
   actual-err> 
   actual-err>    cpack-out> CPack: Create package using DEB
   actual-err>    cpack-out> CPack: Install projects
   actual-err>    cpack-out> CPack: - Run preinstall target for: CUSTOM_NAMES-COMPONENT-type
   actual-err>    cpack-out> CPack: - Install project: CUSTOM_NAMES-COMPONENT-type [Debug]
   actual-err>    cpack-out> CPack: -   Install component: pkg_1
   actual-err>    cpack-out> CPack: -   Install component: pkg_2
   actual-err>    cpack-out> CPack: -   Install component: pkg_3
   actual-err>    cpack-out> CPack: Create package
   actual-err>    cpack-out> -- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
   actual-err>    cpack-out> -- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
   actual-err>    cpack-out> -- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
   actual-err>    cpack-out> CPack: - package: /tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/DEB.CUSTOM_NAMES/CPack/CUSTOM_NAMES-build/custom_names-pkg_1_0.1.1_arm64.deb generated.
   actual-err>    cpack-out> CPack: - package: /tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/DEB.CUSTOM_NAMES/CPack/CUSTOM_NAMES-build/second_0.1.1_arm64.deb generated.
   actual-err>    cpack-out> CPack: - package: /tmp/guix-build-cmake-bootstrap-3.24.2.drv-0/cmake-3.24.2/Tests/RunCMake/DEB.CUSTOM_NAMES/CPack/CUSTOM_NAMES-build/pkg_3_abc.deb generated.
   actual-err>    cpack-out> 
   actual-err> 
   actual-err>   CPack error:
   actual-err> 
   actual-err>    cpack-err> 
   actual-err> 
   actual-err>   CPack result:
   actual-err> 
   actual-err>    cpack-res> 
   actual-err> 
   actual-err>   CPack config file:
   actual-err> 
   actual-err>    cpack-cfg> set(DPKG_EXECUTABLE "/usr/bin/dpkg")
   actual-err>    cpack-cfg> set(READELF_EXECUTABLE "/gnu/store/pqai4n95zn5wdw430gslb00sb967jdg8-binutils-2.41/bin/readelf")
Call Stack (most recent call first):
  RunCMake.cmake:230 (run_cmake)
  CPack/CPackTestHelpers.cmake:119 (run_cmake_command)
  CPack/CPackTestHelpers.cmake:137 (run_cpack_test_common_)
  CPack/RunCMakeTest.cmake:11 (run_cpack_test)
        Start 562: RunCMake.CPack_DEB.DEBUGINFO