Subject: Re: bug#73601: failed to compute the derivation for Guix

From: Simon Tournier <[email-masked]>
Date: Thu, 03 Oct 2024 17:06:23 +0200

Hi,

On mer., 02 oct. 2024 at 16:27, Fabrice Tudoret <[email-masked]> wrote:

> [hjebbari@cluster24 ~]$ guix pull
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Authenticating channel 'guix', commits 9edb3f6 to a47d7af (2 new commits)...

Well, it’s confusing.  First the authentication reads from:

        9edb3f66fd807b096b48283debdcddccfea34bad
        AuthorDate: Tue May 26 22:30:51 2020 +0200
        CommitDate: Tue May 26 22:30:51 2020 +0200
to:
        a47d7af2273c2dbb5376e776b34e78a9146abbfe
        AuthorDate: Sun Sep 29 02:00:00 2024 +0200
        CommitDate: Sun Sep 29 02:00:00 2024 +0200

and there is more than 2 commits between them. ;-)  Therefore, something
is probably twisted under ~/.cache/guix

Second, based on this message, 

--8<---------------cut here---------------start------------->8---
guix pull: error: You found a bug: the program '/gnu/store/38agwh7x3v43jhl06ginx2080zc8isfj-compute-guix-derivation'
failed to compute the derivation for Guix (version: "a47d7af2273c2dbb5376e776b34e78a9146abbfe"; system: "x86_64-linux";
host version: "a8353e9d6b34fd8d42d2e8f14ce844849fe9c293"; pull-version: 1).
Please report the COMPLETE output above by email to<[email-masked]>.
--8<---------------cut here---------------end--------------->8---

The host revision seems:

        a8353e9d6b34fd8d42d2e8f14ce844849fe9c293
        AuthorDate: Sat Apr 6 09:32:09 2024 +0300
        CommitDate: Mon Apr 15 12:32:42 2024 +0200

Hum?! this

  guix \
     time-machine -q --commit=a8353e9d6b34fd8d42d2e8f14ce844849fe9c293 \
  -- time-machine -q --commit=a47d7af2273c2dbb5376e776b34e78a9146abbfe \
  -- describe

works for me.

Third, 

> Building from this channel:
>    guixhttps://git.savannah.gnu.org/git/guix.git	a47d7af

[...]

> building /gnu/store/21c7pjahkh20mmzq2ivki57zwwvp6nwn-bootstrap-binaries-0.drv...
> building /gnu/store/ih5923dvfg64nlpibc4qfa22jkyqykrm-bootar-1b.drv...
> building /gnu/store/jc3vgcsplqsim3na80b0n2iilna5j6gx-Python-3.5.9.tar.xz.drv...

[...]

> View build log at '/var/log/guix/drvs/3c/c3xp9p4xdm1hkbxshcmwvk49vqg7jq-patch-mesboot-2.5.9.drv.gz'.

[...]

> Backtrace:
>            14 (primitive-load "/gnu/store/38agwh7x3v43jhl06ginx2080zc8isfj-compute-guix-derivation")
> In ice-9/eval.scm:
>      155:9 13 (_ _)
>      159:9 12 (_ #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#<directory (guile-u?> ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?))
> In ice-9/boot-9.scm:
>      152:2 11 (with-fluid* _ _ _)
>      152:2 10 (with-fluid* _ _ _)
> In ./guix/store.scm:
>    2210:24  9 (run-with-store #<store-connection 256.100 7f12815410a0> #<procedure 7f12696ada00 at ./guix/self.scm:1?> ?)
>     2038:8  8 (_ #<store-connection 256.100 7f12815410a0>)
> In ./guix/gexp.scm:
>     300:22  7 (_ #<store-connection 256.100 7f12815410a0>)
>     1218:2  6 (_ #<store-connection 256.100 7f12815410a0>)
>     1085:2  5 (_ #<store-connection 256.100 7f12815410a0>)
>      926:4  4 (_ #<store-connection 256.100 7f12815410a0>)
> In ./guix/store.scm:
>    2095:12  3 (_ #<store-connection 256.100 7f12815410a0>)
>     1433:5  2 (map/accumulate-builds #<store-connection 256.100 7f12815410a0> #<procedure 7f126dc55920 at ./guix/sto?> ?)
>    1449:15  1 (_ #<store-connection 256.100 7f12815410a0> ("/gnu/store/i9y8962w382ivw7n66i6vdj2dxg3qi7r-guix-daem?" ?) ?)
>    1449:15  0 (loop #f)
>
> ./guix/store.scm:1449:15: In procedure loop:
> ERROR:
>    1. &store-protocol-error:
>        message: "build of `/gnu/store/r7qvm0ad2qxdm000mlfbr8c8wxw2jfvf-git-minimal-2.46.0.drv' failed"
>        status: 100

Ouch! Something seems twisted because all is rebuilt from bootstrap
although the substitutes are allowed, I guess.  In other words,
something is probably modified that modifies then the derivations.

For instance, I get:

    $ guix \
         time-machine -q --commit=a8353e9d6b34fd8d42d2e8f14ce844849fe9c293
      -- time-machine -q --commit=a47d7af2273c2dbb5376e776b34e78a9146abbfe \
      -- build -e '(@@ (gnu packages commencement) python-boot0)' -S -d

    /gnu/store/mbnrrqjizy3dvma9i3l8g5yvzi2p04ys-Python-3.5.9.tar.xz.drv

And not:

    /gnu/store/jc3vgcsplqsim3na80b0n2iilna5j6gx-Python-3.5.9.tar.xz.drv

Well, if we give a look to the derivation, it reads:

--8<---------------cut here---------------start------------->8---
$ cat /gnu/store/mbnrrqjizy3dvma9i3l8g5yvzi2p04ys-Python-3.5.9.tar.xz.drv | sed 's/)/)\n/g'

Derive([("out","/gnu/store/jl82wnklrfhjgnml3s3w0l4m4mjwpazb-Python-3.5.9.tar.xz","","")
],[("/gnu/store/38951a2gcwb4jyrwlzg634jfwkdih7m2-bootstrap-binaries-0.drv",["out"])
,("/gnu/store/ff107pg13nkarix7k9hgxxwx9cnn4602-module-import-compiled.drv",["out"])
,("/gnu/store/g08l2msvnivyi6x5nw52ak8n17sw9lzr-guile-bootstrap-2.0.drv",["out"])
,("/gnu/store/lb5b7svdmfj1ijnzrripsjcv0bhqzpwb-Python-3.5.9.tar.xz.drv",["out"])
],["/gnu/store/jsxgc979x79h81kzqz9n6cpf5pk4z262-module-import","/gnu/store/ykqckrxcmifvxz0nb58lv2drgd14l377-Python-3.5.9.tar.xz-builder"],"x86_64-linux","/gnu/store/lgi9x15a0w35mcpd7g1kb9274r6wy4pv-guile-bootstrap-2.0/bin/guile",["--no-auto-compile","-L","/gnu/store/jsxgc979x79h81kzqz9n6cpf5pk4z262-module-import","-C","/gnu/store/j2r95mqfir1q6hsavm0r22k8z49nbvk1-module-import-compiled","/gnu/store/ykqckrxcmifvxz0nb58lv2drgd14l377-Python-3.5.9.tar.xz-builder"],[("guix properties","((type . origin)
 (patches . 0)
)
")
,("out","/gnu/store/jl82wnklrfhjgnml3s3w0l4m4mjwpazb-Python-3.5.9.tar.xz")
])
--8<---------------cut here---------------end--------------->8---

Here, some derivations are the same and other are probably not.

All in all, it’s hard to tell what’s wrong. :-)

Cheers,
simon