Patchwork system: grub: Introduce foreign-menu-entry.

login
register
mail settings
Submitter Ludovic Courtès
Date Aug. 3, 2016, 4:52 p.m.
Message ID <87lh0d23sf.fsf@gnu.org>
Download mbox | patch
Permalink /patch/14292/
State New
Headers show

Comments

Ludovic Courtès - Aug. 3, 2016, 4:52 p.m.
Hi!

Tomáš Čech <sleep_walker@gnu.org> skribis:

> * gnu/system/grub(foreign-menu-entry): New record type.
>
> menu-entry type is suitable for kernel and initrd from GuixSD as it is looking
> for menu-entry-linux/bzImage for kernel in every case which makes pasing any
> other form impossible.

AIUI, this is a followup to <http://bugs.gnu.org/20067>, and it’s
admittedly a shame that this isn’t fixed!

I still think that the approach proposed at
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20067#10> is more
appropriate; ‘menu-entry’ would always work, no duplication would be
necessary.

As a stop-gap measure, I would prefer to (1) allow:

  (menu-entry
    ;; …
    (linux #~(string-append #$kernel "/bzImage")))

(2) remove the “/bzImage” assumption and use the above idiom everywhere
in the current code, and (3) and have a hack along these lines to
correctly interpret (string-append …) in the ‘parameters’ file:
Thoughts?

Thanks,
Ludo’.
Chris Marusich - Aug. 4, 2016, 5:38 a.m.
ludo@gnu.org (Ludovic Courtès) writes:

> I still think that the approach proposed at
> <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20067#10> is more
> appropriate; ‘menu-entry’ would always work, no duplication would be
> necessary.
>
> As a stop-gap measure, I would prefer to (1) allow:
>
>   (menu-entry
>     ;; …
>     (linux #~(string-append #$kernel "/bzImage")))
>
> (2) remove the “/bzImage” assumption and use the above idiom everywhere
> in the current code, and (3) and have a hack along these lines to
> correctly interpret (string-append …) in the ‘parameters’ file:
>
>
> diff --git a/gnu/system.scm b/gnu/system.scm
> index d6bf6c4..467d907 100644
> --- a/gnu/system.scm
> +++ b/gnu/system.scm
> @@ -766,7 +766,11 @@ this file is the reconstruction of GRUB menu entries for old configurations."
>       (boot-parameters
>        (label label)
>        (root-device root)
> -      (kernel linux)
> +      (kernel (match linux
> +                (('string-append (? string? strings) ...)
> +                 (string-concatenate strings))
> +                (_
> +                 linux)))
>        (kernel-arguments
>         (match (assq 'kernel-arguments rest)
>           ((_ args) args)
>
>
> Thoughts?

Yes, that approach seems better to me.

Patch

diff --git a/gnu/system.scm b/gnu/system.scm
index d6bf6c4..467d907 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -766,7 +766,11 @@  this file is the reconstruction of GRUB menu entries for old configurations."
      (boot-parameters
       (label label)
       (root-device root)
-      (kernel linux)
+      (kernel (match linux
+                (('string-append (? string? strings) ...)
+                 (string-concatenate strings))
+                (_
+                 linux)))
       (kernel-arguments
        (match (assq 'kernel-arguments rest)
          ((_ args) args)