Subject: Re: bug#30879: Commit bc499b113 broke guix on [email-masked], improper <operating-system> field initialization

From: [email-masked] (Ludovic Courtès)
Date: Wed, 21 Mar 2018 00:12:02 +0100

Hello Eric,

Eric Bavier <[email-masked]> skribis:

> scheme@(guile-user)> (@@ (gnu tests base) %simple-os)
> $1 = #<<operating-system>
>        kernel: #<package [email-masked] ...>
>        kernel-arguments: ()
>        bootloader: #<<bootloader-configuration> bootloader: ...>
>        initrd: #<procedure base-initrd ...>
>        initrd-modules: ()
>        firmware: "komputilo"
>        host-name: #f
>        hosts-file: ()
>        mapped-devices: (#<<file-system> device: "my-root" ...> #<<file-system> ...> ...)
>        file-systems: ()
>        swap-devices: (#<<user-account> name: "alice" ...> ...)
>        ...
>
> Notice e.g. the "firmware" field has that value that should be in
> "host-name", which has the value "hosts-file" should have, and
> "mapped-devices" has the value "file-systems" should have, etc.
>
> If you explicitely specify the new "initrd-modules" field this commit
> added in (@ (gnu tests) %simple-os), then compilation proceeds as
> expected.

That sounds a lot like regular ABI breakage: a new <operating-system>
field was added but gnu/tests/base.go wasn’t rebuilt, and thus was
expecting the previous struct layout.

Does “rm gnu/tests/base.go && make” suffice to fix this issue?

Thanks,
Ludo’.