guix pull fails on arm64 due to cmake DEB self-tests

  • Open
  • quality assurance status badge
Details
3 participants
  • Leo Famulari
  • Ludovic Courtès
  • Simon Josefsson
Owner
unassigned
Submitted by
Simon Josefsson
Severity
normal
S
S
Simon Josefsson wrote on 25 Dec 2024 09:13
(address . bug-guix@gnu.org)
874j2sqiwx.fsf@kaka.sjd.se
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 &
|| (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:


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:


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
-----BEGIN PGP SIGNATURE-----

iIoEARYIADIWIQSjzJyHC50xCrrUzy9RcisI/kdFogUCZ2u+vhQcc2ltb25Aam9z
ZWZzc29uLm9yZwAKCRBRcisI/kdFosICAQDLlVz832hMsXc2MmOgLayXq1yX8Kp/
Ov9zqC8WPoN9qQD/TsaW9JIsSxw5eD+5DPN55qqYiB20KS0a4JH+qJL6TAk=
=C7A9
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 11 Jan 19:25 +0100
(name . Simon Josefsson)(address . simon@josefsson.org)(address . 75080@debbugs.gnu.org)
875xmlnr69.fsf@gnu.org
Hi,

Simon Josefsson <simon@josefsson.org> skribis:

Toggle quote (8 lines)
> 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:

Looks like the problem is gone with a current-ish commit since
substitutes are available from both build farms:

Toggle snippet (52 lines)
$ guix weather cmake-minimal -s aarch64-linux
computing 1 package derivations for aarch64-linux...
looking for 1 store items on https://ci.guix.gnu.org...
https://ci.guix.gnu.org ?
100.0% substitutes available (1 out of 1)
at least 10.6 MiB of nars (compressed)
27.7 MiB on disk (uncompressed)
2.815 seconds per request (2.8 seconds in total)
0.4 requests per second

at least 1,000 queued builds
aarch64-linux: 993 (99.3%)
x86_64-linux: 4 (.4%)
powerpc64le-linux: 2 (.2%)
i686-linux: 1 (.1%)
build rate: 545.79 builds per hour
x86_64-linux: 545.79 builds per hour
looking for 1 store items on https://bordeaux.guix.gnu.org...
https://bordeaux.guix.gnu.org ?
100.0% substitutes available (1 out of 1)
4.5 MiB of nars (compressed)
27.7 MiB on disk (uncompressed)
0.150 seconds per request (0.2 seconds in total)
6.7 requests per second
(continuous integration information unavailable)
looking for 1 store items on https://guix.bordeaux.inria.fr...
https://guix.bordeaux.inria.fr ?
0.0% substitutes available (0 out of 1)
unknown substitute sizes
0.0 MiB on disk (uncompressed)
0.169 seconds per request (0.2 seconds in total)
5.9 requests per second

0.0% (0 out of 1) of the missing items are queued
0 queued builds
build rate: 17.09 builds per hour
x86_64-linux: 17.09 builds per hour
$ guix describe
Generation 331 Jan 05 2025 22:28:17 (current)
shepherd 6d52686
repository URL: https://git.savannah.gnu.org/git/shepherd.git
branch: main
commit: 6d526862375a426c13a52c7343c0ee9215367a00
guile f6359a4
repository URL: https://git.savannah.gnu.org/git/guile.git
branch: main
commit: f6359a4715d023761454f1bf945633ce4cca98fc
guix 613c8b8
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: 613c8b81702f08ee36f20d15ee8f8c42a37acfef

Could you confirm?

Ludo’.
S
S
Simon Josefsson wrote 6 days ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 75080@debbugs.gnu.org)
874j19nvse.fsf@josefsson.org
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (16 lines)
> Hi,
>
> Simon Josefsson <simon@josefsson.org> skribis:
>
>> 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:
>
> Looks like the problem is gone with a current-ish commit since
> substitutes are available from both build farms:
>
> $ guix weather cmake-minimal -s aarch64-linux
...
Toggle quote (2 lines)
> Could you confirm?

Maybe the substitutes are now gone, because I just tried again and the
error looks the same:


If it got the binary substitutes, I suppose things would be fine.

Looking more carefully at the errors, I notice this part:

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")

So for some reason building cmake-bootstrap in guix in Debian picks up
Debian's /usr/bin/dpkg, doesn't it?!

I suppose that Guix's build servers aren't running Debian, so it won't
find any /usr/bin/dpkg.

Maybe this has something to do with why it is only all the DEB-related
cmake self-tests that fails here.

(However it doesn't explain why I couldn't reproduce the same problem on
my own arm64 machine that is running Trisquel. Maybe substitutes just
happened to be available when I tried it?)

The GitLab run above is in a minimal debian 12 container, and the
commands are essentially these:

- apt-get update
- apt-get install -y buildah ca-certificates eatmydata
- time eatmydata buildah build -t ...


With the Containerfile running essentially this:

set -x && \
cat /etc/os-release && \
locale -a && \
apt-get update && \
apt-get install -y guix netbase && \
(env LC_ALL=C.UTF-8 guix-daemon --disable-chroot --build-users-group=_guixbuild --discover=no &) && \
set && \
|| { cp -v /var/log/guix/drvs/*/*.drv.gz .; gzip -d *.gz; tail -v -n1000 *.drv; false; })


/Simon
-----BEGIN PGP SIGNATURE-----

iQNoBAEWCAMQFiEEo8ychwudMQq61M8vUXIrCP5HRaIFAmeioFEUHHNpbW9uQGpv
c2Vmc3Nvbi5vcmfCHCYAmDMEXJLOtBYJKwYBBAHaRw8BAQdACIcrZIvhrxDBkK9f
V+QlTmXxo2naObDuGtw58YaxlOu0JVNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9z
ZWZzc29uLm9yZz6IlgQTFggAPgIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYh
BLHSvRN1vst4TPT4xNc89jjFPAa+BQJl/YgIBQkLehFUAAoJENc89jjFPAa+CboA
+wUa06RD5e5VTCxvSWtPS75Wq2qBeYGZnf0jvUMxa2n4AP4xkUeAPPnNuMsTm2fs
FCDIGaEM2Yn6Vb2huzzT1Fw/BLgzBFySz4EWCSsGAQQB2kcPAQEHQOxTCIOaeXAx
I2hIX4HK9bQTpNVei708oNr1Klm8qCGKiPUEGBYIACYCGwIWIQSx0r0Tdb7LeEz0
+MTXPPY4xTwGvgUCZf2IKwUJC3oQqgCBdiAEGRYIAB0WIQSjzJyHC50xCrrUzy9R
cisI/kdFogUCXJLPgQAKCRBRcisI/kdFoqdMAQCgH45aseZgIrwKOvUOA9QfsmeE
8GZHYNuFHmM9FEQS6AD6A4x5aYvoY6lo98pgtw2HPDhmcCXFItjXCrV4A0GmJA4J
ENc89jjFPAa+GcYA/26YQY05bLtnXiIjTiAzrGQrRXxTHPA8Av7TDFHvIetWAP9s
HSoU8OfTwmTiEnGwLlsV7QJclZg3YNz/Ypcp9TqQBrg4BFySz2oSCisGAQQBl1UB
BQEBB0AxlRumDW6nZY7A+VCfek9VpEx6PJmdJyYPt3lNHMd6HAMBCAeIfgQYFggA
JgIbDBYhBLHSvRN1vst4TPT4xNc89jjFPAa+BQJl/YgwBQkLehDGAAoJENc89jjF
PAa+phoA/jrDqIrl/55vUMBhIQv+TP635d2iCTEnyFmbUcP9+gh6APoDsXalVd2c
OGxQtSC+TF8PkZMn1TLkJKAjVxr+xx40AgAKCRBRcisI/kdFoorUAQDxR4nMsdj3
bZ+fIciR5jZrUEIq4V19xubO7sP9KgdnbQD/Ug9gR3HYSCREmRUe0Qx1tNRc1eZB
nqykIV7EHHMREQ0=
=okui
-----END PGP SIGNATURE-----

L
L
Leo Famulari wrote 6 days ago
(name . Simon Josefsson via Bug reports for GNU Guix)(address . bug-guix@gnu.org)
Z6LEXtdQ4fLauQQL@jasmine.lan
On Wed, Feb 05, 2025 at 12:18:41AM +0100, Simon Josefsson via Bug reports for GNU Guix wrote:
Toggle quote (11 lines)
> Looking more carefully at the errors, I notice this part:
>
> 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")
>
> So for some reason building cmake-bootstrap in guix in Debian picks up
> Debian's /usr/bin/dpkg, doesn't it?!
>
> I suppose that Guix's build servers aren't running Debian, so it won't
> find any /usr/bin/dpkg.

It would be really surprising if '/usr/bin/dpkg' could be found or
accessed from within the package build environment, unless the build
isolation has been disabled.

Are you able to confirm if that is what's happening?
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75080@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75080
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch