Subject: bug#67546: You found a bug: the program failed to compute the derivation for Guix

From: Simon Tournier <[email-masked]>
Date: Fri, 12 Jan 2024 17:02:37 +0100

Hi,

On Thu, 30 Nov 2023 at 14:09, Tomas Volf <[email-masked]> wrote:

> $ guix time-machine --no-offload -q --commit=97a5819643a045b7cc68e80fd2fc05ed4eabf0d0 -- describe

[...]

> ./guix/store.scm:1421:15: In procedure loop:
> ERROR:
>   1. &store-protocol-error:
>       message: "build of `/gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv' failed"
>       status: 100
> guix time-machine: error: You found a bug: the program '/gnu/store/pgknv6235znk5d08lyifx3xvxl5fxszi-compute-guix-derivation'
> failed to compute the derivation for Guix (version: "97a5819643a045b7cc68e80fd2fc05ed4eabf0d0"; system: "x86_64-linux";
> host version: "1237c9dda87f8d8259b43b5ee4510ecd01d0b71b"; pull-version: 1).
> Please report the COMPLETE output above by email to <[email-masked]>.

First, please note that 97a5819643a045b7cc68e80fd2fc05ed4eabf0d0 is from:

       CommitDate: Sat Mar 19 13:33:06 2022 -0600

Second, the failure leads to:

--8<---------------cut here---------------start------------->8---
$ guix build /gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv

[...]

Test Summary Report
-------------------
../test/recipes/80-test_cms.t                    (Wstat: 1280 Tests: 6 Failed: 5)
  Failed tests:  1-5
  Non-zero exit status: 5
../test/recipes/80-test_ssl_new.t                (Wstat: 256 Tests: 29 Failed: 1)
  Failed test:  12
  Non-zero exit status: 1
Files=158, Tests=2636, 84 wallclock secs ( 1.39 usr  0.12 sys + 78.30 cusr 15.69 csys = 95.50 CPU)
Result: FAIL
make[1]: *** [Makefile:208: _tests] Error 1
make[1]: Leaving directory '/tmp/guix-build-openssl-1.1.1l.drv-0/openssl-1.1.1l'
make: *** [Makefile:205: tests] Error 2

Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("test") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 84.5 seconds
command "make" "test" failed with status 2
builder for `/gnu/store/vhp1m48jlgqq2dg8pjnv1krj9f608f94-openssl-1.1.1l.drv' failed with exit code 1
build of /gnu/store/vhp1m48jlgqq2dg8pjnv1krj9f608f94-openssl-1.1.1l.drv failed
View build log at '/var/log/guix/drvs/vh/p1m48jlgqq2dg8pjnv1krj9f608f94-openssl-1.1.1l.drv.gz'.
cannot build derivation `/gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv' failed
--8<---------------cut here---------------end--------------->8---

It is a known time-bomb.  For now we do not have better other than
hard-code the time.  On my machine, I do:

--8<---------------cut here---------------start------------->8---
$ sudo timedatectl set-ntp false
$ sudo timedatectl set-time '2022-03-18 00:00:00'
$ guix build /gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv

[...]

successfully built /gnu/store/rprhfhdq4wqhq30wqzkps481s7v516ci-git-minimal-2.34.1.drv
/gnu/store/jdn2j1v9n16kzzhcvkpb7cm3n8i8j8rz-git-minimal-2.34.1
--8<---------------cut here---------------end--------------->8---

Although not fully visible, this time-bomb is already documented in the
manual:

     Note: Although it should technically be possible to travel to such
     an old commit, the ease to do so will largely depend on the
     availability of binary substitutes.  When traveling to a distant
     past, some packages may not easily build from source anymore.  One
     such example are old versions of Python 2 which had time bombs in
     its test suite, in the form of expiring SSL certificates.  This
     particular problem can be worked around by setting the hardware
     clock to a value in the past before attempting the build.

     https://guix.gnu.org/manual/devel/en/guix.html#Invoking-guix-time_002dmachine

Well, I agree that the situation is currently poor.  For now, it means
some tricks.

Cheers,
simon