79 lines
2.9 KiB
Diff
79 lines
2.9 KiB
Diff
|
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"
|