]> TLD Linux GIT Repositories - packages/grub2.git/commitdiff
- merged 2.06 from PLD
authorMarcin Krol <hawk@tld-linux.org>
Tue, 30 Aug 2022 00:33:08 +0000 (02:33 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Tue, 30 Aug 2022 00:33:08 +0000 (02:33 +0200)
blscfg.patch
efi-net-fix.patch
grub-garbage.patch
grub-lvmdevice.patch
grub-mkconfig-diagnostics.patch
grub2-cfg.patch
grub2-fonts_path.patch
grub2.spec
ignore-kernel-symlinks.patch
just-say-linux.patch
restricted.patch

index f25dd282b23a27669658e993722054ea84834089..d7749a68ed30af305fef1fbdb9eb1a806216dce0 100644 (file)
@@ -1,6 +1,66 @@
-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 -*-*/
 +
@@ -1098,10 +1158,11 @@ diff -urN grub-2.04.orig/grub-core/commands/blscfg.c grub-2.04/grub-core/command
 +  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,
@@ -1110,7 +1171,7 @@ diff -urN grub-2.04.orig/grub-core/commands/legacycfg.c grub-2.04/grub-core/comm
            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,
@@ -1120,9 +1181,10 @@ diff -urN grub-2.04.orig/grub-core/commands/legacycfg.c grub-2.04/grub-core/comm
        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>
@@ -1132,7 +1194,7 @@ diff -urN grub-2.04.orig/grub-core/commands/loadenv.c grub-2.04/grub-core/comman
  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;
  }
  
@@ -1214,9 +1276,107 @@ diff -urN grub-2.04.orig/grub-core/commands/loadenv.c grub-2.04/grub-core/comman
  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.  */
 +/*
@@ -1311,141 +1471,21 @@ diff -urN grub-2.04.orig/grub-core/commands/loadenv.h grub-2.04/grub-core/comman
 +
 +  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
@@ -1463,7 +1503,7 @@ diff -urN grub-2.04.orig/include/grub/menu.h grub-2.04/include/grub/menu.h
  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;
@@ -1473,10 +1513,11 @@ diff -urN grub-2.04.orig/include/grub/menu.h grub-2.04/include/grub/menu.h
  };
  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,
index aec232450ad02925cca9a5abce5f2bf9ba6c7676..41872c001d2da17788408ef25884f1d264c5ee6b 100644 (file)
@@ -1,7 +1,30 @@
-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;
@@ -9,7 +32,7 @@ diff -ur grub-2.04.orig/grub-core/net/drivers/efi/efinet.c grub-2.04/grub-core/n
  
    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);
@@ -31,3 +54,6 @@ diff -ur grub-2.04.orig/grub-core/net/drivers/efi/efinet.c grub-2.04/grub-core/n
      return;
    }
  }
+-- 
+1.8.5.3
+
index 9fd9737b4916eca889802ca19633decba251bd08..7c6b794e746f662c977c7890c6780bed914a6403 100644 (file)
@@ -1,7 +1,7 @@
-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 ;;
index d9b6be7e4abd918224635490f0f752f762d77ddd..85ae59694b997c4e33e170a971f1082dc26a7b00 100644 (file)
@@ -1,7 +1,6 @@
-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 /`"
index afc95b479f8e0cc685fdc7d9b16eee5b7f9ff902..a10124ab4be7c299c64efc233f4fadb2f9907c11 100644 (file)
@@ -1,6 +1,48 @@
-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" ] \
@@ -25,9 +67,9 @@ diff -ur grub-2.04.orig/util/grub.d/00_header.in grub-2.04/util/grub.d/00_header
        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`
@@ -61,10 +103,10 @@ diff -ur grub-2.04.orig/util/grub.d/10_hurd.in grub-2.04/util/grub.d/10_hurd.in
    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`
@@ -73,7 +115,7 @@ diff -ur grub-2.04.orig/util/grub.d/10_kfreebsd.in grub-2.04/util/grub.d/10_kfre
    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
@@ -82,9 +124,8 @@ diff -ur grub-2.04.orig/util/grub.d/10_kfreebsd.in grub-2.04/util/grub.d/10_kfre
      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
@@ -103,9 +144,9 @@ diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.i
    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
@@ -113,11 +154,11 @@ diff -ur grub-2.04.orig/util/grub.d/10_netbsd.in grub-2.04/util/grub.d/10_netbsd
 -  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
@@ -127,9 +168,8 @@ diff -ur grub-2.04.orig/util/grub.d/10_windows.in grub-2.04/util/grub.d/10_windo
    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
@@ -148,19 +188,10 @@ diff -ur grub-2.04.orig/util/grub.d/20_linux_xen.in grub-2.04/util/grub.d/20_lin
        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')"
  
@@ -178,47 +209,3 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
      ;;
    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>&-
index 5d5ba9c5b5fa34a476d57843d123cf615f53b6db..23ce97b4cb47577f49b9d394f453e3a0b86e09d8 100644 (file)
@@ -1,6 +1,5 @@
-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 {
index f5dbe8ca015db1758f9c43e171daae8633e13172..d9fd2ad784a6123f31cade2275b60951bf08097c 100644 (file)
@@ -1,7 +1,7 @@
-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
@@ -10,12 +10,3 @@ diff -ur grub-2.04.orig/configure.ac grub-2.04/configure.ac
          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.
index 59388fb0cef73be4afff4654cf9c826faf9ecdba..c158e449bce5af89b4ad367917785501e6a43f87 100644 (file)
 #   - 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
@@ -54,32 +160,48 @@ Patch4:            tld-mkconfigdir.patch
 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
@@ -87,21 +209,17 @@ BuildRequires:     tar >= 1:1.22
 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
@@ -211,7 +329,9 @@ avançados e que querem mais recursos de seu boot loader.
 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.
@@ -219,22 +339,50 @@ 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}
 
@@ -244,6 +392,112 @@ 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
@@ -258,6 +512,7 @@ Program do konwersji popularnych formatów plików fontów do PF2.
 %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
@@ -275,13 +530,15 @@ Motyw starfield dla GRUB-a.
 %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*
@@ -294,7 +551,7 @@ install -d our-ld
 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}
@@ -307,11 +564,12 @@ for platform in %{platforms} ; do
        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
@@ -319,6 +577,7 @@ for platform in %{platforms} ; do
        %configure \
                --with-platform=${platform} \
                --disable-werror \
+               --enable-grub-themes \
        %if %{with grubemu}
                --enable-grub-emu-usb \
                --enable-grub-emu-sdl \
@@ -370,10 +629,12 @@ cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/grub
 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
@@ -395,8 +656,8 @@ rm -rf $RPM_BUILD_ROOT
 %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
@@ -412,7 +673,7 @@ 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
@@ -437,17 +698,21 @@ fi
 %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*
@@ -498,14 +763,7 @@ fi
 %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
@@ -514,47 +772,200 @@ fi
 
 %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
@@ -565,7 +976,3 @@ fi
 %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
index 23f3adcc398bebc3683c57802e16c457c1aa8ebb..f854139f203649a9c8dc1fe9cd110aff4f0d1170 100644 (file)
@@ -1,7 +1,6 @@
-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 ()
  {
index 21eeed9c35b3f8cb3deb7f7b1b3b8311f2ad0824..97cecbc630229a7f95df91b36700e6444baa5820 100644 (file)
@@ -1,7 +1,7 @@
-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
@@ -13,10 +13,10 @@ diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.i
    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
index 53c1e42940c227fe671b49ca04762e2effdf0fc5..9f5b20a90a9afd17ea100d88b155655debf7a8a9 100644 (file)
@@ -1,6 +1,6 @@
-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"
@@ -26,10 +26,10 @@ diff -ur grub-2.04.orig/util/grub.d/10_linux.in grub-2.04/util/grub.d/10_linux.i
    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
  
@@ -39,10 +39,10 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
 +  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
@@ -51,7 +51,7 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
  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
@@ -60,7 +60,7 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
  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
@@ -69,16 +69,16 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
  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
@@ -87,7 +87,7 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
  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
@@ -96,10 +96,10 @@ diff -ur grub-2.04.orig/util/grub.d/30_os-prober.in grub-2.04/util/grub.d/30_os-
  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 \