mirror of
https://src.fedoraproject.org/rpms/grub2.git
synced 2024-11-27 23:34:51 +00:00
d3ceae4bfd
- 20-grub-install: Don't add an id field to generated BLS snippets - 99-grub-mkconfig: Disable BLS usage for Xen machines Resolves: rhbz#1703700 - Don't add a class option to menu entries generated for ppc64le Resolves: rhbz#1758225 - 10_linux.in: Also use GRUB_CMDLINE_LINUX_DEFAULT to set kernelopts - blscfg: Don't hardcode an env var as fallback for the BLS options field Resolves: rhbz#1710483 Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
63 lines
2.7 KiB
Diff
63 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
|
Date: Mon, 14 Oct 2019 17:37:26 +0200
|
|
Subject: [PATCH] blscfg: Don't hardcode an env var as fallback for the BLS
|
|
options field
|
|
|
|
If the BLS fragments don't have an options field or if this was set to an
|
|
environment variable that was not defined in the grubenv file, the blscfg
|
|
module searches for an default_kernelopts variable that is defined in the
|
|
grub.cfg file.
|
|
|
|
But the blscfg module shouldn't hardcode fallbacks variables and instead
|
|
this logic should be handled in the GRUB config file itself.
|
|
|
|
Also, add a comment explaining where the kernelopts variable is supposed
|
|
to be defined and what is the process for the user to change its value.
|
|
|
|
Resolves: rhbz#1710483
|
|
|
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
|
---
|
|
grub-core/commands/blscfg.c | 4 ----
|
|
util/grub.d/10_linux.in | 12 +++++++++++-
|
|
2 files changed, 11 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
|
index 1ec89870483..471975fd2e5 100644
|
|
--- a/grub-core/commands/blscfg.c
|
|
+++ b/grub-core/commands/blscfg.c
|
|
@@ -733,10 +733,6 @@ static void create_entry (struct bls_entry *entry)
|
|
|
|
title = bls_get_val (entry, "title", NULL);
|
|
options = expand_val (bls_get_val (entry, "options", NULL));
|
|
-
|
|
- if (!options)
|
|
- options = expand_val (grub_env_get("default_kernelopts"));
|
|
-
|
|
initrds = bls_make_list (entry, "initrd", NULL);
|
|
|
|
devicetree = expand_val (bls_get_val (entry, "devicetree", NULL));
|
|
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
|
index 0471464e68e..21a6915dca3 100644
|
|
--- a/util/grub.d/10_linux.in
|
|
+++ b/util/grub.d/10_linux.in
|
|
@@ -118,7 +118,17 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
|
|
populate_header_warn
|
|
|
|
cat << EOF
|
|
-set default_kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
|
+# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
|
|
+# entries populated from BootLoaderSpec files that use this variable work correctly even
|
|
+# without a grubenv file, define a fallback kernelopts variable if this has not been set.
|
|
+#
|
|
+# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
|
|
+# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
|
|
+# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
|
|
+# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
|
|
+if [ -z "\${kernelopts}" ]; then
|
|
+ set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
|
+fi
|
|
|
|
insmod blscfg
|
|
blscfg
|