-diff -urN grub-2.04.orig/grub-core/commands/blscfg.c grub-2.04/grub-core/commands/blscfg.c
---- grub-2.04.orig/grub-core/commands/blscfg.c 1970-01-01 01:00:00.000000000 +0100
-+++ grub-2.04/grub-core/commands/blscfg.c 2019-08-18 16:14:44.723000000 +0200
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Tue, 22 Jan 2013 06:31:38 +0100
+Subject: [PATCH] blscfg: add blscfg module to parse Boot Loader Specification
+ snippets
+
+The BootLoaderSpec (BLS) defines a scheme where different bootloaders can
+share a format for boot items and a configuration directory that accepts
+these common configurations as drop-in files.
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
+[wjt: some cleanups and fixes]
+Signed-off-by: Will Thompson <wjt@endlessm.com>
+---
+ grub-core/Makefile.core.def | 11 +
+ grub-core/commands/blscfg.c | 1096 ++++++++++++++++++++++++++++++++++++++++
+ grub-core/commands/legacycfg.c | 5 +-
+ grub-core/commands/loadenv.c | 77 +--
+ grub-core/commands/menuentry.c | 20 +-
+ grub-core/normal/main.c | 6 +
+ grub-core/commands/loadenv.h | 93 ++++
+ include/grub/compiler.h | 2 +
+ include/grub/menu.h | 13 +
+ include/grub/normal.h | 2 +-
+ 10 files changed, 1243 insertions(+), 82 deletions(-)
+ create mode 100644 grub-core/commands/blscfg.c
+ create mode 100644 grub-core/commands/loadenv.h
+
+diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
+index 41b5e16a3ce..57e253ab1a1 100644
+--- a/grub-core/Makefile.core.def
++++ b/grub-core/Makefile.core.def
+@@ -811,6 +811,16 @@ module = {
+ common = commands/blocklist.c;
+ };
+
++module = {
++ name = blscfg;
++ common = commands/blscfg.c;
++ common = commands/loadenv.h;
++ enable = powerpc_ieee1275;
++ enable = efi;
++ enable = i386_pc;
++ enable = emu;
++};
++
+ module = {
+ name = boot;
+ common = commands/boot.c;
+@@ -988,6 +998,7 @@ module = {
+ module = {
+ name = loadenv;
+ common = commands/loadenv.c;
++ common = commands/loadenv.h;
+ common = lib/envblk.c;
+ };
+
+diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
+new file mode 100644
+index 00000000000..54458b14518
+--- /dev/null
++++ b/grub-core/commands/blscfg.c
@@ -0,0 +1,1096 @@
+/*-*- Mode: C; c-basic-offset: 2; indent-tabs-mode: t -*-*/
+
+ grub_unregister_extcmd (cmd);
+ grub_unregister_extcmd (oldcmd);
+}
-diff -urN grub-2.04.orig/grub-core/commands/legacycfg.c grub-2.04/grub-core/commands/legacycfg.c
---- grub-2.04.orig/grub-core/commands/legacycfg.c 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/grub-core/commands/legacycfg.c 2019-08-18 16:14:44.723000000 +0200
-@@ -133,7 +133,7 @@
+diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c
+index db7a8f00273..891eac5a33f 100644
+--- a/grub-core/commands/legacycfg.c
++++ b/grub-core/commands/legacycfg.c
+@@ -133,7 +133,7 @@ legacy_file (const char *filename)
args[0] = oldname;
grub_normal_add_menu_entry (1, args, NULL, NULL, "legacy",
NULL, NULL,
grub_free (args);
entrysrc[0] = 0;
grub_free (oldname);
-@@ -186,7 +186,8 @@
+@@ -186,7 +186,8 @@ legacy_file (const char *filename)
}
args[0] = entryname;
grub_normal_add_menu_entry (1, args, NULL, NULL, NULL,
grub_free (args);
}
-diff -urN grub-2.04.orig/grub-core/commands/loadenv.c grub-2.04/grub-core/commands/loadenv.c
---- grub-2.04.orig/grub-core/commands/loadenv.c 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/grub-core/commands/loadenv.c 2019-08-18 16:14:44.723000000 +0200
+diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c
+index 3fd664aac33..163b9a09042 100644
+--- a/grub-core/commands/loadenv.c
++++ b/grub-core/commands/loadenv.c
@@ -28,6 +28,8 @@
#include <grub/extcmd.h>
#include <grub/i18n.h>
GRUB_MOD_LICENSE ("GPLv3+");
static const struct grub_arg_option options[] =
-@@ -79,81 +81,6 @@
+@@ -79,81 +81,6 @@ open_envblk_file (char *filename,
return file;
}
static grub_err_t
grub_cmd_load_env (grub_extcmd_context_t ctxt, int argc, char **args)
{
-diff -urN grub-2.04.orig/grub-core/commands/loadenv.h grub-2.04/grub-core/commands/loadenv.h
---- grub-2.04.orig/grub-core/commands/loadenv.h 1970-01-01 01:00:00.000000000 +0100
-+++ grub-2.04/grub-core/commands/loadenv.h 2019-08-18 16:14:44.724000000 +0200
+diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c
+index 2c5363da7f5..9faf2be0f64 100644
+--- a/grub-core/commands/menuentry.c
++++ b/grub-core/commands/menuentry.c
+@@ -78,7 +78,7 @@ grub_normal_add_menu_entry (int argc, const char **args,
+ char **classes, const char *id,
+ const char *users, const char *hotkey,
+ const char *prefix, const char *sourcecode,
+- int submenu)
++ int submenu, int *index, struct bls_entry *bls)
+ {
+ int menu_hotkey = 0;
+ char **menu_args = NULL;
+@@ -149,9 +149,12 @@ grub_normal_add_menu_entry (int argc, const char **args,
+ if (! menu_title)
+ goto fail;
+
++ grub_dprintf ("menu", "id:\"%s\"\n", id);
++ grub_dprintf ("menu", "title:\"%s\"\n", menu_title);
+ menu_id = grub_strdup (id ? : menu_title);
+ if (! menu_id)
+ goto fail;
++ grub_dprintf ("menu", "menu_id:\"%s\"\n", menu_id);
+
+ /* Save argc, args to pass as parameters to block arg later. */
+ menu_args = grub_calloc (argc + 1, sizeof (char *));
+@@ -170,8 +173,12 @@ grub_normal_add_menu_entry (int argc, const char **args,
+ }
+
+ /* Add the menu entry at the end of the list. */
++ int ind=0;
+ while (*last)
+- last = &(*last)->next;
++ {
++ ind++;
++ last = &(*last)->next;
++ }
+
+ *last = grub_zalloc (sizeof (**last));
+ if (! *last)
+@@ -188,8 +195,11 @@ grub_normal_add_menu_entry (int argc, const char **args,
+ (*last)->args = menu_args;
+ (*last)->sourcecode = menu_sourcecode;
+ (*last)->submenu = submenu;
++ (*last)->bls = bls;
+
+ menu->size++;
++ if (index)
++ *index = ind;
+ return GRUB_ERR_NONE;
+
+ fail:
+@@ -286,7 +296,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
+ users,
+ ctxt->state[2].arg, 0,
+ ctxt->state[3].arg,
+- ctxt->extcmd->cmd->name[0] == 's');
++ ctxt->extcmd->cmd->name[0] == 's',
++ NULL, NULL);
+
+ src = args[argc - 1];
+ args[argc - 1] = NULL;
+@@ -303,7 +314,8 @@ grub_cmd_menuentry (grub_extcmd_context_t ctxt, int argc, char **args)
+ ctxt->state[0].args, ctxt->state[4].arg,
+ users,
+ ctxt->state[2].arg, prefix, src + 1,
+- ctxt->extcmd->cmd->name[0] == 's');
++ ctxt->extcmd->cmd->name[0] == 's', NULL,
++ NULL);
+
+ src[len - 1] = ch;
+ args[argc - 1] = src;
+diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
+index 9ef98481f70..a326b192c89 100644
+--- a/grub-core/normal/main.c
++++ b/grub-core/normal/main.c
+@@ -20,6 +20,7 @@
+ #include <grub/net.h>
+ #include <grub/normal.h>
+ #include <grub/dl.h>
++#include <grub/menu.h>
+ #include <grub/misc.h>
+ #include <grub/file.h>
+ #include <grub/mm.h>
+@@ -70,6 +71,11 @@ grub_normal_free_menu (grub_menu_t menu)
+ grub_free (entry->args);
+ }
+
++ if (entry->bls)
++ {
++ entry->bls->visible = 0;
++ }
++
+ grub_free ((void *) entry->id);
+ grub_free ((void *) entry->users);
+ grub_free ((void *) entry->title);
+diff --git a/grub-core/commands/loadenv.h b/grub-core/commands/loadenv.h
+new file mode 100644
+index 00000000000..952f46121bd
+--- /dev/null
++++ b/grub-core/commands/loadenv.h
@@ -0,0 +1,93 @@
+/* loadenv.c - command to load/save environment variable. */
+/*
+
+ return 0;
+}
-diff -urN grub-2.04.orig/grub-core/commands/menuentry.c grub-2.04/grub-core/commands/menuentry.c
---- grub-2.04.orig/grub-core/commands/menuentry.c 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/grub-core/commands/menuentry.c 2019-08-18 16:14:44.723000000 +0200
-@@ -78,7 +78,7 @@
- char **classes, const char *id,
- const char *users, const char *hotkey,
- const char *prefix, const char *sourcecode,
-- int submenu)
-+ int submenu, int *index, struct bls_entry *bls)
- {
- int menu_hotkey = 0;
- char **menu_args = NULL;
-@@ -149,9 +149,12 @@
- if (! menu_title)
- goto fail;
-
-+ grub_dprintf ("menu", "id:\"%s\"\n", id);
-+ grub_dprintf ("menu", "title:\"%s\"\n", menu_title);
- menu_id = grub_strdup (id ? : menu_title);
- if (! menu_id)
- goto fail;
-+ grub_dprintf ("menu", "menu_id:\"%s\"\n", menu_id);
-
- /* Save argc, args to pass as parameters to block arg later. */
- menu_args = grub_malloc (sizeof (char*) * (argc + 1));
-@@ -170,8 +173,12 @@
- }
-
- /* Add the menu entry at the end of the list. */
-+ int ind=0;
- while (*last)
-- last = &(*last)->next;
-+ {
-+ ind++;
-+ last = &(*last)->next;
-+ }
-
- *last = grub_zalloc (sizeof (**last));
- if (! *last)
-@@ -188,8 +195,11 @@
- (*last)->args = menu_args;
- (*last)->sourcecode = menu_sourcecode;
- (*last)->submenu = submenu;
-+ (*last)->bls = bls;
-
- menu->size++;
-+ if (index)
-+ *index = ind;
- return GRUB_ERR_NONE;
-
- fail:
-@@ -286,7 +296,8 @@
- users,
- ctxt->state[2].arg, 0,
- ctxt->state[3].arg,
-- ctxt->extcmd->cmd->name[0] == 's');
-+ ctxt->extcmd->cmd->name[0] == 's',
-+ NULL, NULL);
-
- src = args[argc - 1];
- args[argc - 1] = NULL;
-@@ -303,7 +314,8 @@
- ctxt->state[0].args, ctxt->state[4].arg,
- users,
- ctxt->state[2].arg, prefix, src + 1,
-- ctxt->extcmd->cmd->name[0] == 's');
-+ ctxt->extcmd->cmd->name[0] == 's', NULL,
-+ NULL);
-
- src[len - 1] = ch;
- args[argc - 1] = src;
-diff -urN grub-2.04.orig/grub-core/Makefile.core.def grub-2.04/grub-core/Makefile.core.def
---- grub-2.04.orig/grub-core/Makefile.core.def 2019-04-23 10:54:47.000000000 +0200
-+++ grub-2.04/grub-core/Makefile.core.def 2019-08-18 16:14:44.723000000 +0200
-@@ -810,6 +810,16 @@
- };
-
- module = {
-+ name = blscfg;
-+ common = commands/blscfg.c;
-+ common = commands/loadenv.h;
-+ enable = powerpc_ieee1275;
-+ enable = efi;
-+ enable = i386_pc;
-+ enable = emu;
-+};
-+
-+module = {
- name = boot;
- common = commands/boot.c;
- i386_pc = lib/i386/pc/biosnum.c;
-@@ -986,6 +996,7 @@
- module = {
- name = loadenv;
- common = commands/loadenv.c;
-+ common = commands/loadenv.h;
- common = lib/envblk.c;
- };
-
-diff -urN grub-2.04.orig/grub-core/normal/main.c grub-2.04/grub-core/normal/main.c
---- grub-2.04.orig/grub-core/normal/main.c 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/grub-core/normal/main.c 2019-08-18 16:14:44.724000000 +0200
-@@ -20,6 +20,7 @@
- #include <grub/kernel.h>
- #include <grub/normal.h>
- #include <grub/dl.h>
-+#include <grub/menu.h>
- #include <grub/misc.h>
- #include <grub/file.h>
- #include <grub/mm.h>
-@@ -66,6 +67,11 @@
- grub_free (entry->args);
- }
-
-+ if (entry->bls)
-+ {
-+ entry->bls->visible = 0;
-+ }
-+
- grub_free ((void *) entry->id);
- grub_free ((void *) entry->users);
- grub_free ((void *) entry->title);
-diff -urN grub-2.04.orig/include/grub/compiler.h grub-2.04/include/grub/compiler.h
---- grub-2.04.orig/include/grub/compiler.h 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/include/grub/compiler.h 2019-08-18 16:14:44.724000000 +0200
+diff --git a/include/grub/compiler.h b/include/grub/compiler.h
+index c9e1d7a73dc..9859ff4cc79 100644
+--- a/include/grub/compiler.h
++++ b/include/grub/compiler.h
@@ -48,4 +48,6 @@
- # define WARN_UNUSED_RESULT
+ # define CLANG_PREREQ(maj,min) 0
#endif
+#define UNUSED __attribute__((__unused__))
+
#endif /* ! GRUB_COMPILER_HEADER */
-diff -urN grub-2.04.orig/include/grub/menu.h grub-2.04/include/grub/menu.h
---- grub-2.04.orig/include/grub/menu.h 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/include/grub/menu.h 2019-08-18 16:14:44.724000000 +0200
+diff --git a/include/grub/menu.h b/include/grub/menu.h
+index ee2b5e91045..0acdc2aa6bf 100644
+--- a/include/grub/menu.h
++++ b/include/grub/menu.h
@@ -20,6 +20,16 @@
#ifndef GRUB_MENU_HEADER
#define GRUB_MENU_HEADER 1
struct grub_menu_entry_class
{
char *name;
-@@ -60,6 +70,9 @@
+@@ -60,6 +70,9 @@ struct grub_menu_entry
/* The next element. */
struct grub_menu_entry *next;
};
typedef struct grub_menu_entry *grub_menu_entry_t;
-diff -urN grub-2.04.orig/include/grub/normal.h grub-2.04/include/grub/normal.h
---- grub-2.04.orig/include/grub/normal.h 2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/include/grub/normal.h 2019-08-18 16:14:44.724000000 +0200
-@@ -145,7 +145,7 @@
+diff --git a/include/grub/normal.h b/include/grub/normal.h
+index 218cbabccaf..8839ad85a19 100644
+--- a/include/grub/normal.h
++++ b/include/grub/normal.h
+@@ -145,7 +145,7 @@ grub_normal_add_menu_entry (int argc, const char **args, char **classes,
const char *id,
const char *users, const char *hotkey,
const char *prefix, const char *sourcecode,
-diff -ur grub-2.04.orig/grub-core/net/drivers/efi/efinet.c grub-2.04/grub-core/net/drivers/efi/efinet.c
---- grub-2.04.orig/grub-core/net/drivers/efi/efinet.c 2019-08-18 15:57:09.662000000 +0200
-+++ grub-2.04/grub-core/net/drivers/efi/efinet.c 2019-08-18 15:57:25.366000000 +0200
-@@ -330,6 +330,7 @@
+From 886d93184b894a29b0bef1f2467230a20c7a33ce Mon Sep 17 00:00:00 2001
+From: Mark Salter <msalter@redhat.com>
+Date: Tue, 8 Apr 2014 10:58:11 -0400
+Subject: [PATCH] reopen SNP protocol for exclusive use by grub
+
+While working with pxeboot of grub on an ARM platform, I noticed
+very poor network performance while grub was loading a kernel
+and initramfs. The performance during the loading of grub itself
+seemed reasonable. Digging into the issue, I found that the UEFI
+firmware was periodically polling for network packets while grub
+was downloading files. This was causing timeouts and retries in
+the grub network stack.
+
+The solution I found was to reopen the SNP protocol for exclusive
+use. This forces UEFI to shutdown its use of SNP so that grub is
+not competing for incoming packets.
+
+Signed-off-by: Mark Salter <msalter@redhat.com>
+---
+ grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
+index 2b344d6..a6e4c79 100644
+--- a/grub-core/net/drivers/efi/efinet.c
++++ b/grub-core/net/drivers/efi/efinet.c
+@@ -223,6 +223,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
{
struct grub_net_card *card;
grub_efi_device_path_t *dp;
dp = grub_efi_get_device_path (hnd);
if (! dp)
-@@ -383,6 +384,21 @@
+@@ -250,6 +251,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
&pxe_mode->dhcp_ack,
sizeof (pxe_mode->dhcp_ack),
1, device, path);
return;
}
}
+--
+1.8.5.3
+
-diff -ur grub-2.04.orig/util/grub-mkconfig_lib.in grub-2.04/util/grub-mkconfig_lib.in
---- grub-2.04.orig/util/grub-mkconfig_lib.in 2019-08-18 15:42:13.463000000 +0200
-+++ grub-2.04/util/grub-mkconfig_lib.in 2019-08-18 15:42:40.188000000 +0200
-@@ -187,6 +187,7 @@
+diff -dur grub-2.00.orig/util/grub-mkconfig_lib.in grub-2.00/util/grub-mkconfig_lib.in
+--- grub-2.00.orig/util/grub-mkconfig_lib.in 2012-06-27 17:27:53.000000000 +0200
++++ grub-2.00/util/grub-mkconfig_lib.in 2012-10-27 14:55:58.226216374 +0200
+@@ -178,6 +178,7 @@
case "$1" in
*.dpkg-*) return 1 ;; # debian dpkg
*.rpmsave|*.rpmnew) return 1 ;;
-diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
---- grub-2.04.orig/util/grub-mkconfig.in 2019-08-18 15:43:15.196000000 +0200
-+++ grub-2.04/util/grub-mkconfig.in 2019-08-18 15:43:33.498000000 +0200
-@@ -133,6 +133,21 @@
+--- grub-2.02~beta2/util/grub-mkconfig.in~ 2014-01-13 16:12:41.020705075 +0200
++++ grub-2.02~beta2/util/grub-mkconfig.in 2014-01-13 16:10:42.000000000 +0200
+@@ -131,6 +131,21 @@
# Device containing our userland. Typically used for root= parameter.
GRUB_DEVICE="`${grub_probe} --target=device /`"
-diff -ur grub-2.04.orig/util/grub.d/00_header.in grub-2.04/util/grub.d/00_header.in
---- grub-2.04.orig/util/grub.d/00_header.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/00_header.in 2019-08-18 15:45:18.507000000 +0200
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub-mkconfig.in grub-2.02~beta2/util/grub-mkconfig.in
+--- grub-2.02~beta2.orig/util/grub-mkconfig.in 2014-01-04 11:34:32.715240491 +0100
++++ grub-2.02~beta2/util/grub-mkconfig.in 2014-01-04 11:34:50.135240649 +0100
+@@ -250,11 +250,16 @@
+ if test "x${grub_cfg}" != "x"; then
+ rm -f "${grub_cfg}.new"
+ oldumask=$(umask); umask 077
++ # open fd &3 for diagnostic messages
++ exec 3>&1
+ exec > "${grub_cfg}.new"
+ umask $oldumask
++else
++ # open fd &3 for diagnostic messages
++ exec 3>&2
+ fi
+-gettext "Generating grub configuration file ..." >&2
+-echo >&2
++gettext "Generating grub configuration file ..." >&3
++echo >&3
+
+ cat << EOF
+ #
+@@ -286,7 +291,7 @@
+ gettext_printf "Syntax errors are detected in generated GRUB config file.
+ Ensure that there are no errors in /etc/sysconfig/grub
+ and /etc/grub.d/* files or please file a bug report with
+-%s file attached." "${grub_cfg}.new" >&2
++%s file attached." "${grub_cfg}.new" >&3
+ echo >&2
+ exit 1
+ else
+@@ -295,5 +300,8 @@
+ fi
+ fi
+
+-gettext "done" >&2
+-echo >&2
++gettext "done" >&3
++echo >&3
++
++# close diagnostic stream
++exec 3>&-
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/00_header.in grub-2.02~beta2/util/grub.d/00_header.in
+--- grub-2.02~beta2.orig/util/grub.d/00_header.in 2014-01-04 10:50:51.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/00_header.in 2014-01-04 11:34:50.135240649 +0100
@@ -229,7 +229,7 @@
if [ "x$gfxterm" = x1 ]; then
if [ "x$GRUB_THEME" != x ] && [ -f "$GRUB_THEME" ] \
esac
prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_BACKGROUND"`
cat << EOF
-diff -ur grub-2.04.orig/util/grub.d/10_hurd.in grub-2.04/util/grub.d/10_hurd.in
---- grub-2.04.orig/util/grub.d/10_hurd.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/10_hurd.in 2019-08-18 15:45:18.508000000 +0200
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/10_hurd.in grub-2.02~beta2/util/grub.d/10_hurd.in
+--- grub-2.02~beta2.orig/util/grub.d/10_hurd.in 2013-12-17 18:25:57.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/10_hurd.in 2014-01-04 11:35:59.171907965 +0100
@@ -45,8 +45,8 @@
basename=`basename $i`
dirname=`dirname $i`
exit 1
fi
-diff -ur grub-2.04.orig/util/grub.d/10_kfreebsd.in grub-2.04/util/grub.d/10_kfreebsd.in
---- grub-2.04.orig/util/grub.d/10_kfreebsd.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/10_kfreebsd.in 2019-08-18 15:45:18.508000000 +0200
-@@ -161,7 +161,7 @@
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/10_kfreebsd.in grub-2.02~beta2/util/grub.d/10_kfreebsd.in
+--- grub-2.02~beta2.orig/util/grub.d/10_kfreebsd.in 2013-12-17 18:25:57.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/10_kfreebsd.in 2014-01-04 11:34:50.135240649 +0100
+@@ -158,7 +158,7 @@
while [ "x$list" != "x" ] ; do
kfreebsd=`version_find_latest $list`
basename=`basename $kfreebsd`
dirname=`dirname $kfreebsd`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
-@@ -210,7 +210,7 @@
+@@ -207,7 +207,7 @@
fi
done
if test -n "${module_dir}" ; then
module_dir_rel=$(make_system_path_relative_to_its_root $module_dir)
fi
-diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.in
---- grub-2.04.orig/util/grub.d/10_linux.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/10_linux.in 2019-08-18 15:46:11.888000000 +0200
+--- grub-2.04/util/grub.d/10_linux.in.orig 2018-11-24 18:13:02.000000000 +0100
++++ grub-2.04/util/grub.d/10_linux.in 2019-07-05 13:53:33.737370014 +0200
@@ -194,7 +194,7 @@
is_top_level=true
while [ "x$list" != "x" ] ; do
fi
config=
-diff -ur grub-2.04.orig/util/grub.d/10_netbsd.in grub-2.04/util/grub.d/10_netbsd.in
---- grub-2.04.orig/util/grub.d/10_netbsd.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/10_netbsd.in 2019-08-18 15:45:18.508000000 +0200
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/10_netbsd.in grub-2.02~beta2/util/grub.d/10_netbsd.in
+--- grub-2.02~beta2.orig/util/grub.d/10_netbsd.in 2013-12-17 18:25:57.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/10_netbsd.in 2014-01-04 11:34:50.135240649 +0100
@@ -155,7 +155,7 @@
continue
fi
- gettext_printf "Found NetBSD kernel: %s\n" "$k" >&2
+ gettext_printf "Found NetBSD kernel: %s\n" "$k" >&3
- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
- netbsd_entry "knetbsd" "$k" simple "${GRUB_CMDLINE_NETBSD_DEFAULT}"
-diff -ur grub-2.04.orig/util/grub.d/10_windows.in grub-2.04/util/grub.d/10_windows.in
---- grub-2.04.orig/util/grub.d/10_windows.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/10_windows.in 2019-08-18 15:45:18.508000000 +0200
+ # The GRUB_DISABLE_SUBMENU option used to be different than others since it was
+ # mentioned in the documentation that has to be set to 'y' instead of 'true' to
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/10_windows.in grub-2.02~beta2/util/grub.d/10_windows.in
+--- grub-2.02~beta2.orig/util/grub.d/10_windows.in 2013-12-17 18:25:57.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/10_windows.in 2014-01-04 11:34:50.135240649 +0100
@@ -82,7 +82,7 @@
# Get boot device.
dev=`${grub_probe} -t device "$dir" 2>/dev/null` || continue
cat << EOF
menuentry '$(echo "$OS" | grub_quote)' \$menuentry_id_option '$osid-$(grub_get_device_id "${dev}")' {
EOF
-diff -ur grub-2.04.orig/util/grub.d/20_linux_xen.in grub-2.04/util/grub.d/20_linux_xen.in
---- grub-2.04.orig/util/grub.d/20_linux_xen.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/20_linux_xen.in 2019-08-18 15:46:22.468000000 +0200
+--- grub-2.04/util/grub.d/20_linux_xen.in.orig 2019-04-23 10:54:47.000000000 +0200
++++ grub-2.04/util/grub.d/20_linux_xen.in 2019-07-05 13:55:11.220267798 +0200
@@ -243,7 +243,7 @@
while [ "x$list" != "x" ] ; do
fi
if test -z "${initrd_real}"; then
-diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-prober.in
---- grub-2.04.orig/util/grub.d/30_os-prober.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub.d/30_os-prober.in 2019-08-18 15:47:18.536000000 +0200
-@@ -123,7 +123,7 @@
- fi
-
- if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then
-- echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2
-+ echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&3
- continue
- fi
- fi
-@@ -141,7 +141,7 @@
+diff -dur -x '*~' -x '*.orig' grub-2.02~beta2.orig/util/grub.d/30_os-prober.in grub-2.02~beta2/util/grub.d/30_os-prober.in
+--- grub-2.02~beta2.orig/util/grub.d/30_os-prober.in 2014-01-04 10:50:51.000000000 +0100
++++ grub-2.02~beta2/util/grub.d/30_os-prober.in 2014-01-04 11:34:50.135240649 +0100
+@@ -134,7 +134,7 @@
# os-prober returns text string followed by optional counter
CLASS="--class $(echo "${LABEL}" | LC_ALL=C sed 's,[[:digit:]]*$,,' | cut -d' ' -f1 | tr 'A-Z' 'a-z' | LC_ALL=C sed 's,[^[:alnum:]_],_,g')"
;;
esac
done
-diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
---- grub-2.04.orig/util/grub-mkconfig.in 2019-08-18 15:45:01.994000000 +0200
-+++ grub-2.04/util/grub-mkconfig.in 2019-08-18 15:45:18.509000000 +0200
-@@ -258,11 +258,16 @@
- if test "x${grub_cfg}" != "x"; then
- rm -f "${grub_cfg}.new"
- oldumask=$(umask); umask 077
-+ # open fd &3 for diagnostic messages
-+ exec 3>&1
- exec > "${grub_cfg}.new"
- umask $oldumask
-+else
-+ # open fd &3 for diagnostic messages
-+ exec 3>&2
- fi
--gettext "Generating grub configuration file ..." >&2
--echo >&2
-+gettext "Generating grub configuration file ..." >&3
-+echo >&3
-
- cat << EOF
- #
-@@ -297,8 +302,8 @@
- gettext_printf "Syntax errors are detected in generated GRUB config file.
- Ensure that there are no errors in /etc/sysconfig/grub
- and /etc/grub.d/* files or please file a bug report with
--%s file attached." "${grub_cfg}.new" >&2
-- echo >&2
-+%s file attached." "${grub_cfg}.new" >&3
-+ echo >&3
- exit 1
- else
- # none of the children aborted with error, install the new grub.cfg
-@@ -306,5 +311,8 @@
- fi
- fi
-
--gettext "done" >&2
--echo >&2
-+gettext "done" >&3
-+echo >&3
-+
-+# close diagnostic stream
-+exec 3>&-
-diff -ur grub-2.04.orig/docs/grub.cfg grub-2.04/docs/grub.cfg
---- grub-2.04.orig/docs/grub.cfg 2019-08-18 15:56:16.561000000 +0200
-+++ grub-2.04/docs/grub.cfg 2019-08-18 15:56:54.745000000 +0200
+--- docs/grub.cfg.orig 2013-11-10 19:25:04.959888566 +0000
++++ docs/grub.cfg 2013-11-10 19:25:10.260104712 +0000
@@ -14,8 +14,8 @@
# For booting GNU/Linux
menuentry "GNU/Linux" --id gnulinux {
-diff -ur grub-2.04.orig/configure.ac grub-2.04/configure.ac
---- grub-2.04.orig/configure.ac 2019-08-18 15:50:10.737000000 +0200
-+++ grub-2.04/configure.ac 2019-08-18 15:50:22.087000000 +0200
-@@ -1649,7 +1649,7 @@
+diff -dur -x '*~' grub-2.00.orig/configure.ac grub-2.00/configure.ac
+--- grub-2.00.orig/configure.ac 2012-10-28 09:47:24.000000000 +0100
++++ grub-2.00/configure.ac 2012-10-28 09:48:06.438240771 +0100
+@@ -940,7 +940,7 @@
if test x"$starfield_excuse" = x; then
for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
if test -f "$dir/DejaVuSans.$ext"; then
DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext"
break 2
-@@ -1671,7 +1671,7 @@
- FONT_SOURCE=
-
- for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
-- for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do
-+ for dir in . /usr/share/fonts/TTF /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do
- if test -f "$dir/unifont.$ext"; then
- md5="$(md5sum "$dir/unifont.$ext"|awk '{ print $1; }')"
- # PCF and BDF from version 6.3 isn't hanled properly by libfreetype.
# - put grub-emu to subpackage if it is fixed
#
# Conditional build:
-%bcond_with grubemu # build grub-emu debugging utility
-%bcond_without efiemu # build efiemu runtimes
-%bcond_without pc # do not build for PC BIOS platform
-%bcond_without efi # do not build for EFI platform
-
-%ifnarch %{ix86} %{x8664}
-%undefine with_pc
+%bcond_with grubemu # grub-emu debugging utility
+%bcond_without efiemu # efiemu runtimes (64-bit efiemu on 32-bit boot platform)
+%bcond_with unifont # unifont based fonts
+%bcond_without arc # MIPS ARC platform support
+%bcond_without coreboot # coreboot/linuxbios platform support (x86/arm specific)
+%bcond_without efi # EFI platform support
+%bcond_without ieee1275 # ieee1275 platform support (x86/ppc/sparc specific)
+%bcond_without loongson # MIPS loongson platform support (mipsel specific)
+%bcond_without multiboot # multiboot platform support (x86/arm specific)
+%bcond_without pc # PC BIOS platform support (x86 specific)
+%bcond_without qemu # qemu platform support (x86/mips specific)
+%bcond_without uboot # ARM uBoot platform support
+%bcond_without xen # Xen platform support (x86 specific)
+%bcond_without xen_pvh # Xen PVH platform support (x86 specific)
+
+%ifnarch mips mipsel mips64 mips64el
+%undefine with_arc
+%endif
+%ifnarch %{ix86} %{x8664} x32 %{arm}
+%undefine with_coreboot
%endif
-%ifnarch %{ix86} %{x8664}
+%ifnarch %{ix86} %{x8664} x32 %{arm} aarch64 ia64
%undefine with_efi
%endif
+%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc64
+%undefine with_ieee1275
+%endif
+%ifnarch mipsel mips64el
+%undefine with_loongson
+%endif
+%ifnarch %{ix86} %{x8664} x32
+%undefine with_multiboot
+%undefine with_pc
+%undefine with_xen
+%undefine with_xen_pvh
+%endif
+%ifnarch %{ix86} mips mipsel mips64 mips64el
+%undefine with_qemu
+%endif
+%ifnarch %{arm}
+%undefine with_uboot
+%endif
-%ifnarch %{x8664}
+# FIXME: x86_64-xen build is broken (as of 2.06)
+%ifarch %{x8664} x32
+%undefine with_xen
+%endif
+
+# these require unifont
+%if %{without unifont}
+%undefine with_coreboot
+%undefine with_loongson
+%undefine with_qemu
+%endif
+
+%ifnarch %{x8664} x32
# non-x86_64 arch doesn't support this
%undefine with_efiemu
%endif
# the 'most natural' platform should go last
-%ifarch %{ix86} %{x8664}
-%define platforms %{?with_efi:efi} %{?with_pc:pc}
+%ifarch %{ix86} %{x8664} x32
+%define platforms %{?with_coreboot:coreboot} %{?with_ieee1275:ieee1275} %{?with_multiboot:multiboot} %{?with_qemu:qemu} %{?with_xen:xen} %{?with_xen_pvh:xen_pvh} %{?with_efi:efi} %{?with_pc:pc}
+%endif
+%ifarch %{arm}
+%define platforms %{?with_efi:efi} %{?with_uboot:uboot}
+%endif
+%ifarch aarch64 ia64 riscv32 riscv64
+%define platforms efi
+%endif
+%ifarch mips mips64
+%define platforms arc
+%endif
+%ifarch mipsel mips64el
+%define platforms %{?with_arc:arc} %{?with_loongson:loongson}
+%endif
+%ifarch ppc ppc64 sparc64
+%define platforms ieee1275
+%endif
+
+%ifarch %{ix86}
+%define coreboot_arch i386
+%define efi_arch i386
+%define ieee1275_arch i386
+%define qemu_arch i386
+%define qemu_plat qemu
+%define xen_arch i386
+%endif
+%ifarch %{x8664} x32
+%define coreboot_arch i386
+%define efi_arch x86_64
+%define ieee1275_arch i386
+%define qemu_arch i386
+%define qemu_plat qemu
+%define xen_arch x86_64
+%endif
+%ifarch %{arm}
+%define coreboot_arch arm
+%define efi_arch arm
+%endif
+%ifarch aarch64
+%define efi_arch arm64
+%endif
+%ifarch ia64
+%define efi_arch ia64
+%endif
+%ifarch mips mips64
+%define arc_arch mips
+%define qemu_arch mips
+%define qemu_plat qemu_mips
+%endif
+%ifarch mipsel mips64el
+%define arc_arch mipsel
+%define qemu_arch mipsel
+%define qemu_plat qemu_mips
+%endif
+%ifarch ppc ppc64
+%define ieee1275_arch powerpc
+%endif
+%ifarch riscv32
+%define efi_arch riscv32
+%endif
+%ifarch riscv64
+%define efi_arch riscv64
+%endif
+%ifarch sparc64
+%define ieee1275_arch sparc64
%endif
-%define rel 1
Summary: GRand Unified Bootloader
-Summary(de.UTF-8): GRUB2 - ein Bootloader für x86
-Summary(hu.UTF-8): GRUB2 - rendszerbetöltő x86 gépekhez
-Summary(pl.UTF-8): GRUB2 - bootloader dla x86
+Summary(de.UTF-8): GRUB2 - ein Bootloader für x86 und ppc
+Summary(hu.UTF-8): GRUB2 - rendszerbetöltő x86 és ppc gépekhez
+Summary(pl.UTF-8): GRUB2 - bootloader dla x86 i ppc
Summary(pt_BR.UTF-8): Gerenciador de inicialização GRUB2
Name: grub2
-Version: 2.04
-Release: 1
+Version: 2.06
+Release: 3
License: GPL v2
Group: Base
-Source0: ftp://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
-# Source0-md5: 5aaca6713b47ca2456d8324a58755ac7
+Source0: https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
+# Source0-md5: cf0fd928b1e5479c8108ee52cb114363
Source1: update-grub
Source2: update-grub.8
Source3: grub.sysconfig
Patch5: grub-mkconfig-diagnostics.patch
Patch6: posix.patch
Patch7: %{name}-fonts_path.patch
-Patch8: just-say-linux.patch
-Patch9: ignore-kernel-symlinks.patch
-Patch10: initrd-search.patch
-Patch11: %{name}-cfg.patch
-Patch12: efi-net-fix.patch
-Patch13: blscfg.patch
-Patch14: restricted.patch
+Patch9: just-say-linux.patch
+Patch10: ignore-kernel-symlinks.patch
+Patch11: initrd-search.patch
+Patch12: %{name}-cfg.patch
+Patch13: efi-net-fix.patch
+Patch14: blscfg.patch
+Patch15: restricted.patch
+Patch16: 0193-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch
+Patch17: 0268-grub_fs_probe-dprint-errors-from-filesystems.patch
URL: http://www.gnu.org/software/grub/
-BuildRequires: autoconf >= 2.53
+BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1:1.11.1-1
-BuildRequires: bison
-BuildRequires: device-mapper-devel
+BuildRequires: bison >= 2.3
+BuildRequires: device-mapper-devel >= 1.02.34
BuildRequires: flex >= 2.5.35
BuildRequires: fonts-TTF-DejaVu
-BuildRequires: freetype-devel >= 2
+%if %{with unifont}
+BuildRequires: fonts-misc-unifont
+%endif
+BuildRequires: freetype-devel >= 2.1.5
BuildRequires: gawk
-BuildRequires: gcc >= 5:3.4
-BuildRequires: gettext-tools
+BuildRequires: gcc >= 6:5.1
+%ifarch %{x8664} x32
+%if %{with efiemu} || %{with coreboot} || %{with ieee1275} || %{with multiboot} || %{with pc} || %{with xen_pvh}
+BuildRequires: gcc-multilib-32 >= 6:5.1
+%endif
+%endif
+%ifarch x32
+%if %{with efiemu} || %{with efi}
+BuildRequires: gcc-multilib-64 >= 6:5.1
+%endif
+%endif
+BuildRequires: gettext-tools >= 0.18.3
BuildRequires: glibc-localedb-all
BuildRequires: glibc-static
BuildRequires: help2man
BuildRequires: libfuse-devel
BuildRequires: libtool
BuildRequires: ncurses-devel
-BuildRequires: python
-BuildRequires: python-modules
+BuildRequires: pkgconfig
+BuildRequires: python >= 1:2.6
+BuildRequires: python-modules >= 1:2.6
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.213
BuildRequires: sed >= 4.0
BuildRequires: texinfo
BuildRequires: xz
BuildRequires: xz-devel
-%ifarch %{x8664}
-BuildRequires: /usr/lib/libc.so
-BuildRequires: gcc-multilib
-%endif
Requires: %{name}-platform = %{version}-%{release}
Requires: issue
Requires: which
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
Suggests: %{name}-platform-pc
%endif
Suggests: cdrkit-mkisofs
Suggests: os-prober
Provides: bootloader
Conflicts: grub
-ExclusiveArch: %{ix86} %{x8664}
+ExclusiveArch: %{ix86} %{x8664} x32 %{arm} aarch64 ia64 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sparc64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sbindir /sbin
Summary: bash-completion for GRUB
Summary(pl.UTF-8): Bashowe uzupełnianie nazw dla GRUB-a
Group: Applications/Shells
+Requires: %{name} = %{version}-%{release}
Requires: bash-completion
+BuildArch: noarch
%description -n bash-completion-%{name}
This package provides bash-completion for GRUB.
%description -n bash-completion-%{name} -l pl.UTF-8
Pakiet ten dostarcza bashowe uzupełnianie nazw dla GRUB-a.
-%package platform-pc
-Summary: PC BIOS platform support for GRUB
-Summary(pl.UTF-8): Obsługa platformy PC BIOS dla GRUB-a
+%package fonts
+Summary: Fonts for GRUB
+Summary(pl.UTF-8): Fonty dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+
+%description fonts
+Fonts for GRUB.
+
+%description fonts -l pl.UTF-8
+Fonty dla GRUB-a.
+
+%package platform-arc
+Summary: MIPS ARC platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy MIPS ARC dla GRUB-a
Group: Base
+Requires: %{name} = %{version}-%{release}
Provides: %{name}-platform = %{version}-%{release}
-%description platform-pc
-PC BIOS platform support for GRUB.
+%description platform-arc
+MIPS ARC platform support for GRUB.
-%description platform-pc -l pl.UTF-8
-Obsługa platformy PC BIOS dla GRUB-a.
+%description platform-arc -l pl.UTF-8
+Obsługa platformy MIPS ARC dla GRUB-a.
+
+%package platform-coreboot
+Summary: Coreboot (LinuxBIOS) platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-fonts = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-coreboot
+Coreboot (LinuxBIOS) platform support for GRUB.
+
+%description platform-coreboot -l pl.UTF-8
+Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a.
%package platform-efi
Summary: (U)EFI platform support for GRUB
Summary(pl.UTF-8): Obsługa platformy (U)EFI dla GRUB-a
Group: Base
+Requires: %{name} = %{version}-%{release}
Suggests: efibootmgr
Provides: %{name}-platform = %{version}-%{release}
%description platform-efi -l pl.UTF-8
Obsługa platformy (U)EFI dla GRUB-a.
+%package platform-ieee1275
+Summary: IEEE 1275 (OpenFirmware) platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-ieee1275
+IEEE 1275 (OpenFirmware) platform support for GRUB.
+
+%description platform-ieee1275 -l pl.UTF-8
+Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a.
+
+%package platform-loongson
+Summary: MIPS Loongson platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy MIPS Loongson dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-fonts = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-loongson
+MIPS Loongson (yeelong, fuloong) platform support for GRUB.
+
+%description platform-loongson -l pl.UTF-8
+Obsługa platformy MIPS Loongson (yeelong, fuloong) dla GRUB-a.
+
+%package platform-multiboot
+Summary: Multiboot platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy Multiboot dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-multiboot
+Multiboot platform support for GRUB.
+
+%description platform-multiboot -l pl.UTF-8
+Obsługa platformy Multiboot dla GRUB-a.
+
+%package platform-pc
+Summary: PC BIOS platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy PC BIOS dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-pc
+PC BIOS platform support for GRUB.
+
+%description platform-pc -l pl.UTF-8
+Obsługa platformy PC BIOS dla GRUB-a.
+
+%package platform-qemu
+Summary: Qemu platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy Qemu dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-fonts = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-qemu
+Qemu platform support for GRUB.
+
+%description platform-qemu -l pl.UTF-8
+Obsługa platformy Qemu dla GRUB-a.
+
+%package platform-uboot
+Summary: ARM uBoot platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy ARM uBoot dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-uboot
+ARM uBoot platform support for GRUB.
+
+%description platform-uboot -l pl.UTF-8
+Obsługa platformy ARM uBoot dla GRUB-a.
+
+%package platform-xen
+Summary: Xen platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy Xen dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-xen
+Xen platform support for GRUB.
+
+%description platform-xen -l pl.UTF-8
+Obsługa platformy Xen dla GRUB-a.
+
+%package platform-xen_pvh
+Summary: Xen PVH platform support for GRUB
+Summary(pl.UTF-8): Obsługa platformy Xen PVH dla GRUB-a
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-platform = %{version}-%{release}
+
+%description platform-xen_pvh
+Xen PVH platform support for GRUB.
+
+%description platform-xen_pvh -l pl.UTF-8
+Obsługa platformy Xen PVH dla GRUB-a.
+
%package mkfont
Summary: GRUB font files converter
Summary(pl.UTF-8): Konwerter plików fontów GRUB-a
%package theme-starfield
Summary: starfield theme for GRUB
Summary(pl.UTF-8): Motyw starfield dla GRUB-a
+Requires: %{name} = %{version}-%{release}
Group: Base
%description theme-starfield
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
-%patch12 -p1
+%patch12 -p0
%patch13 -p1
%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
# we don't have C.utf-8 and need an UTF-8 locale for build
sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
ln -f -s /usr/bin/ld.bfd our-ld/ld
export PATH=$(pwd)/our-ld:$PATH
-## not only the typicall autotools stuff
+## not only the typical autotools stuff
#./autogen.sh
#{__gettextize}
install -d build-${platform}
cd build-${platform}
- if [ "$platform" != "efi" ] ; then
+ platform_opts=""
+ case platform in
+ coreboot|ieee1275|multiboot|pc|qemu|xen_pvh)
platform_opts="--enable-efiemu%{!?with_efiemu:=no}"
- else
- platform_opts=""
- fi
+ ;;
+ esac
ln -f -s ../configure .
# mawk stalls at ./genmoddep.awk, so force gawk
%configure \
--with-platform=${platform} \
--disable-werror \
+ --enable-grub-themes \
%if %{with grubemu}
--enable-grub-emu-usb \
--enable-grub-emu-sdl \
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
# platform specific, unnecessarily always installed
-%ifnarch %{ix86} %{x8664}
+%ifnarch %{ix86} %{x8664} x32
%{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-bios-setup,%{_mandir}/man8/grub-bios-setup.8}
%endif
+%ifnarch sparc64
%{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-sparc64-setup,%{_mandir}/man8/grub-sparc64-setup.8}
+%endif
# core.img - bootable image generated by grub-mkimage(1) via grub-install(1)
touch $RPM_BUILD_ROOT%{_grubdir}/core.img
%triggerpostun -- %{name} < 2.00-2
# Note this trigger on version upgrade needed only for upgrade from
# old grub2 packages which contained modules in /boot/grub
-# or were built with optimizations enabled
-# don't do anything on --downgrade
+# or were built with optimizations enabled.
+# Don't do anything on --downgrade.
if [ $1 -le 1 ]; then
exit 0
fi
%files -f grub.lang
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README THANKS TODO
+%doc AUTHORS ChangeLog NEWS README THANKS TODO
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/grub
%attr(755,root,root) %{_sbindir}/grub-editenv
%attr(755,root,root) %{_sbindir}/grub-fstest
%attr(755,root,root) %{_sbindir}/grub-set-default
%attr(755,root,root) %{_sbindir}/grub-syslinux2cfg
%attr(755,root,root) %{_sbindir}/update-grub
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
%attr(755,root,root) %{_sbindir}/grub-bios-setup
%{_mandir}/man8/grub-bios-setup.8*
%endif
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
%attr(755,root,root) %{_sbindir}/grub-mkimage
%{_mandir}/man1/grub-mkimage.1*
%else
%attr(755,root,root) %{_sbindir}/grub-probe
%{_mandir}/man8/grub-probe.8*
%endif
+%ifarch sparc64
+%attr(755,root,root) %{_sbindir}/grub-sparc64-setup
+%{_mandir}/man8/grub-sparc64-setup.8*
+%endif
%{_mandir}/man1/grub-editenv.1*
%{_mandir}/man1/grub-file.1*
%{_mandir}/man1/grub-fstest.1*
%attr(755,root,root) /lib/grub.d/30_os-prober
%attr(755,root,root) /lib/grub.d/41_custom
-# these are now installed only on matching hosts
-#%attr(755,root,root) /lib/grub.d/10_hurd
-#%attr(755,root,root) /lib/grub.d/10_illumos
-#%attr(755,root,root) /lib/grub.d/10_kfreebsd
-#%attr(755,root,root) /lib/grub.d/10_netbsd
-#%attr(755,root,root) /lib/grub.d/10_xnu
-
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
%attr(755,root,root) %{_sbindir}/grub-probe
%{_mandir}/man8/grub-probe.8*
%endif
%dir %{_datadir}/grub/themes
+%files -n bash-completion-%{name}
+%defattr(644,root,root,755)
+/etc/bash_completion.d/grub
+
+%if %{with unifont}
+%files fonts
+%defattr(644,root,root,755)
+%{_libexecdir}/ascii.h
+%{_libexecdir}/ascii.pf2
+%{_libexecdir}/euro.pf2
+%{_libexecdir}/unicode.pf2
+%{_libexecdir}/widthspec.h
+%endif
+
+%if %{with arc}
+%files platform-arc
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{arc_arch}-arc
+%{_libexecdir}/%{arc_arch}-arc/modinfo.sh
+%{_libexecdir}/%{arc_arch}-arc/*.lst
+%{_libexecdir}/%{arc_arch}-arc/*.mod
+%{_libexecdir}/%{arc_arch}-arc/*.module
+%{_libexecdir}/%{arc_arch}-arc/config.h
+%{_libexecdir}/%{arc_arch}-arc/gdb_grub
+%{_libexecdir}/%{arc_arch}-arc/gmodule.pl
+%{_libexecdir}/%{arc_arch}-arc/kernel.exec
+%{_libexecdir}/%{arc_arch}-arc/kernel.img
+%endif
+
+%if %{with coreboot}
+%files platform-coreboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{coreboot_arch}-coreboot
+%{_libexecdir}/%{coreboot_arch}-coreboot/modinfo.sh
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.lst
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.mod
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.module
+%{_libexecdir}/%{coreboot_arch}-coreboot/config.h
+%{_libexecdir}/%{coreboot_arch}-coreboot/gdb_grub
+%{_libexecdir}/%{coreboot_arch}-coreboot/gmodule.pl
+%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.exec
+%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/%{coreboot_arch}-coreboot/efiemu*.o
+%endif
+%endif
+
+%if %{with efi}
+%files platform-efi
+%defattr(644,root,root,755)
+%attr(755,root,root) /lib/grub.d/30_uefi-firmware
+%dir %{_libexecdir}/%{efi_arch}-efi
+%{_libexecdir}/%{efi_arch}-efi/modinfo.sh
+%{_libexecdir}/%{efi_arch}-efi/*.lst
+%{_libexecdir}/%{efi_arch}-efi/*.mod
+%{_libexecdir}/%{efi_arch}-efi/*.module
+%{_libexecdir}/%{efi_arch}-efi/config.h
+%{_libexecdir}/%{efi_arch}-efi/gdb_grub
+%{_libexecdir}/%{efi_arch}-efi/gmodule.pl
+%{_libexecdir}/%{efi_arch}-efi/kernel.exec
+%{_libexecdir}/%{efi_arch}-efi/kernel.img
+%endif
+
+%if %{with ieee1275}
+%files platform-ieee1275
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{ieee1275_arch}-ieee1275
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/modinfo.sh
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.lst
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.mod
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.module
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/config.h
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_grub
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/gmodule.pl
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.exec
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/efiemu*.o
+%endif
+%endif
+
+%if %{with multiboot}
+%files platform-multiboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/i386-multiboot
+%{_libexecdir}/i386-multiboot/modinfo.sh
+%{_libexecdir}/i386-multiboot/*.lst
+%{_libexecdir}/i386-multiboot/*.mod
+%{_libexecdir}/i386-multiboot/*.module
+%{_libexecdir}/i386-multiboot/config.h
+%{_libexecdir}/i386-multiboot/gdb_grub
+%{_libexecdir}/i386-multiboot/gmodule.pl
+%{_libexecdir}/i386-multiboot/kernel.exec
+%{_libexecdir}/i386-multiboot/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/i386-multiboot/efiemu*.o
+%endif
+%endif
+
%if %{with pc}
%files platform-pc
%defattr(644,root,root,755)
-%dir %{_libexecdir}/*-pc
-%{_libexecdir}/*-pc/modinfo.sh
-%{_libexecdir}/*-pc/*.exec
-%{_libexecdir}/*-pc/*.image
-%{_libexecdir}/*-pc/*.lst
-%{_libexecdir}/*-pc/*.mod
-%{_libexecdir}/*-pc/*.module
-%{_libexecdir}/*-pc/lzma_decompress.img
-%{_libexecdir}/*-pc/config.h
-%{_libexecdir}/*-pc/gdb_grub
-%{_libexecdir}/*-pc/gmodule.pl
+%dir %{_libexecdir}/i386-pc
+%{_libexecdir}/i386-pc/modinfo.sh
+%{_libexecdir}/i386-pc/*.lst
+%{_libexecdir}/i386-pc/*.mod
+%{_libexecdir}/i386-pc/*.module
+%{_libexecdir}/i386-pc/config.h
+%{_libexecdir}/i386-pc/gdb_grub
+%{_libexecdir}/i386-pc/gmodule.pl
+%{_libexecdir}/i386-pc/boot.image
+%{_libexecdir}/i386-pc/boot.img
+%{_libexecdir}/i386-pc/boot_hybrid.image
+%{_libexecdir}/i386-pc/boot_hybrid.img
+%{_libexecdir}/i386-pc/cdboot.image
+%{_libexecdir}/i386-pc/cdboot.img
+%{_libexecdir}/i386-pc/diskboot.image
+%{_libexecdir}/i386-pc/diskboot.img
+%{_libexecdir}/i386-pc/kernel.exec
+%{_libexecdir}/i386-pc/kernel.img
+%{_libexecdir}/i386-pc/lnxboot.image
+%{_libexecdir}/i386-pc/lnxboot.img
+%{_libexecdir}/i386-pc/lzma_decompress.image
+%{_libexecdir}/i386-pc/lzma_decompress.img
+%{_libexecdir}/i386-pc/pxeboot.image
+%{_libexecdir}/i386-pc/pxeboot.img
%if %{with efiemu}
-%{_libexecdir}/*-pc/efiemu*.o
+%{_libexecdir}/i386-pc/efiemu*.o
%endif
-%{_libexecdir}/*-pc/kernel.img
-%ifarch %{ix86} %{x8664}
-%{_libexecdir}/*-pc/boot.img
-%{_libexecdir}/*-pc/boot_hybrid.img
-%{_libexecdir}/*-pc/cdboot.img
-%{_libexecdir}/*-pc/diskboot.img
-%{_libexecdir}/*-pc/lnxboot.img
-%{_libexecdir}/*-pc/pxeboot.img
%endif
+
+%if %{with qemu}
+%files platform-qemu
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{qemu_arch}-%{qemu_plat}
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/modinfo.sh
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.lst
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.mod
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.module
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/config.h
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_grub
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gmodule.pl
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.image
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.img
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.exec
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.img
%endif
-%if %{with efi}
-%files platform-efi
+%if %{with uboot}
+%files platform-uboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/arm-uboot
+%{_libexecdir}/arm-uboot/modinfo.sh
+%{_libexecdir}/arm-uboot/*.lst
+%{_libexecdir}/arm-uboot/*.mod
+%{_libexecdir}/arm-uboot/*.module
+%{_libexecdir}/arm-uboot/config.h
+%{_libexecdir}/arm-uboot/gdb_grub
+%{_libexecdir}/arm-uboot/gmodule.pl
+%{_libexecdir}/arm-uboot/kernel.exec
+%{_libexecdir}/arm-uboot/kernel.img
+%endif
+
+%if %{with xen}
+%files platform-xen
%defattr(644,root,root,755)
-%dir %{_libexecdir}/*-efi
-%{_libexecdir}/*-efi/modinfo.sh
-%{_libexecdir}/*-efi/*.exec
-%{_libexecdir}/*-efi/*.lst
-%{_libexecdir}/*-efi/*.mod
-%{_libexecdir}/*-efi/*.module
-%{_libexecdir}/*-efi/config.h
-%{_libexecdir}/*-efi/gdb_grub
-%{_libexecdir}/*-efi/gmodule.pl
-%{_libexecdir}/*-efi/kernel.img
+%dir %{_libexecdir}/%{xen_arch}-xen
+%{_libexecdir}/%{xen_arch}-xen/modinfo.sh
+%{_libexecdir}/%{xen_arch}-xen/*.lst
+%{_libexecdir}/%{xen_arch}-xen/*.mod
+%{_libexecdir}/%{xen_arch}-xen/*.module
+%{_libexecdir}/%{xen_arch}-xen/config.h
+%{_libexecdir}/%{xen_arch}-xen/gdb_grub
+%{_libexecdir}/%{xen_arch}-xen/gmodule.pl
+%{_libexecdir}/%{xen_arch}-xen/kernel.exec
+%{_libexecdir}/%{xen_arch}-xen/kernel.img
+%endif
+
+%if %{with xen_pvh}
+%files platform-xen_pvh
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/i386-xen_pvh
+%{_libexecdir}/i386-xen_pvh/modinfo.sh
+%{_libexecdir}/i386-xen_pvh/*.lst
+%{_libexecdir}/i386-xen_pvh/*.mod
+%{_libexecdir}/i386-xen_pvh/*.module
+%{_libexecdir}/i386-xen_pvh/config.h
+%{_libexecdir}/i386-xen_pvh/gdb_grub
+%{_libexecdir}/i386-xen_pvh/gmodule.pl
+%{_libexecdir}/i386-xen_pvh/kernel.exec
+%{_libexecdir}/i386-xen_pvh/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/i386-xen_pvh/efiemu*.o
+%endif
%endif
%files mkfont
%files theme-starfield
%defattr(644,root,root,755)
%{_datadir}/grub/themes/starfield
-
-%files -n bash-completion-%{name}
-%defattr(644,root,root,755)
-/etc/bash_completion.d/grub
-diff -ur grub-2.04.orig/util/grub-mkconfig_lib.in grub-2.04/util/grub-mkconfig_lib.in
---- grub-2.04.orig/util/grub-mkconfig_lib.in 2019-08-18 15:53:18.700000000 +0200
-+++ grub-2.04/util/grub-mkconfig_lib.in 2019-08-18 15:53:29.906000000 +0200
-@@ -183,6 +183,9 @@
+--- grub-2.00/util/grub-mkconfig_lib.in~ 2013-04-15 00:03:09.102253190 +0200
++++ grub-2.00/util/grub-mkconfig_lib.in 2013-04-15 00:54:39.189605003 +0200
+@@ -174,6 +174,9 @@
grub_file_is_not_garbage ()
{
-diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.in
---- grub-2.04.orig/util/grub.d/10_linux.in 2019-08-18 15:50:55.155000000 +0200
-+++ grub-2.04/util/grub.d/10_linux.in 2019-08-18 15:53:05.494000000 +0200
-@@ -29,9 +29,9 @@
+diff -dur -x '*.orig' grub-2.00.git20131218.orig/util/grub.d/10_linux.in grub-2.00.git20131218/util/grub.d/10_linux.in
+--- grub-2.00.git20131218.orig/util/grub.d/10_linux.in 2013-12-18 14:41:17.000000000 +0100
++++ grub-2.00.git20131218/util/grub.d/10_linux.in 2013-12-18 14:42:46.000000000 +0100
+@@ -54,9 +54,9 @@
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
-diff -ur grub-2.04.orig/util/grub.d/20_linux_xen.in grub-2.04/util/grub.d/20_linux_xen.in
---- grub-2.04.orig/util/grub.d/20_linux_xen.in 2019-08-18 15:50:55.155000000 +0200
-+++ grub-2.04/util/grub.d/20_linux_xen.in 2019-08-18 15:53:05.494000000 +0200
-@@ -29,9 +29,9 @@
+diff -dur -x '*.orig' grub-2.00.git20131218.orig/util/grub.d/20_linux_xen.in grub-2.00.git20131218/util/grub.d/20_linux_xen.in
+--- grub-2.00.git20131218.orig/util/grub.d/20_linux_xen.in 2013-12-18 14:41:17.000000000 +0100
++++ grub-2.00.git20131218/util/grub.d/20_linux_xen.in 2013-12-18 14:43:11.000000000 +0100
+@@ -33,9 +33,9 @@
CLASS="--class gnu-linux --class gnu --class os --class xen"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
-diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.in
---- grub-2.04.orig/util/grub.d/10_linux.in 2019-08-18 15:58:15.105000000 +0200
-+++ grub-2.04/util/grub.d/10_linux.in 2019-08-18 15:58:28.665000000 +0200
+diff -ur grub-2.06.orig/util/grub.d/10_linux.in grub-2.06/util/grub.d/10_linux.in
+--- grub-2.06.orig/util/grub.d/10_linux.in 2022-08-30 02:18:01.042920967 +0200
++++ grub-2.06/util/grub.d/10_linux.in 2022-08-30 02:18:53.263002735 +0200
@@ -28,6 +28,12 @@
CLASS="--class gnu-linux --class gnu --class os"
fi
if [ x$type != xrecovery ] ; then
save_default_entry | grub_add_tab
-diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-prober.in
---- grub-2.04.orig/util/grub.d/30_os-prober.in 2019-08-18 15:58:15.105000000 +0200
-+++ grub-2.04/util/grub.d/30_os-prober.in 2019-08-18 15:58:28.665000000 +0200
-@@ -30,6 +30,12 @@
+diff -ur grub-2.06.orig/util/grub.d/30_os-prober.in grub-2.06/util/grub.d/30_os-prober.in
+--- grub-2.06.orig/util/grub.d/30_os-prober.in 2022-08-30 02:18:01.035920956 +0200
++++ grub-2.06/util/grub.d/30_os-prober.in 2022-08-30 02:20:26.805149188 +0200
+@@ -31,6 +31,12 @@
exit 0
fi
+ GRUB_UNRESTRICTED_OPTION="--unrestricted"
+fi
+
- if [ -z "`which os-prober 2> /dev/null`" ] || [ -z "`which linux-boot-prober 2> /dev/null`" ] ; then
+ if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/null ; then
# missing os-prober and/or linux-boot-prober
exit 0
-@@ -52,7 +58,7 @@
+@@ -55,7 +61,7 @@
# TRANSLATORS: it refers on the OS residing on device %s
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
cat << EOF
EOF
save_default_entry | grub_add_tab
prepare_grub_to_access_device ${DEVICE} | grub_add_tab
-@@ -148,7 +154,7 @@
+@@ -151,7 +157,7 @@
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
cat << EOF
EOF
save_default_entry | grub_add_tab
prepare_grub_to_access_device ${DEVICE} | grub_add_tab
-@@ -180,7 +186,7 @@
+@@ -183,7 +189,7 @@
DEVICE=${DEVICE%@*}
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
cat << EOF
EOF
save_default_entry | sed -e "s/^/\t/"
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
-@@ -236,7 +242,7 @@
+@@ -247,7 +253,7 @@
- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
+ if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
cat << EOF
-menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' {
+menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os ${GRUB_UNRESTRICTED_OPTION} \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' {
EOF
save_default_entry | grub_add_tab
printf '%s\n' "${prepare_boot_cache}"
-@@ -256,7 +262,7 @@
+@@ -267,7 +273,7 @@
fi
title="${LLABEL} $onstr"
cat << EOF
EOF
save_default_entry | sed -e "s/^/$grub_tab$grub_tab/"
printf '%s\n' "${prepare_boot_cache}" | grub_add_tab
-@@ -293,7 +299,7 @@
+@@ -304,7 +310,7 @@
hurd)
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
cat << EOF
EOF
save_default_entry | grub_add_tab
prepare_grub_to_access_device ${DEVICE} | grub_add_tab
-diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
---- grub-2.04.orig/util/grub-mkconfig.in 2019-08-18 15:58:15.106000000 +0200
-+++ grub-2.04/util/grub-mkconfig.in 2019-08-18 15:58:28.666000000 +0200
-@@ -254,7 +254,8 @@
+diff -ur grub-2.06.orig/util/grub-mkconfig.in grub-2.06/util/grub-mkconfig.in
+--- grub-2.06.orig/util/grub-mkconfig.in 2022-08-30 02:18:01.036920957 +0200
++++ grub-2.06/util/grub-mkconfig.in 2022-08-30 02:18:53.264002736 +0200
+@@ -267,7 +267,8 @@
GRUB_ENABLE_CRYPTODISK \
GRUB_BADRAM \
GRUB_OS_PROBER_SKIP_LIST \