Subject: Re: bug#41541: [PATCH 4/8] bootloader: grub: Add support for multiboot.

From: Jan Nieuwenhuizen <[email-masked]>
Date: Sat, 06 Jun 2020 10:46:14 +0200

Mathieu Othacehe writes:

>> +      (($ <menu-entry> label device mount-point #f () #f kernel arguments modules)
>> +       (let* ((target (%current-target-system)))
>
> This doesn't seem to be used anymore.

Oops, but yeah: great!  Sorry -- this went through so many iterations,
thanks for catching it.

> Plus using %current-target-system
> here could not give the expected result. I think that the only two
> "safe" ways are to use (current-target-system) from a monadic context,
> or to use "let-system".

> We should maybe write something about that in the documentation.

Maybe...I think also that I should become more aware about monadic
context and its implications.

>> +         #~(format port "
>> +menuentry ~s {
>> +  multiboot ~a root=device:hd0s1~a~a
>> +}~%"
>
> If we add support for EFI one day, then it could be "hd0s2". In
> "install-grub-disk-image", I manage to get to root-index from the
> caller. I think it will be harder to do the same thing here. It's ok for
> me if we leave it this way.

Of course -- and this only works as long as we are only building virtual
machine images.  Changed to this

       (let ((root-index 1))         ; XXX EFI will need root-index 2

Thanks, Janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com