Blob Blame History Raw
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Fri, 4 Oct 2019 16:43:05 +0200
Subject: [PATCH] Don't add a class option to menu entries generated for
 ppc64le

For ppc64le a grub config file with menuentry commands is still generated
even when BLS support is enabled. That's because BLS support was added to
Petitboot 1.8.0 and any previous version won't be able to parse BLS files.

To make the BLS snippets the source of truth, these are used to generate
the menuentry commands in the grub config file.

And to keep it consistent across all ppc64le machines regardless of the
firmware used, the grub config file is also generated for machines with
OF that use grub2 and would have BLS support.

The BLS snippets created by the kernel package have fields that are used
to specify the generated menuentry command users and class options. These
fields are not present in BLS snippets created by OSTree though, so the
script generating the menuentry commands will add options with an empty
argument which will lead to grub failing to parse them.

We could check if the field is defined before attempting to add those, but
since the grub2 blscfg module also supports setting these to variables, it
could lead to an empty argument even if was defined in the BLS snippet if
the variable doesn't exist.

So to make more robust, just don't add a class to the menuentry commands
generated by the script. It's better to not have a class for the menuentry
than grub2 failing to parse the command and not populating the boot menu.

Resolves: rhbz#1758225

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
 util/grub.d/10_linux_bls.in | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in
index 1b7536435f1..68fbedf2129 100644
--- a/util/grub.d/10_linux_bls.in
+++ b/util/grub.d/10_linux_bls.in
@@ -127,9 +127,7 @@ read_config()
     initrd=""
     options=""
     linux=""
-    grub_users=""
     grub_arg=""
-    grub_class=""
 
     while read -r line
     do
@@ -148,15 +146,9 @@ read_config()
             "options")
                 options=${value}
                 ;;
-            "grub_users")
-                grub_users=${value}
-                ;;
             "grub_arg")
                 grub_arg=${value}
                 ;;
-            "grub_class")
-                grub_class=${value}
-                ;;
         esac
     done < ${config_file}
 }
@@ -180,7 +172,7 @@ populate_menu()
     for bls in "${files[@]}" ; do
         read_config "${blsdir}/${bls}.conf"
 
-        menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --id=${bls} {\n"
+        menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n"
         menu="${menu}\t linux ${linux} ${options}\n"
         if [ -n "${initrd}" ] ; then
             menu="${menu}\t initrd ${boot_prefix}${initrd}\n"