Subject: Re: bug#41929: Missing root file system in OS leads to backtrace

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 28 Sep 2022 20:42:46 -0400

Hi,

Jan Synacek <[email-masked]> writes:

> $ cat guix-os.scm 
> (use-modules (gnu bootloader)
> 	     (gnu bootloader grub)
> 	     (gnu system file-systems))
>
> (operating-system
>   (host-name "jsynacek-guix-os")
>   (timezone "Europe/Prague")
>   (locale "en_US.utf8")
>   (bootloader
>     (bootloader-configuration
>       (bootloader grub-efi-bootloader)
>       (target "/dev/sdx")))
>   (file-systems
>     (list (file-system (mount-point "/home")
>                        (device "/dev/sda33")
>                        (type "ext4")))))
>
> $ guix system build guix-os.scm 
> Backtrace:
> In ice-9/boot-9.scm:
>   1736:10  4 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In unknown file:
>            3 (apply-smob/0 #<thunk 7f62f6eb0940>)
> In ice-9/boot-9.scm:
>     718:2  2 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
> In ice-9/eval.scm:
>     619:8  1 (_ #(#(#<directory (guile-user) 7f62f6ad3f00>)))
> In guix/ui.scm:
>   1936:12  0 (run-guix-command _ . _)
>
> guix/ui.scm:1936:12: In procedure run-guix-command:
> In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f
>
> Note that 'guix system init ...' and maybe other commands don't work
> too. 'guix system vm' with the above config file works without a
> backtrace.
>
> This is on guix 1.1.0 running on Fedora 32. I also tried to 'guix pull'
> but the result is the same.

Not reproducible using the latest Guix:

--8<---------------cut here---------------start------------->8---
$ guix system build /tmp/os.scm
/tmp/os.scm:12:14: warning: the 'target' field is deprecated, please use 'targets' instead
/tmp/os.scm:5:0: error: missing root file system
--8<---------------cut here---------------end--------------->8---

Closing.

Thanks!

Maxim