bug#20067: [PATCH] system: grub: Introduce foreign-menu-entry.

2016-08-03 Thread Chris Marusich
l...@gnu.org (Ludovic Courtès) writes:

> I still think that the approach proposed at
>  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.

-- 
Chris


signature.asc
Description: PGP signature


bug#20067: [PATCH] system: grub: Introduce foreign-menu-entry.

2016-08-03 Thread Ludovic Courtès
Hi!

Tomáš Čech  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 , and it’s
admittedly a shame that this isn’t fixed!

I still think that the approach proposed at
 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?

Thanks,
Ludo’.