Subject: Re: bug#29881: guix system reconfigure fails if config.scm contains LUKS mapped-devices
From: [email-masked] (Ludovic Courtès)
To: Mark H Weaver <[email-masked]>
Cc: [email-masked], Diego Nicola Barbato <[email-masked]>
Date: Mon, 05 Mar 2018 10:58:54 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

[email-masked] (Ludovic Courtès) skribis:

> Mark H Weaver <[email-masked]> skribis:
>
>> [email-masked] (Ludovic Courtès) writes:
>>
>>> Diego Nicola Barbato <[email-masked]> skribis:
>>>
>>>> When running `guix system reconfigure /etc/config.scm' as root I get the
>>>> following error:
>>>>
>>>> guix system: error: failed to load '/etc/config.scm':
>>>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>>>
>>> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
>>> auto-compilation cache) to work around
>>> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>>
>> FYI, more recently there has been another change that caused "guix
>> system build" to fail for me, and once again it was fixed by clearing
>> the auto-compilation cache for my system configuration.
>
> For now, in commit 92423868bc451600f8f3d93b638091d12b14b7aa, I’ve
> arranged so that auto-compilation is turned off for Guile 2.2.3 only.

[...]

> I’m not sure we can do much better for 2.2.3, or perhaps we should
> always use (compile-file file #:to 'value) in ‘load*’?

In commit f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58 I added an explicit
‘compile-file’ call to update the cached .go file for the user’s config,
when on 2.2.3.

This should solve the problem most of the time.  The only remaining
issue is if you’re using 2.2.3 and your config spans several modules:
only the main .scm file is rebuilt, so there could be ABI issues in the
other modules.

I’m closing the bug now.

Ludo’.