xref: /OK3568_Linux_fs/buildroot/boot/grub2/0142-grub-install-common-Add-sbat-option.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom bb51ee2b49fbda0f66c1fa580a33442ff578f110 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Dimitri John Ledkov <xnox@ubuntu.com>
3*4882a593SmuzhiyunDate: Mon, 22 Feb 2021 17:05:25 +0000
4*4882a593SmuzhiyunSubject: [PATCH] grub-install-common: Add --sbat option
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunSigned-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
7*4882a593SmuzhiyunReviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
8*4882a593SmuzhiyunSigned-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
9*4882a593Smuzhiyun---
10*4882a593Smuzhiyun include/grub/util/install.h |  5 ++++-
11*4882a593Smuzhiyun util/grub-install-common.c  | 12 ++++++++++--
12*4882a593Smuzhiyun 2 files changed, 14 insertions(+), 3 deletions(-)
13*4882a593Smuzhiyun
14*4882a593Smuzhiyundiff --git a/include/grub/util/install.h b/include/grub/util/install.h
15*4882a593Smuzhiyunindex c03befd..8cb5056 100644
16*4882a593Smuzhiyun--- a/include/grub/util/install.h
17*4882a593Smuzhiyun+++ b/include/grub/util/install.h
18*4882a593Smuzhiyun@@ -63,6 +63,8 @@
19*4882a593Smuzhiyun     /* TRANSLATORS: "embed" is a verb (command description).  "*/	\
20*4882a593Smuzhiyun   { "pubkey",   'k', N_("FILE"), 0,					\
21*4882a593Smuzhiyun       N_("embed FILE as public key for signature checking"), 0},	\
22*4882a593Smuzhiyun+  { "sbat", GRUB_INSTALL_OPTIONS_SBAT, N_("FILE"), 0,			\
23*4882a593Smuzhiyun+      N_("SBAT metadata"), 0 },						\
24*4882a593Smuzhiyun   { "verbose", 'v', 0, 0,						\
25*4882a593Smuzhiyun     N_("print verbose messages."), 1 }
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun@@ -122,7 +124,8 @@ enum grub_install_options {
28*4882a593Smuzhiyun   GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY,
29*4882a593Smuzhiyun   GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE,
30*4882a593Smuzhiyun   GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS,
31*4882a593Smuzhiyun-  GRUB_INSTALL_OPTIONS_DTB
32*4882a593Smuzhiyun+  GRUB_INSTALL_OPTIONS_DTB,
33*4882a593Smuzhiyun+  GRUB_INSTALL_OPTIONS_SBAT
34*4882a593Smuzhiyun };
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun extern char *grub_install_source_directory;
37*4882a593Smuzhiyundiff --git a/util/grub-install-common.c b/util/grub-install-common.c
38*4882a593Smuzhiyunindex 5d43ed1..1fcccd2 100644
39*4882a593Smuzhiyun--- a/util/grub-install-common.c
40*4882a593Smuzhiyun+++ b/util/grub-install-common.c
41*4882a593Smuzhiyun@@ -307,6 +307,7 @@ handle_install_list (struct install_list *il, const char *val,
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun static char **pubkeys;
44*4882a593Smuzhiyun static size_t npubkeys;
45*4882a593Smuzhiyun+static char *sbat;
46*4882a593Smuzhiyun static grub_compression_t compression;
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun int
49*4882a593Smuzhiyun@@ -337,6 +338,12 @@ grub_install_parse (int key, char *arg)
50*4882a593Smuzhiyun 			  * (npubkeys + 1));
51*4882a593Smuzhiyun       pubkeys[npubkeys++] = xstrdup (arg);
52*4882a593Smuzhiyun       return 1;
53*4882a593Smuzhiyun+    case GRUB_INSTALL_OPTIONS_SBAT:
54*4882a593Smuzhiyun+      if (sbat)
55*4882a593Smuzhiyun+	free (sbat);
56*4882a593Smuzhiyun+
57*4882a593Smuzhiyun+      sbat = xstrdup (arg);
58*4882a593Smuzhiyun+      return 1;
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun     case GRUB_INSTALL_OPTIONS_VERBOSITY:
61*4882a593Smuzhiyun       verbosity++;
62*4882a593Smuzhiyun@@ -498,9 +505,10 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix,
63*4882a593Smuzhiyun   grub_util_info ("grub-mkimage --directory '%s' --prefix '%s'"
64*4882a593Smuzhiyun 		  " --output '%s' "
65*4882a593Smuzhiyun 		  " --dtb '%s' "
66*4882a593Smuzhiyun+		  "--sbat '%s' "
67*4882a593Smuzhiyun 		  "--format '%s' --compression '%s' %s %s\n",
68*4882a593Smuzhiyun 		  dir, prefix,
69*4882a593Smuzhiyun-		  outname, dtb ? : "", mkimage_target,
70*4882a593Smuzhiyun+		  outname, dtb ? : "", sbat ? : "", mkimage_target,
71*4882a593Smuzhiyun 		  compnames[compression], note ? "--note" : "", s);
72*4882a593Smuzhiyun   free (s);
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun@@ -511,7 +519,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix,
75*4882a593Smuzhiyun   grub_install_generate_image (dir, prefix, fp, outname,
76*4882a593Smuzhiyun 			       modules.entries, memdisk_path,
77*4882a593Smuzhiyun 			       pubkeys, npubkeys, config_path, tgt,
78*4882a593Smuzhiyun-			       note, compression, dtb, NULL);
79*4882a593Smuzhiyun+			       note, compression, dtb, sbat);
80*4882a593Smuzhiyun   while (dc--)
81*4882a593Smuzhiyun     grub_install_pop_module ();
82*4882a593Smuzhiyun }
83*4882a593Smuzhiyun--
84*4882a593Smuzhiyun2.14.2
85*4882a593Smuzhiyun
86