Commit bc499b113 broke guix on guile@2.0.14, improper <operating-system> field initialization
(address . bug-guix@gnu.org)
Hello Guix,
On the master branch (5d818b3557cc3b546d5bd0639359c14c7c0ab685), when
configured with guile@2.0.14, I get the following backtrace when
running `make`.
Backtrace:
In ice-9/boot-9.scm:
1739: 19 [#<procedure 34ebc6c0 ()>]
In unknown file:
?: 18 [primitive-load "/home/users/bavier/src/guix/./build-aux/compile-all.scm"]
In guix/build/compile.scm:
158: 17 [compile-files "." "/home/users/bavier/src/guix" ...]
107: 16 [load-files "." # # ...]
In ice-9/boot-9.scm:
2900: 15 [resolve-interface (gnu tests base) #:select ...]
2825: 14 [#<procedure 34dfc200 at ice-9/boot-9.scm:2813:4 (name #:optional autoload version #:key ensure)> # ...]
3101: 13 [try-module-autoload (gnu tests base) #f]
2412: 12 [save-module-excursion #<procedure 35c46750 at ice-9/boot-9.scm:3102:17 ()>]
3121: 11 [#<procedure 35c46750 at ice-9/boot-9.scm:3102:17 ()>]
In unknown file:
?: 10 [primitive-load-path "gnu/tests/base" ...]
In gnu/tests/base.scm:
390: 9 [#<procedure 38c523a0 ()>]
63: 8 [run-basic-test # # "basic" ...]
In ice-9/eval.scm:
387: 7 [eval # #]
387: 6 [eval # #]
411: 5 [eval # #]
387: 4 [eval # #]
In unknown file:
?: 3 [filter #<procedure 35c461e0 at ice-9/eval.scm:416:20 (a)> (# # # #)]
In ice-9/eval.scm:
411: 2 [eval # #]
411: 1 [eval # #]
387: 0 [eval # #]
ice-9/eval.scm:387:11: In procedure eval:
ice-9/eval.scm:387:11: In procedure mapped-device-target: Wrong type argument: #<<file-system> device: "my-root" title: label mount-point: "/" type: "ext4" flags: () options: #f mount?: #t needed-for-boot?: #f check?: #t create-mount-point?: #f dependencies: () location: ((line . 209) (column . 24) (filename . "gnu/tests.scm"))>
(as an aside: maybe would could postpone compilation of test modules
until `make check`).
I git bisect'd this failure to commit
bc499b113a598c0e7863da9887a4133472985713, which added the
'initrd-modules' field to the (@ (gnu system) <operating-system>)
record.
The %simple-os from (gnu tests base) seems improperly initialized. In
particular, the fields seem to be shifted:
scheme@(guile-user)> (@@ (gnu tests base) %simple-os)
$1 = #<<operating-system>
kernel: #<package linux-libre@4.15.7 ...>
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.
--
Eric Bavier, Scientific Libraries, Cray Inc.