Fix for BLS paths on BIOS / non-UEFI (javierm)

Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
Peter Jones 2018-04-03 13:35:42 -04:00
parent a77a66863f
commit e8e6235eab
3 changed files with 54 additions and 1 deletions

View file

@ -0,0 +1,49 @@
From 62b3c9bf77feda2ae595c5e811b3918d3bf990a4 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Tue, 3 Apr 2018 15:42:47 +0200
Subject: [PATCH 216/216] Only attempt to scan different BLS directories on EFI
machines
Current BLS support attempted to scan for BLS directories, but this only
makes sense on EFI, where BLS fragments are in /loader/$vendor/entries.
For BIOS, only either the default /loader/entries path should be scanned
or the BLS directory defined in the blsdir GRUB 2 environment variable.
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
grub-core/commands/blscfg.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
index e5617c3bc6c..c0973ff83ea 100644
--- a/grub-core/commands/blscfg.c
+++ b/grub-core/commands/blscfg.c
@@ -676,8 +676,8 @@ static int find_entry (const char *filename,
const char *devid = grub_env_get ("boot");
grub_dprintf("blscfg", "%s got here\n", __func__);
- if (!grub_strcmp (filename, ".") ||
- !grub_strcmp (filename, ".."))
+ if (filename && (!grub_strcmp (filename, ".") ||
+ !grub_strcmp (filename, "..")))
return 0;
if (info->platform == PLATFORM_EFI && !grub_strcasecmp (filename, "boot"))
@@ -872,11 +872,10 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED,
info.platform = PLATFORM_EMU;
grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE,
GRUB_BLS_CONFIG_PATH);
- r = fs->dir (dev, "/boot/loader/",
- find_entry, &info);
+ find_entry(NULL, NULL, &info);
#else
grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH);
- r = fs->dir (dev, "/", find_entry, &info);
+ find_entry(NULL, NULL, &info);
#endif
finish:
--
2.15.0

View file

@ -213,3 +213,4 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch
Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch
Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch
Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch
Patch0216: 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch

View file

@ -7,7 +7,7 @@
Name: grub2
Epoch: 1
Version: 2.02
Release: 28%{?dist}
Release: 29%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base
License: GPLv3+
@ -452,6 +452,9 @@ fi
%endif
%changelog
* Tue Apr 03 2018 Peter Jones <pjones@redhat.com> - 2.02-29
- Fix for BLS paths on BIOS / non-UEFI (javierm)
* Fri Mar 16 2018 Peter Jones <pjones@redhat.com> - 2.02-28
- Install kernel-install scripts. (javierm)
- Add grub2-switch-to-blscfg