From dbfd2e6b04243a7add39205a9dd70ad85f3ff897 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Jul 31 2018 20:40:33 +0000 Subject: Make more stuff in our buildroot go into the git repo so I can grep it better. Signed-off-by: Peter Jones --- diff --git a/0001-Add-support-for-Linux-EFI-stub-loading.patch b/0001-Add-support-for-Linux-EFI-stub-loading.patch index 2a9a17b..25aca8b 100644 --- a/0001-Add-support-for-Linux-EFI-stub-loading.patch +++ b/0001-Add-support-for-Linux-EFI-stub-loading.patch @@ -29,15 +29,16 @@ moves the check into grub_dl_load_file. grub-core/kern/dl.c | 21 +++ grub-core/kern/efi/efi.c | 28 ++++ grub-core/kern/efi/mm.c | 32 ++++ - grub-core/loader/arm64/linux.c | 121 +++++++------- - grub-core/loader/efi/linux.c | 65 ++++++++ + grub-core/loader/arm64/linux.c | 118 +++++++------- + grub-core/loader/efi/linux.c | 70 ++++++++ grub-core/loader/i386/efi/linux.c | 335 ++++++++++++++++++++++++++++++++++++++ grub-core/loader/i386/pc/linux.c | 10 +- - include/grub/arm64/linux.h | 9 + - include/grub/efi/efi.h | 4 + + include/grub/arm/linux.h | 9 + + include/grub/arm64/linux.h | 10 ++ + include/grub/efi/efi.h | 7 +- include/grub/efi/linux.h | 31 ++++ include/grub/i386/linux.h | 1 + - 12 files changed, 607 insertions(+), 66 deletions(-) + 13 files changed, 620 insertions(+), 68 deletions(-) create mode 100644 grub-core/loader/efi/linux.c create mode 100644 grub-core/loader/i386/efi/linux.c create mode 100644 include/grub/efi/linux.h @@ -208,7 +209,7 @@ index 42ad7c570a5..5cdf6c943f2 100644 void * grub_efi_allocate_pages_real (grub_efi_physical_address_t address, diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 1f86229f86b..0a44f7ea42f 100644 +index 1f86229f86b..6c00af98dce 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -29,6 +29,7 @@ @@ -237,7 +238,7 @@ index 1f86229f86b..0a44f7ea42f 100644 void *fdt; -@@ -101,79 +104,73 @@ finalize_params_linux (void) +@@ -101,79 +104,70 @@ finalize_params_linux (void) if (grub_fdt_install() != GRUB_ERR_NONE) goto failure; @@ -327,8 +328,7 @@ index 1f86229f86b..0a44f7ea42f 100644 + if (loaded_image) + { + if (loaded_image->load_options) -+ grub_efi_free_pages ((grub_efi_physical_address_t) -+ loaded_image->load_options, ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_efi_uintn_t)loaded_image->load_options, + GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + loaded_image->load_options = NULL; + loaded_image->load_options_size = 0; @@ -336,7 +336,7 @@ index 1f86229f86b..0a44f7ea42f 100644 +} + +grub_err_t -+grub_armxx_efi_linux_boot_image (grub_addr_t addr, grub_size_t size, char *args) ++grub_armxx_efi_linux_boot_image (grub_addr_t addr, char *args) +{ + grub_err_t retval; + @@ -346,8 +346,7 @@ index 1f86229f86b..0a44f7ea42f 100644 + + grub_dprintf ("linux", "linux command line: '%s'\n", args); + -+ retval = grub_efi_linux_boot ((char *)kernel_addr, handover_offset, -+ kernel_addr); ++ retval = grub_efi_linux_boot ((char *)addr, handover_offset, (void *)addr); + + /* Never reached... */ + free_params(); @@ -362,20 +361,19 @@ index 1f86229f86b..0a44f7ea42f 100644 - - return (grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, - kernel_size, linux_args)); -+ return grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, -+ kernel_size, linux_args); ++ return grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, linux_args); } static grub_err_t -@@ -287,6 +284,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -287,6 +281,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), { grub_file_t file = 0; struct linux_armxx_kernel_header lh; -+ struct grub_arm64_linux_pe_header *pe; ++ struct grub_armxx_linux_pe_header *pe; grub_dl_ref (my_mod); -@@ -331,6 +329,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -331,6 +326,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); @@ -393,10 +391,10 @@ index 1f86229f86b..0a44f7ea42f 100644 if (!linux_args) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c new file mode 100644 -index 00000000000..aea378adf5c +index 00000000000..c24202a5dd1 --- /dev/null +++ b/grub-core/loader/efi/linux.c -@@ -0,0 +1,65 @@ +@@ -0,0 +1,70 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2014 Free Software Foundation, Inc. @@ -449,6 +447,9 @@ index 00000000000..aea378adf5c + return 0; +} + ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wcast-align" ++ +typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); + +grub_err_t @@ -462,6 +463,8 @@ index 00000000000..aea378adf5c + + return GRUB_ERR_BUG; +} ++ ++#pragma GCC diagnostic pop diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c new file mode 100644 index 00000000000..3db82e782df @@ -837,8 +840,38 @@ index b69cb7a3a7f..a3c87cf2fc2 100644 grub_unregister_command (cmd_initrd); + grub_unregister_command (cmd_initrd16); } +diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h +index 712ba17b9ba..5900fc8a40c 100644 +--- a/include/grub/arm/linux.h ++++ b/include/grub/arm/linux.h +@@ -20,6 +20,7 @@ + #ifndef GRUB_ARM_LINUX_HEADER + #define GRUB_ARM_LINUX_HEADER 1 + ++#include + #include "system.h" + + #define GRUB_LINUX_ARM_MAGIC_SIGNATURE 0x016f2818 +@@ -34,9 +35,17 @@ struct linux_arm_kernel_header { + grub_uint32_t hdr_offset; + }; + ++struct grub_arm_linux_pe_header ++{ ++ grub_uint32_t magic; ++ struct grub_pe32_coff_header coff; ++ struct grub_pe32_optional_header opt; ++}; ++ + #if defined(__arm__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE + # define linux_armxx_kernel_header linux_arm_kernel_header ++# define grub_armxx_linux_pe_header grub_arm_linux_pe_header + #endif + + #if defined GRUB_MACHINE_UBOOT diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 8655067e039..f18a7300fd7 100644 +index 8655067e039..7b533b57139 100644 --- a/include/grub/arm64/linux.h +++ b/include/grub/arm64/linux.h @@ -19,6 +19,8 @@ @@ -850,9 +883,9 @@ index 8655067e039..f18a7300fd7 100644 #define GRUB_LINUX_ARM64_MAGIC_SIGNATURE 0x644d5241 /* 'ARM\x64' */ /* From linux/Documentation/arm64/booting.txt */ -@@ -41,4 +43,11 @@ struct linux_arm64_kernel_header - # define linux_armxx_kernel_header linux_arm64_kernel_header - #endif +@@ -36,9 +38,17 @@ struct linux_arm64_kernel_header + grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ + }; +struct grub_arm64_linux_pe_header +{ @@ -861,9 +894,15 @@ index 8655067e039..f18a7300fd7 100644 + struct grub_pe64_optional_header opt; +}; + + #if defined(__aarch64__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE + # define linux_armxx_kernel_header linux_arm64_kernel_header ++# define grub_armxx_linux_pe_header grub_arm64_linux_pe_header + #endif + #endif /* ! GRUB_ARM64_LINUX_HEADER */ diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 2c6648d46fc..4b7fdbdb869 100644 +index 2c6648d46fc..1061aee9726 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, @@ -884,6 +923,16 @@ index 2c6648d46fc..4b7fdbdb869 100644 int EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); +@@ -95,8 +99,7 @@ void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); + grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *); + #include + grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh); +-grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, grub_size_t size, +- char *args); ++grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, char *args); + #endif + + grub_addr_t grub_efi_modules_addr (void); diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h new file mode 100644 index 00000000000..d9ede36773b diff --git a/0004-Add-secureboot-support-on-efi-chainloader.patch b/0004-Add-secureboot-support-on-efi-chainloader.patch index dbbb5e9..6a347d8 100644 --- a/0004-Add-secureboot-support-on-efi-chainloader.patch +++ b/0004-Add-secureboot-support-on-efi-chainloader.patch @@ -204,18 +204,18 @@ index c8a9d8307c0..91129e33566 100644 if (*secure_boot && !*setup_mode) ret = 1; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 0a44f7ea42f..0363c5438bd 100644 +index 6c00af98dce..a1ac7a38867 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -285,6 +285,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -282,6 +282,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_file_t file = 0; struct linux_armxx_kernel_header lh; - struct grub_arm64_linux_pe_header *pe; + struct grub_armxx_linux_pe_header *pe; + int rc; grub_dl_ref (my_mod); -@@ -329,7 +330,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -326,7 +327,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); @@ -1173,7 +1173,7 @@ index adc85636633..af2189619a3 100644 return grub_errno; diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index aea378adf5c..5c2c614c380 100644 +index c24202a5dd1..c8ecce6dfd0 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -33,21 +33,34 @@ struct grub_efi_shim_lock @@ -1216,7 +1216,7 @@ index aea378adf5c..5c2c614c380 100644 + return -1; } - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); + #pragma GCC diagnostic push diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c index 3db82e782df..8db228c5bf5 100644 --- a/grub-core/loader/i386/efi/linux.c diff --git a/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 0ce163a..3c86bee 100644 --- a/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -444,7 +444,7 @@ index c9885b1bcd7..df8dfdb4ba0 100644 grub_unregister_command (cmd_resume); #endif diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 4b7fdbdb869..63b042a582b 100644 +index 1061aee9726..39480b38674 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -85,7 +85,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, diff --git a/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 271c83a..76b1183 100644 --- a/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -13,10 +13,10 @@ Signed-off-by: Peter Jones 3 files changed, 89 insertions(+), 37 deletions(-) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 5c2c614c380..8453b5c8017 100644 +index c8ecce6dfd0..0622dfa48d4 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c -@@ -66,12 +66,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) +@@ -69,12 +69,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); grub_err_t diff --git a/0007-re-write-.gitignore.patch b/0007-re-write-.gitignore.patch index 4635360..cb39ba7 100644 --- a/0007-re-write-.gitignore.patch +++ b/0007-re-write-.gitignore.patch @@ -4,7 +4,7 @@ Date: Tue, 8 Aug 2017 12:48:04 -0400 Subject: [PATCH] re-write .gitignore --- - .gitignore | 352 ++++++++++++-------------------------- + .gitignore | 356 +++++++++++++------------------------- build-aux/.gitignore | 9 + docs/.gitignore | 4 + grub-core/.gitignore | 15 ++ @@ -13,7 +13,7 @@ Subject: [PATCH] re-write .gitignore include/grub/gcrypt/.gitignore | 2 + po/.gitignore | 4 + util/bash-completion.d/.gitignore | 1 + - 9 files changed, 170 insertions(+), 240 deletions(-) + 9 files changed, 174 insertions(+), 240 deletions(-) create mode 100644 build-aux/.gitignore create mode 100644 docs/.gitignore create mode 100644 grub-core/.gitignore @@ -24,10 +24,10 @@ Subject: [PATCH] re-write .gitignore create mode 100644 util/bash-completion.d/.gitignore diff --git a/.gitignore b/.gitignore -index eca17bec9b8..d95fac5789c 100644 +index eca17bec9b8..2dda15a37b8 100644 --- a/.gitignore +++ b/.gitignore -@@ -1,249 +1,121 @@ +@@ -1,249 +1,125 @@ -00_header -10_* -20_linux_xen @@ -319,6 +319,9 @@ index eca17bec9b8..d95fac5789c 100644 + +# stuff "make" creates +/[[:digit:]][[:digit:]]_?* ++/ascii.h ++/build-grub-gen-asciih ++/build-grub-gen-widthspec +/build-grub-mkfont +/config-util.h.in /garbage-gen @@ -389,6 +392,7 @@ index eca17bec9b8..d95fac5789c 100644 +/libgrub_a_init.c +/libgrub_a_init.lst +/stamp-h.in ++/widthspec.h diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 index 00000000000..f2f17aab9ff diff --git a/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index b093cf1..6518939 100644 --- a/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -389,10 +389,10 @@ index 00000000000..f33bd1ed568 + return 0; +} diff --git a/.gitignore b/.gitignore -index d95fac5789c..1c85371298c 100644 +index 2dda15a37b8..56c641b5f7b 100644 --- a/.gitignore +++ b/.gitignore -@@ -101,6 +101,8 @@ grub-*.tar.* +@@ -104,6 +104,8 @@ grub-*.tar.* /grub*-reboot.8 /grub*-render-label /grub*-render-label.1 diff --git a/0063-Add-friendly-grub2-password-config-tool-985962.patch b/0063-Add-friendly-grub2-password-config-tool-985962.patch index c35b90c..45a1f9a 100644 --- a/0063-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0063-Add-friendly-grub2-password-config-tool-985962.patch @@ -65,10 +65,10 @@ index 406d96861b6..fd91045bd6d 100644 name = grub-mkconfig_lib; common = util/grub-mkconfig_lib.in; diff --git a/.gitignore b/.gitignore -index 1c85371298c..387e3554cd5 100644 +index 56c641b5f7b..4e9a0f6d9cf 100644 --- a/.gitignore +++ b/.gitignore -@@ -107,6 +107,8 @@ grub-*.tar.* +@@ -110,6 +110,8 @@ grub-*.tar.* /grub*-script-check.1 /grub*-set-default /grub*-set-default.8 diff --git a/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index d29654c..e927d85 100644 --- a/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -62,10 +62,10 @@ index fd91045bd6d..2d032643de7 100644 name = grub-set-default; common = util/grub-set-default.in; diff --git a/.gitignore b/.gitignore -index 387e3554cd5..9f258735aaa 100644 +index 4e9a0f6d9cf..ac92bfd4c3d 100644 --- a/.gitignore +++ b/.gitignore -@@ -64,6 +64,8 @@ grub-*.tar.* +@@ -67,6 +67,8 @@ grub-*.tar.* /grub*-fs-tester /grub*-fstest /grub*-fstest.1 diff --git a/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 84fcdb8..e832337 100644 --- a/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -14,7 +14,7 @@ make sure they exist. 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 0363c5438bd..fd014af7d82 100644 +index a1ac7a38867..93b5cd306eb 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -80,7 +80,21 @@ finalize_params_linux (void) diff --git a/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index d9d9de1..9a4a5c2 100644 --- a/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 63b042a582b..64b8c8f96ef 100644 +index 39480b38674..09a18e56302 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -24,6 +24,10 @@ @@ -58,7 +58,7 @@ index 63b042a582b..64b8c8f96ef 100644 grub_efi_loaded_image_t *EXPORT_FUNC(grub_efi_get_loaded_image) (grub_efi_handle_t image_handle); void EXPORT_FUNC(grub_efi_print_device_path) (grub_efi_device_path_t *dp); char *EXPORT_FUNC(grub_efi_get_filename) (grub_efi_device_path_t *dp); -@@ -110,10 +141,7 @@ void grub_efi_init (void); +@@ -109,10 +140,7 @@ void grub_efi_init (void); void grub_efi_fini (void); void grub_efi_set_prefix (void); diff --git a/0120-Add-grub2-switch-to-blscfg.patch b/0120-Add-grub2-switch-to-blscfg.patch index 1c19175..a0d7987 100644 --- a/0120-Add-grub2-switch-to-blscfg.patch +++ b/0120-Add-grub2-switch-to-blscfg.patch @@ -32,10 +32,10 @@ index 879e8eb98a4..f4fbd250630 100644 name = grub-glue-efi; mansection = 1; diff --git a/.gitignore b/.gitignore -index 9f258735aaa..4a945596fea 100644 +index ac92bfd4c3d..b718546f993 100644 --- a/.gitignore +++ b/.gitignore -@@ -117,6 +117,8 @@ grub-*.tar.* +@@ -120,6 +120,8 @@ grub-*.tar.* /grub*-sparc64-setup.8 /grub*-syslinux2cfg /grub*-syslinux2cfg.1 diff --git a/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 7fc3751..f3e24d5 100644 --- a/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -164,11 +164,11 @@ index 71d2279a0c1..e6183a4c44d 100644 } diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 64b8c8f96ef..cf3c899c40a 100644 +index 09a18e56302..570a69361a5 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -133,7 +133,7 @@ grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, grub_size_t size, - char *args); +@@ -132,7 +132,7 @@ grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh + grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, char *args); #endif -grub_addr_t grub_efi_modules_addr (void); diff --git a/0192-Add-grub-set-bootflag-utility.patch b/0192-Add-grub-set-bootflag-utility.patch index 467b809..e86bf62 100644 --- a/0192-Add-grub-set-bootflag-utility.patch +++ b/0192-Add-grub-set-bootflag-utility.patch @@ -34,12 +34,13 @@ Signed-off-by: Hans de Goede --- Makefile.util.def | 7 ++ util/grub-set-bootflag.c | 158 +++++++++++++++++++++++++++++++++++++++++ + .gitignore | 2 + conf/Makefile.extra-dist | 3 + docs/grub-boot-success.service | 6 ++ docs/grub-boot-success.timer | 5 ++ docs/org.gnu.grub.policy | 20 ++++++ util/grub-set-bootflag.1 | 20 ++++++ - 7 files changed, 219 insertions(+) + 8 files changed, 221 insertions(+) create mode 100644 util/grub-set-bootflag.c create mode 100644 docs/grub-boot-success.service create mode 100644 docs/grub-boot-success.timer @@ -225,6 +226,19 @@ index 00000000000..f8dc310909a + + return 0; +} +diff --git a/.gitignore b/.gitignore +index b718546f993..99a3e801bc4 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -110,6 +110,8 @@ grub-*.tar.* + /grub*-rpm-sort.8 + /grub*-script-check + /grub*-script-check.1 ++/grub*-set-bootflag ++/grub*-set-bootflag.1 + /grub*-set-default + /grub*-set-default.8 + /grub*-setsetpassword diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist index 39eb94bded6..5946ec24a65 100644 --- a/conf/Makefile.extra-dist diff --git a/0194-Make-grub-set-password-be-named-like-all-the-other-g.patch b/0194-Make-grub-set-password-be-named-like-all-the-other-g.patch index e4c3ccc..2514917 100644 --- a/0194-Make-grub-set-password-be-named-like-all-the-other-g.patch +++ b/0194-Make-grub-set-password-be-named-like-all-the-other-g.patch @@ -44,11 +44,11 @@ index 5da55393291..97cd8bdebd9 100644 installdir = sbin; }; diff --git a/.gitignore b/.gitignore -index 4a945596fea..5c09a474ba9 100644 +index 99a3e801bc4..e7d3727834d 100644 --- a/.gitignore +++ b/.gitignore -@@ -109,8 +109,8 @@ grub-*.tar.* - /grub*-script-check.1 +@@ -114,8 +114,8 @@ grub-*.tar.* + /grub*-set-bootflag.1 /grub*-set-default /grub*-set-default.8 -/grub*-setsetpassword diff --git a/0201-Make-the-reboot-module-be-linked-more-like-the-exit-.patch b/0201-Make-the-reboot-module-be-linked-more-like-the-exit-.patch index e72f6ef..b496926 100644 --- a/0201-Make-the-reboot-module-be-linked-more-like-the-exit-.patch +++ b/0201-Make-the-reboot-module-be-linked-more-like-the-exit-.patch @@ -100,7 +100,7 @@ index 00000000000..6934a3b369e + grub_efi_reboot(); +} diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index cf3c899c40a..1e787b54164 100644 +index 570a69361a5..3f02db48279 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -29,6 +29,7 @@ extern grub_efi_system_table_t *EXPORT_VAR(grub_efi_system_table); diff --git a/0218-Rework-how-the-fdt-command-builds.patch b/0218-Rework-how-the-fdt-command-builds.patch index 0cda40f..f7a8157 100644 --- a/0218-Rework-how-the-fdt-command-builds.patch +++ b/0218-Rework-how-the-fdt-command-builds.patch @@ -17,20 +17,20 @@ supposed to work. Signed-off-by: Peter Jones --- - grub-core/Makefile.core.def | 10 ++++----- + grub-core/Makefile.core.def | 9 +++----- grub-core/bus/fdt.c | 6 ++++++ grub-core/kern/efi/fdt.c | 43 --------------------------------------- - grub-core/lib/fdt.c | 29 +++++++++++++++++++++----- + grub-core/lib/fdt.c | 25 ++++++++++++++++++++++- grub-core/loader/arm/linux.c | 2 ++ grub-core/loader/arm64/linux.c | 4 ++++ grub-core/loader/arm64/xen_boot.c | 3 +++ grub-core/loader/efi/fdt.c | 27 ++++++++++++++++++++++++ include/grub/fdt.h | 16 --------------- - 9 files changed, 70 insertions(+), 70 deletions(-) + 9 files changed, 69 insertions(+), 66 deletions(-) delete mode 100644 grub-core/kern/efi/fdt.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index b89104f979e..b0d30a9bfee 100644 +index b89104f979e..de61ac8cf48 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -166,7 +166,6 @@ kernel = { @@ -41,19 +41,18 @@ index b89104f979e..b0d30a9bfee 100644 arm_coreboot = bus/fdt.c; arm_coreboot = term/ps2.c; arm_coreboot = term/arm/pl050.c; -@@ -240,10 +239,9 @@ kernel = { +@@ -240,10 +239,8 @@ kernel = { ia64_efi = kern/ia64/cache.c; arm_efi = kern/arm/efi/init.c; - arm_efi = kern/efi/fdt.c; -+ arm_efi = kern/arm/efi/misc.c; arm64_efi = kern/arm64/efi/init.c; - arm64_efi = kern/efi/fdt.c; i386_pc = kern/i386/pc/init.c; i386_pc = kern/i386/pc/mmap.c; -@@ -1715,7 +1713,6 @@ module = { +@@ -1715,7 +1712,6 @@ module = { arm_uboot = loader/arm/linux.c; arm64 = loader/arm64/linux.c; emu = loader/emu/linux.c; @@ -61,7 +60,7 @@ index b89104f979e..b0d30a9bfee 100644 common = loader/linux.c; common = lib/cmdline.c; -@@ -1725,7 +1722,7 @@ module = { +@@ -1725,7 +1721,7 @@ module = { module = { name = fdt; @@ -70,7 +69,7 @@ index b89104f979e..b0d30a9bfee 100644 common = lib/fdt.c; enable = fdt; }; -@@ -1789,7 +1786,8 @@ module = { +@@ -1789,7 +1785,8 @@ module = { i386_coreboot = lib/LzmaDec.c; enable = i386_pc; enable = i386_coreboot; @@ -147,17 +146,14 @@ index 30100c61c14..00000000000 - return firmware_fdt; -} diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index 0d371c5633e..16128fd6f32 100644 +index 0d371c5633e..85e44541ddb 100644 --- a/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c -@@ -16,12 +16,22 @@ - * along with GRUB. If not, see . - */ +@@ -21,7 +21,20 @@ + #include + #include --#include --#include --#include --#include +-GRUB_MOD_LICENSE ("GPLv3+"); +static int grub_fdt_create_empty_tree (void *fdt, unsigned int size); +static int grub_fdt_check_header (const void *fdt, unsigned int size); +static int grub_fdt_check_header_nosize (const void *fdt); @@ -165,20 +161,17 @@ index 0d371c5633e..16128fd6f32 100644 + const char *name); +static int grub_fdt_first_node (const void *fdt, unsigned int parentoffset); +static int grub_fdt_next_node (const void *fdt, unsigned int currentoffset); -+static int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, -+ const char *name); +static const char * +grub_fdt_get_nodename (const void *fdt, unsigned int nodeoffset); +static const void *grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, + grub_uint32_t *len); - --GRUB_MOD_LICENSE ("GPLv3+"); ++ +static int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, + const void *val, grub_uint32_t len); #define FDT_SUPPORTED_VERSION 17 -@@ -263,6 +273,7 @@ static grub_uint32_t *find_prop (const void *fdt, unsigned int nodeoffset, +@@ -263,6 +276,7 @@ static grub_uint32_t *find_prop (const void *fdt, unsigned int nodeoffset, the size allocated for the FDT; if this function is called before the other functions in this file and returns success, the other functions are guaranteed not to access memory locations outside the allocated memory. */ @@ -186,7 +179,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_check_header_nosize (const void *fdt) { if (((grub_addr_t) fdt & 0x3) || (grub_fdt_get_magic (fdt) != FDT_MAGIC) -@@ -281,6 +292,7 @@ int grub_fdt_check_header_nosize (const void *fdt) +@@ -281,6 +295,7 @@ int grub_fdt_check_header_nosize (const void *fdt) return 0; } @@ -194,7 +187,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_check_header (const void *fdt, unsigned int size) { if (size < sizeof (grub_fdt_header_t) -@@ -327,6 +339,7 @@ advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t +@@ -327,6 +342,7 @@ advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t return 0; } @@ -202,7 +195,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_next_node (const void *fdt, unsigned int currentoffset) { const grub_uint32_t *token = (const grub_uint32_t *) fdt + (currentoffset + grub_fdt_get_off_dt_struct (fdt)) / 4; -@@ -337,6 +350,7 @@ int grub_fdt_next_node (const void *fdt, unsigned int currentoffset) +@@ -337,6 +353,7 @@ int grub_fdt_next_node (const void *fdt, unsigned int currentoffset) - grub_fdt_get_off_dt_struct (fdt)); } @@ -210,7 +203,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_first_node (const void *fdt, unsigned int parentoffset) { const grub_uint32_t *token, *end; -@@ -358,6 +372,7 @@ int grub_fdt_first_node (const void *fdt, unsigned int parentoffset) +@@ -358,6 +375,7 @@ int grub_fdt_first_node (const void *fdt, unsigned int parentoffset) } /* Find a direct sub-node of a given parent node. */ @@ -218,7 +211,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, const char *name) { -@@ -385,6 +400,7 @@ int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, +@@ -385,12 +403,14 @@ int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, } } @@ -226,7 +219,14 @@ index 0d371c5633e..16128fd6f32 100644 const char * grub_fdt_get_nodename (const void *fdt, unsigned int nodeoffset) { -@@ -407,6 +423,7 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, + return (const char *) fdt + grub_fdt_get_off_dt_struct(fdt) + nodeoffset + 4; + } + ++static inline __attribute__((__unused__)) + int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, + const char *name) + { +@@ -407,6 +427,7 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, return add_subnode (fdt, parentoffset, name); } @@ -234,7 +234,7 @@ index 0d371c5633e..16128fd6f32 100644 const void * grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, grub_uint32_t *len) -@@ -425,6 +442,7 @@ grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, +@@ -425,6 +446,7 @@ grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, return prop + 3; } @@ -242,7 +242,7 @@ index 0d371c5633e..16128fd6f32 100644 int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, const void *val, grub_uint32_t len) { -@@ -501,6 +519,7 @@ int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, +@@ -501,6 +523,7 @@ int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, return 0; } @@ -264,7 +264,7 @@ index b4f609d2d01..58594e9719f 100644 static grub_dl_t my_mod; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index fd014af7d82..2fb092ffec5 100644 +index 93b5cd306eb..94ceeeb9789 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -24,6 +24,8 @@ diff --git a/0221-Rename-00_menu_auto_hide.in-to-01_menu_auto_hide.in.patch b/0221-Rename-00_menu_auto_hide.in-to-01_menu_auto_hide.in.patch index d4a9e2d..14cc004 100644 --- a/0221-Rename-00_menu_auto_hide.in-to-01_menu_auto_hide.in.patch +++ b/0221-Rename-00_menu_auto_hide.in-to-01_menu_auto_hide.in.patch @@ -1,11 +1,11 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Christian Glombek Date: Tue, 31 Jul 2018 11:11:01 +0200 -Subject: [PATCH] Rename 00_menu_auto_hide.in to 01_menu_auto_hide.in This is - necessary to accommodate the fallback counting script which needs to run - before this one because the menu auto hide script sets boot_success = 0, - which will be used by the boot counting script +Subject: [PATCH] Rename 00_menu_auto_hide.in to 01_menu_auto_hide.in +This is necessary to accommodate the fallback counting script which +needs to run before this one because the menu auto hide script sets +boot_success = 0, which will be used by the boot counting script --- Makefile.util.def | 4 ++-- util/grub.d/{00_menu_auto_hide.in => 01_menu_auto_hide.in} | 0 diff --git a/0222-Boot-Counting.patch b/0222-Boot-Counting.patch index a0db52f..3028968 100644 --- a/0222-Boot-Counting.patch +++ b/0222-Boot-Counting.patch @@ -1,9 +1,10 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Christian Glombek Date: Tue, 31 Jul 2018 11:12:06 +0200 -Subject: [PATCH] Boot Counting Adds 01_fallback_counting.in script to support - boot counting before falling back to the previous menu entry automatically +Subject: [PATCH] Boot Counting +Adds 01_fallback_counting.in script to support boot counting before +falling back to the previous menu entry automatically --- Makefile.util.def | 6 ++++++ util/grub.d/01_fallback_counting.in | 12 ++++++++++++ diff --git a/grub.macros b/grub.macros index 1cdd964..4245605 100644 --- a/grub.macros +++ b/grub.macros @@ -328,6 +328,8 @@ git config --unset user.name \ --program-transform-name=s,grub,%{name}, \\\ --disable-grub-mount \\\ --disable-werror || ( cat config.log ; exit 1 ) \ +git add . \ +git commit -m "After efi configure" \ %{nil} %define do_efi_build_modules() \ @@ -411,6 +413,8 @@ cd grub-%{1}-%{tarversion} \ --program-transform-name=s,grub,%{name}, \\\ --disable-grub-mount \\\ --disable-werror || ( cat config.log ; exit 1 ) \ +git add . \ +git commit -m "After legacy configure" \ make %{?_smp_mflags} \ cd .. \ %{nil} diff --git a/grub2.spec b/grub2.spec index 289818f..2633e14 100644 --- a/grub2.spec +++ b/grub2.spec @@ -140,16 +140,23 @@ This subpackage provides tools for support of all platforms. %do_common_setup %if 0%{with_efi_arch} mkdir grub-%{grubefiarch}-%{tarversion} +grep -A100000 '# stuff "make" creates' .gitignore > grub-%{grubefiarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grubefiarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grubefiarch}-%{tarversion} %endif %if 0%{with_alt_efi_arch} mkdir grub-%{grubaltefiarch}-%{tarversion} +grep -A100000 '# stuff "make" creates' .gitignore > grub-%{grubaltefiarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grubaltefiarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grubaltefiarch}-%{tarversion} %endif %if 0%{with_legacy_arch} mkdir grub-%{grublegacyarch}-%{tarversion} +grep -A100000 '# stuff "make" creates' .gitignore > grub-%{grublegacyarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grublegacyarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grublegacyarch}-%{tarversion} %endif +git commit -m "After making subdirs" %build %if 0%{with_efi_arch}