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