Subject: Re: bug#39301: imported module (guix build utils) overrides core binding `delete'

From: Ludovic Courtès <[email-masked]>
Date: Thu, 02 Apr 2020 23:19:44 +0200

Hi,

Ludovic Courtès <[email-masked]> skribis:

> [email-masked] skribis:
>
>> Whenever running "sudo guix system reconfigure /path/to/config.scm I
>> get the following warnings:
>>
>> building
>> /gnu/store/vpazjd711byj3jszh7jrk5d8lq51077g-switch-to-system.scm.drv...
>> ;;; WARNING: loading compiled file
>> /gnu/store/5bd6ywmfcxxa4gvpzg0pdbjwmf24cxkl-module-import-compiled/gnu/build/activation.go
>> failed:
>> ;;; In procedure load-thunk-from-memory: incompatible bytecode kind
>> ;;; compiling

[...]

> All these warnings are harmless and stem from the Guile 2.2/3.0
> transition.  Specifically, it comes from the fact that ‘guix system
> reconfigure’ evaluates this code with the host Guile (in this case 3.0),
> whereas the modules are built for 2.2, which is what the Shepherd
> depends on.
>
> The culprit is ‘local-eval’ in (guix scripts system), which simply uses
> ‘primitive-eval’ to evaluate the code, thus disregarding the Guile
> version that should be used.
>
> One possibility would be to instead evaluate the expression in a
> separate Guile process for the intended Guile version.

It turns out to be easy to implement, and better than let people be
confused when they install the new release.

Done in commit 5517750344be05c91bc2979c1a0e2348a9ae902d.

Thanks,
Ludo’.