import grub2-2.06-46.el9_1.5

i9c changed/i9c/grub2-2.06-46.el9_1.5
MSVSphere Packaging Team 2 years ago
parent 5c27775d0d
commit 845b3d6c6e

2
.gitignore vendored

@ -1,4 +1,4 @@
SOURCES/gnulib-fixes.tar.gz SOURCES/gnulib-9f48fb992a3d7e96610c4ce8be969cff2d61a01b.tar.gz
SOURCES/grub-2.06.tar.xz SOURCES/grub-2.06.tar.xz
SOURCES/theme.tar.bz2 SOURCES/theme.tar.bz2
SOURCES/unifont-13.0.06.pcf.gz SOURCES/unifont-13.0.06.pcf.gz

@ -1,4 +1,4 @@
1a07692dfaa916675a92b1383885141f490f98d2 SOURCES/gnulib-fixes.tar.gz d08376d97163f99ce0d61fce160d6f7667c5c944 SOURCES/gnulib-9f48fb992a3d7e96610c4ce8be969cff2d61a01b.tar.gz
c9f93f1e195ec7a5a21d36a13b469788c0b29f0f SOURCES/grub-2.06.tar.xz c9f93f1e195ec7a5a21d36a13b469788c0b29f0f SOURCES/grub-2.06.tar.xz
cf0b7763c528902da7e8b05cfa248f20c8825ce5 SOURCES/theme.tar.bz2 cf0b7763c528902da7e8b05cfa248f20c8825ce5 SOURCES/theme.tar.bz2
3b39cb0830367171760ec536cab805abdbe08bc5 SOURCES/unifont-13.0.06.pcf.gz 3b39cb0830367171760ec536cab805abdbe08bc5 SOURCES/unifont-13.0.06.pcf.gz

@ -164,18 +164,33 @@ following branches:
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Also:
commit cc06f149fbd2d8c1da1e83173d21629ba97e0d92
Author: Raymund Will <rw@suse.com>
chainloader: Define machine types for RISC-V
The commit "Add secureboot support on efi chainloader" didn't add machine
types for RISC-V, so this patch adds them.
Note, that grub-core/loader/riscv/linux.c is skipped because Linux is not
supported yet. This patch might need a new revision once that's the case.
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
--- ---
grub-core/kern/efi/efi.c | 14 +- grub-core/kern/efi/efi.c | 14 +-
grub-core/loader/arm64/linux.c | 4 +- grub-core/loader/arm64/linux.c | 4 +-
grub-core/loader/efi/chainloader.c | 816 +++++++++++++++++++++++++++++++++---- grub-core/loader/efi/chainloader.c | 820 +++++++++++++++++++++++++++++++++----
grub-core/loader/efi/linux.c | 25 +- grub-core/loader/efi/linux.c | 25 +-
grub-core/loader/i386/efi/linux.c | 17 +- grub-core/loader/i386/efi/linux.c | 17 +-
include/grub/efi/linux.h | 2 +- include/grub/efi/linux.h | 2 +-
include/grub/efi/pe32.h | 52 ++- include/grub/efi/pe32.h | 52 ++-
7 files changed, 840 insertions(+), 90 deletions(-) 7 files changed, 844 insertions(+), 90 deletions(-)
diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index 35b8f670602..4a2259aa1c7 100644 index 35b8f67060..4a2259aa1c 100644
--- a/grub-core/kern/efi/efi.c --- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c
@@ -296,14 +296,20 @@ grub_efi_secure_boot (void) @@ -296,14 +296,20 @@ grub_efi_secure_boot (void)
@ -204,7 +219,7 @@ index 35b8f670602..4a2259aa1c7 100644
if (*secure_boot && !*setup_mode) if (*secure_boot && !*setup_mode)
ret = 1; ret = 1;
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
index a312c668685..04994d5c67d 100644 index a312c66868..04994d5c67 100644
--- a/grub-core/loader/arm64/linux.c --- a/grub-core/loader/arm64/linux.c
+++ b/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c
@@ -284,6 +284,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -284,6 +284,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
@ -226,7 +241,7 @@ index a312c668685..04994d5c67d 100644
grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]);
goto fail; goto fail;
diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c
index 2bd80f4db3d..b54cf6986fc 100644 index 2bd80f4db3..e6a8d4ad0e 100644
--- a/grub-core/loader/efi/chainloader.c --- a/grub-core/loader/efi/chainloader.c
+++ b/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c
@@ -32,6 +32,8 @@ @@ -32,6 +32,8 @@
@ -261,7 +276,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
grub_dl_unref (my_mod); grub_dl_unref (my_mod);
return GRUB_ERR_NONE; return GRUB_ERR_NONE;
@@ -213,20 +221,690 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) @@ -213,20 +221,694 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename)
return file_path; return file_path;
} }
@ -376,6 +391,10 @@ index 2bd80f4db3d..b54cf6986fc 100644
+ GRUB_PE32_MACHINE_I386; + GRUB_PE32_MACHINE_I386;
+#elif defined(__ia64__) +#elif defined(__ia64__)
+ GRUB_PE32_MACHINE_IA64; + GRUB_PE32_MACHINE_IA64;
+#elif defined(__riscv) && (__riscv_xlen == 32)
+ GRUB_PE32_MACHINE_RISCV32;
+#elif defined(__riscv) && (__riscv_xlen == 64)
+ GRUB_PE32_MACHINE_RISCV64;
+#else +#else
+#error this architecture is not supported by grub2 +#error this architecture is not supported by grub2
+#endif +#endif
@ -955,7 +974,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
if (argc == 0) if (argc == 0)
return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected"));
@@ -238,15 +916,45 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -238,15 +920,45 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
address = 0; address = 0;
image_handle = 0; image_handle = 0;
file_path = 0; file_path = 0;
@ -1003,7 +1022,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
if (! dev) if (! dev)
goto fail; goto fail;
@@ -283,17 +991,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -283,17 +995,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
if (! file_path) if (! file_path)
goto fail; goto fail;
@ -1024,7 +1043,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
GRUB_EFI_LOADER_CODE, GRUB_EFI_LOADER_CODE,
@@ -307,7 +1012,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -307,7 +1016,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
} }
boot_image = (void *) ((grub_addr_t) address); boot_image = (void *) ((grub_addr_t) address);
@ -1033,7 +1052,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
{ {
if (grub_errno == GRUB_ERR_NONE) if (grub_errno == GRUB_ERR_NONE)
grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"),
@@ -317,7 +1022,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -317,7 +1026,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
} }
#if defined (__i386__) || defined (__x86_64__) #if defined (__i386__) || defined (__x86_64__)
@ -1042,7 +1061,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
{ {
struct grub_macho_fat_header *head = boot_image; struct grub_macho_fat_header *head = boot_image;
if (head->magic if (head->magic
@@ -326,6 +1031,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -326,6 +1035,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
grub_uint32_t i; grub_uint32_t i;
struct grub_macho_fat_arch *archs struct grub_macho_fat_arch *archs
= (struct grub_macho_fat_arch *) (head + 1); = (struct grub_macho_fat_arch *) (head + 1);
@ -1057,7 +1076,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++)
{ {
if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype))
@@ -340,79 +1053,39 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -340,79 +1057,39 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
> ~grub_cpu_to_le32 (archs[i].size) > ~grub_cpu_to_le32 (archs[i].size)
|| grub_cpu_to_le32 (archs[i].offset) || grub_cpu_to_le32 (archs[i].offset)
+ grub_cpu_to_le32 (archs[i].size) + grub_cpu_to_le32 (archs[i].size)
@ -1154,7 +1173,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
if (dev) if (dev)
grub_device_close (dev); grub_device_close (dev);
@@ -424,6 +1097,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -424,6 +1101,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
if (address) if (address)
efi_call_2 (b->free_pages, address, pages); efi_call_2 (b->free_pages, address, pages);
@ -1165,7 +1184,7 @@ index 2bd80f4db3d..b54cf6986fc 100644
return grub_errno; return grub_errno;
diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
index c24202a5dd1..c8ecce6dfd0 100644 index c24202a5dd..c8ecce6dfd 100644
--- a/grub-core/loader/efi/linux.c --- a/grub-core/loader/efi/linux.c
+++ b/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c
@@ -33,21 +33,34 @@ struct grub_efi_shim_lock @@ -33,21 +33,34 @@ struct grub_efi_shim_lock
@ -1210,7 +1229,7 @@ index c24202a5dd1..c8ecce6dfd0 100644
#pragma GCC diagnostic push #pragma GCC diagnostic push
diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c
index bb2616a8092..6b24cbb9483 100644 index bb2616a809..6b24cbb948 100644
--- a/grub-core/loader/i386/efi/linux.c --- a/grub-core/loader/i386/efi/linux.c
+++ b/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c
@@ -117,6 +117,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), @@ -117,6 +117,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
@ -1278,7 +1297,7 @@ index bb2616a8092..6b24cbb9483 100644
grub_file_close (file); grub_file_close (file);
diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h
index d9ede36773b..0033d9305a9 100644 index d9ede36773..0033d9305a 100644
--- a/include/grub/efi/linux.h --- a/include/grub/efi/linux.h
+++ b/include/grub/efi/linux.h +++ b/include/grub/efi/linux.h
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
@ -1291,7 +1310,7 @@ index d9ede36773b..0033d9305a9 100644
grub_err_t grub_err_t
EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset,
diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h
index 0ed8781f037..a43adf27464 100644 index 0ed8781f03..a43adf2746 100644
--- a/include/grub/efi/pe32.h --- a/include/grub/efi/pe32.h
+++ b/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h
@@ -223,7 +223,11 @@ struct grub_pe64_optional_header @@ -223,7 +223,11 @@ struct grub_pe64_optional_header

@ -4,14 +4,14 @@ Date: Mon, 8 Jul 2019 12:55:29 +0200
Subject: [PATCH] re-write .gitignore Subject: [PATCH] re-write .gitignore
--- ---
.gitignore | 152 ++++++++++++++++++++++++++++++++++++++ .gitignore | 150 ++++++++++++++++++++++++++++++++++++++
docs/.gitignore | 5 ++ docs/.gitignore | 5 ++
grub-core/.gitignore | 16 ++++ grub-core/.gitignore | 16 ++++
grub-core/lib/.gitignore | 1 + grub-core/lib/.gitignore | 1 +
include/grub/gcrypt/.gitignore | 2 + include/grub/gcrypt/.gitignore | 2 +
po/.gitignore | 5 ++ po/.gitignore | 5 ++
util/bash-completion.d/.gitignore | 2 + util/bash-completion.d/.gitignore | 2 +
7 files changed, 183 insertions(+) 7 files changed, 181 insertions(+)
create mode 100644 docs/.gitignore create mode 100644 docs/.gitignore
create mode 100644 grub-core/.gitignore create mode 100644 grub-core/.gitignore
create mode 100644 grub-core/lib/.gitignore create mode 100644 grub-core/lib/.gitignore
@ -20,10 +20,10 @@ Subject: [PATCH] re-write .gitignore
create mode 100644 util/bash-completion.d/.gitignore create mode 100644 util/bash-completion.d/.gitignore
diff --git a/.gitignore b/.gitignore diff --git a/.gitignore b/.gitignore
index f6a1bd05175..594d0134d33 100644 index f6a1bd0517..208d1d2325 100644
--- a/.gitignore --- a/.gitignore
+++ b/.gitignore +++ b/.gitignore
@@ -275,3 +275,155 @@ widthspec.bin @@ -275,3 +275,153 @@ widthspec.bin
/xfs_test /xfs_test
/xzcompress_test /xzcompress_test
/zfs_test /zfs_test
@ -152,8 +152,6 @@ index f6a1bd05175..594d0134d33 100644
+/grub*-reboot.8 +/grub*-reboot.8
+/grub*-render-label +/grub*-render-label
+/grub*-render-label.1 +/grub*-render-label.1
+/grub*-rpm-sort
+/grub*-rpm-sort.8
+/grub*-script-check +/grub*-script-check
+/grub*-script-check.1 +/grub*-script-check.1
+/grub*-set-bootflag +/grub*-set-bootflag
@ -181,7 +179,7 @@ index f6a1bd05175..594d0134d33 100644
+/widthspec.h +/widthspec.h
diff --git a/docs/.gitignore b/docs/.gitignore diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..e1d849ef95b index 0000000000..e1d849ef95
--- /dev/null --- /dev/null
+++ b/docs/.gitignore +++ b/docs/.gitignore
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
@ -192,7 +190,7 @@ index 00000000000..e1d849ef95b
+/version*.texi +/version*.texi
diff --git a/grub-core/.gitignore b/grub-core/.gitignore diff --git a/grub-core/.gitignore b/grub-core/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..2acce281159 index 0000000000..2acce28115
--- /dev/null --- /dev/null
+++ b/grub-core/.gitignore +++ b/grub-core/.gitignore
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
@ -214,14 +212,14 @@ index 00000000000..2acce281159
+/trigtables.c +/trigtables.c
diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..68154591404 index 0000000000..6815459140
--- /dev/null --- /dev/null
+++ b/grub-core/lib/.gitignore +++ b/grub-core/lib/.gitignore
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+/libgcrypt-grub/ +/libgcrypt-grub/
diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..8fbf5646246 index 0000000000..8fbf564624
--- /dev/null --- /dev/null
+++ b/include/grub/gcrypt/.gitignore +++ b/include/grub/gcrypt/.gitignore
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
@ -229,7 +227,7 @@ index 00000000000..8fbf5646246
+gcrypt.h +gcrypt.h
diff --git a/po/.gitignore b/po/.gitignore diff --git a/po/.gitignore b/po/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..f507e7741e3 index 0000000000..f507e7741e
--- /dev/null --- /dev/null
+++ b/po/.gitignore +++ b/po/.gitignore
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
@ -240,7 +238,7 @@ index 00000000000..f507e7741e3
+/stamp-po +/stamp-po
diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore
new file mode 100644 new file mode 100644
index 00000000000..6813a527ad3 index 0000000000..6813a527ad
--- /dev/null --- /dev/null
+++ b/util/bash-completion.d/.gitignore +++ b/util/bash-completion.d/.gitignore
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@

@ -7,16 +7,20 @@ This is an implementation of IBM client architecture (CAS) reboot for GRUB.
There are cases where the POWER firmware must reboot in order to support There are cases where the POWER firmware must reboot in order to support
specific features requested by a kernel. The kernel calls specific features requested by a kernel. The kernel calls
ibm,client-architecture-support and it may either return or reboot with the new ibm,client-architecture-support and it may either return or reboot with
feature set. eg: the new feature set. eg:
Calling ibm,client-architecture-support.../ Calling ibm,client-architecture-support.../
Elapsed time since release of system processors: 70959 mins 50 secs Elapsed time since release of system processors: 70959 mins 50 secs
Welcome to GRUB! Welcome to GRUB!
Instead of return to the GRUB menu, it will check if the flag for CAS reboot is Instead of return to the GRUB menu, it will check if the flag for CAS
set. If so, grub will automatically boot the last booted kernel using the same reboot is set. If so, grub will automatically boot the last booted
parameters kernel using the same parameters
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
[rharwood@redhat.com: commit message rewrap]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/kern/ieee1275/openfw.c | 63 ++++++++++++++++++++++++++++++++++++++++ grub-core/kern/ieee1275/openfw.c | 63 ++++++++++++++++++++++++++++++++++++++++
grub-core/normal/main.c | 19 ++++++++++++ grub-core/normal/main.c | 19 ++++++++++++
@ -25,7 +29,7 @@ parameters
4 files changed, 91 insertions(+) 4 files changed, 91 insertions(+)
diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c
index 4d493ab7661..3a6689abb11 100644 index 4d493ab766..3a6689abb1 100644
--- a/grub-core/kern/ieee1275/openfw.c --- a/grub-core/kern/ieee1275/openfw.c
+++ b/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c
@@ -591,3 +591,66 @@ grub_ieee1275_get_boot_dev (void) @@ -591,3 +591,66 @@ grub_ieee1275_get_boot_dev (void)
@ -96,7 +100,7 @@ index 4d493ab7661..3a6689abb11 100644
+ return 0; + return 0;
+} +}
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index c4ebe9e22ad..70614de1565 100644 index c4ebe9e22a..70614de156 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -34,6 +34,9 @@ @@ -34,6 +34,9 @@
@ -133,7 +137,7 @@ index c4ebe9e22ad..70614de1565 100644
grub_errno = GRUB_ERR_NONE; grub_errno = GRUB_ERR_NONE;
} }
diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c
index 25158407dd8..ad80399246a 100644 index 25158407dd..ad80399246 100644
--- a/grub-core/script/execute.c --- a/grub-core/script/execute.c
+++ b/grub-core/script/execute.c +++ b/grub-core/script/execute.c
@@ -28,6 +28,9 @@ @@ -28,6 +28,9 @@
@ -158,7 +162,7 @@ index 25158407dd8..ad80399246a 100644
{ {
char *line; char *line;
diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h
index 73e2f464475..0a599607f31 100644 index 73e2f46447..0a599607f3 100644
--- a/include/grub/ieee1275/ieee1275.h --- a/include/grub/ieee1275/ieee1275.h
+++ b/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h
@@ -254,6 +254,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali @@ -254,6 +254,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali

@ -10,12 +10,14 @@ This should fix this bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=908519 https://bugzilla.redhat.com/show_bug.cgi?id=908519
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/term/terminfo.c | 2 +- grub-core/term/terminfo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c
index 85ecf06b4df..05c88dcf49e 100644 index 85ecf06b4d..05c88dcf49 100644
--- a/grub-core/term/terminfo.c --- a/grub-core/term/terminfo.c
+++ b/grub-core/term/terminfo.c +++ b/grub-core/term/terminfo.c
@@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, @@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term,

@ -5,6 +5,9 @@ Subject: [PATCH] Disable GRUB video support for IBM power machines
Should fix the problem in bugzilla: Should fix the problem in bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=973205 https://bugzilla.redhat.com/show_bug.cgi?id=973205
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/kern/ieee1275/cmain.c | 5 ++++- grub-core/kern/ieee1275/cmain.c | 5 ++++-
grub-core/video/ieee1275.c | 9 ++++++--- grub-core/video/ieee1275.c | 9 ++++++---
@ -12,7 +15,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=973205
3 files changed, 12 insertions(+), 4 deletions(-) 3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c
index 20cbbd761ec..04df9d2c667 100644 index 20cbbd761e..04df9d2c66 100644
--- a/grub-core/kern/ieee1275/cmain.c --- a/grub-core/kern/ieee1275/cmain.c
+++ b/grub-core/kern/ieee1275/cmain.c +++ b/grub-core/kern/ieee1275/cmain.c
@@ -90,7 +90,10 @@ grub_ieee1275_find_options (void) @@ -90,7 +90,10 @@ grub_ieee1275_find_options (void)
@ -28,7 +31,7 @@ index 20cbbd761ec..04df9d2c667 100644
/* Old Macs have no key repeat, newer ones have fully working one. /* Old Macs have no key repeat, newer ones have fully working one.
The ones inbetween when repeated key generates an escaoe sequence The ones inbetween when repeated key generates an escaoe sequence
diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c
index 17a3dbbb575..b8e4b3feb32 100644 index 17a3dbbb57..b8e4b3feb3 100644
--- a/grub-core/video/ieee1275.c --- a/grub-core/video/ieee1275.c
+++ b/grub-core/video/ieee1275.c +++ b/grub-core/video/ieee1275.c
@@ -352,9 +352,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter = @@ -352,9 +352,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter =
@ -48,7 +51,7 @@ index 17a3dbbb575..b8e4b3feb32 100644
GRUB_MOD_FINI(ieee1275_fb) GRUB_MOD_FINI(ieee1275_fb)
diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h
index 0a599607f31..b5a1d49bbc3 100644 index 0a599607f3..b5a1d49bbc 100644
--- a/include/grub/ieee1275/ieee1275.h --- a/include/grub/ieee1275/ieee1275.h
+++ b/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h
@@ -148,6 +148,8 @@ enum grub_ieee1275_flag @@ -148,6 +148,8 @@ enum grub_ieee1275_flag

@ -3,8 +3,11 @@ From: Mark Hamzy <hamzy@us.ibm.com>
Date: Wed, 28 Mar 2012 14:46:41 -0500 Date: Wed, 28 Mar 2012 14:46:41 -0500
Subject: [PATCH] Migrate PPC from Yaboot to Grub2 Subject: [PATCH] Migrate PPC from Yaboot to Grub2
Add configuration support for serial terminal consoles. This will set the Add configuration support for serial terminal consoles. This will set
maximum screen size so that text is not overwritten. the maximum screen size so that text is not overwritten.
Signed-off-by: Mark Hamzy <hamzy@us.ibm.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
Makefile.util.def | 7 +++ Makefile.util.def | 7 +++
util/grub.d/20_ppc_terminfo.in | 114 +++++++++++++++++++++++++++++++++++++++++ util/grub.d/20_ppc_terminfo.in | 114 +++++++++++++++++++++++++++++++++++++++++
@ -12,7 +15,7 @@ maximum screen size so that text is not overwritten.
create mode 100644 util/grub.d/20_ppc_terminfo.in create mode 100644 util/grub.d/20_ppc_terminfo.in
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index f8b356cc1fa..2c9b283a230 100644 index f8b356cc1f..2c9b283a23 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -508,6 +508,13 @@ script = { @@ -508,6 +508,13 @@ script = {
@ -31,7 +34,7 @@ index f8b356cc1fa..2c9b283a230 100644
common = util/grub.d/30_os-prober.in; common = util/grub.d/30_os-prober.in;
diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/20_ppc_terminfo.in diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/20_ppc_terminfo.in
new file mode 100644 new file mode 100644
index 00000000000..10d66586820 index 0000000000..10d6658682
--- /dev/null --- /dev/null
+++ b/util/grub.d/20_ppc_terminfo.in +++ b/util/grub.d/20_ppc_terminfo.in
@@ -0,0 +1,114 @@ @@ -0,0 +1,114 @@

@ -8,13 +8,16 @@ found. It was originally written by Matthew Garrett, and adapted to fix the
"No modules are loaded on grub2 network boot" issue: "No modules are loaded on grub2 network boot" issue:
https://bugzilla.redhat.com/show_bug.cgi?id=857936 https://bugzilla.redhat.com/show_bug.cgi?id=857936
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/kern/main.c | 13 ++++++------- grub-core/kern/main.c | 13 ++++++-------
grub-core/normal/main.c | 25 ++++++++++++++++++++++++- grub-core/normal/main.c | 25 ++++++++++++++++++++++++-
2 files changed, 30 insertions(+), 8 deletions(-) 2 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
index 73967e2f5b0..d1de9fa6873 100644 index 73967e2f5b..d1de9fa687 100644
--- a/grub-core/kern/main.c --- a/grub-core/kern/main.c
+++ b/grub-core/kern/main.c +++ b/grub-core/kern/main.c
@@ -128,16 +128,15 @@ grub_set_prefix_and_root (void) @@ -128,16 +128,15 @@ grub_set_prefix_and_root (void)
@ -41,7 +44,7 @@ index 73967e2f5b0..d1de9fa6873 100644
} }
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 70614de1565..62571e6dfcc 100644 index 70614de156..62571e6dfc 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -339,7 +339,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -339,7 +339,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),

@ -1,176 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Wed, 15 May 2013 13:30:20 -0400
Subject: [PATCH] Don't write messages to the screen
Writing messages to the screen before the menus or boot splash
happens so quickly it looks like something is wrong and isn't
very appealing.
---
grub-core/gettext/gettext.c | 25 +++++--------------------
grub-core/kern/main.c | 5 -----
grub-core/boot/i386/pc/boot.S | 3 ---
grub-core/boot/i386/pc/diskboot.S | 5 -----
util/grub.d/10_linux.in | 7 -------
5 files changed, 5 insertions(+), 40 deletions(-)
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
index 4d02e62c109..84d520cd494 100644
--- a/grub-core/gettext/gettext.c
+++ b/grub-core/gettext/gettext.c
@@ -434,16 +434,12 @@ static char *
grub_gettext_env_write_lang (struct grub_env_var *var
__attribute__ ((unused)), const char *val)
{
- grub_err_t err;
+ grub_err_t __attribute__((__unused__)) err;
err = grub_gettext_init_ext (&main_context, val, grub_env_get ("locale_dir"),
grub_env_get ("prefix"));
- if (err)
- grub_print_error ();
err = grub_gettext_init_ext (&secondary_context, val,
grub_env_get ("secondary_locale_dir"), 0);
- if (err)
- grub_print_error ();
return grub_strdup (val);
}
@@ -451,23 +447,19 @@ grub_gettext_env_write_lang (struct grub_env_var *var
void
grub_gettext_reread_prefix (const char *val)
{
- grub_err_t err;
+ grub_err_t __attribute__((__unused__)) err;
err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"),
grub_env_get ("locale_dir"),
val);
- if (err)
- grub_print_error ();
}
static char *
read_main (struct grub_env_var *var
__attribute__ ((unused)), const char *val)
{
- grub_err_t err;
+ grub_err_t __attribute__((__unused__)) err;
err = grub_gettext_init_ext (&main_context, grub_env_get ("lang"), val,
grub_env_get ("prefix"));
- if (err)
- grub_print_error ();
return grub_strdup (val);
}
@@ -475,12 +467,9 @@ static char *
read_secondary (struct grub_env_var *var
__attribute__ ((unused)), const char *val)
{
- grub_err_t err;
+ grub_err_t __attribute__((__unused__)) err;
err = grub_gettext_init_ext (&secondary_context, grub_env_get ("lang"), val,
0);
- if (err)
- grub_print_error ();
-
return grub_strdup (val);
}
@@ -500,18 +489,14 @@ grub_cmd_translate (grub_command_t cmd __attribute__ ((unused)),
GRUB_MOD_INIT (gettext)
{
const char *lang;
- grub_err_t err;
+ grub_err_t __attribute__((__unused__)) err;
lang = grub_env_get ("lang");
err = grub_gettext_init_ext (&main_context, lang, grub_env_get ("locale_dir"),
grub_env_get ("prefix"));
- if (err)
- grub_print_error ();
err = grub_gettext_init_ext (&secondary_context, lang,
grub_env_get ("secondary_locale_dir"), 0);
- if (err)
- grub_print_error ();
grub_register_variable_hook ("locale_dir", NULL, read_main);
grub_register_variable_hook ("secondary_locale_dir", NULL, read_secondary);
diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
index d1de9fa6873..48058d983ce 100644
--- a/grub-core/kern/main.c
+++ b/grub-core/kern/main.c
@@ -269,11 +269,6 @@ grub_main (void)
grub_boot_time ("After machine init.");
- /* Hello. */
- grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT);
- grub_printf ("Welcome to GRUB!\n\n");
- grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
-
/* Init verifiers API. */
grub_verifiers_init ();
diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S
index 2bd0b2d2866..ea167fe1206 100644
--- a/grub-core/boot/i386/pc/boot.S
+++ b/grub-core/boot/i386/pc/boot.S
@@ -249,9 +249,6 @@ real_start:
/* save drive reference first thing! */
pushw %dx
- /* print a notification message on the screen */
- MSG(notification_string)
-
/* set %si to the disk address packet */
movw $disk_address_packet, %si
diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S
index c1addc0df29..68d31de0c4c 100644
--- a/grub-core/boot/i386/pc/diskboot.S
+++ b/grub-core/boot/i386/pc/diskboot.S
@@ -50,11 +50,6 @@ _start:
/* save drive reference first thing! */
pushw %dx
- /* print a notification message on the screen */
- pushw %si
- MSG(notification_string)
- popw %si
-
/* this sets up for the first run through "bootloop" */
movw $LOCAL(firstlist), %di
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index dc75a1c30bf..ad2ac4b078d 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -138,27 +138,20 @@ linux_entry ()
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
fi
- message="$(gettext_printf "Loading Linux %s ..." ${version})"
sed "s/^/$submenu_indentation/" << EOF
- echo '$(echo "$message" | grub_quote)'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
EOF
if test -n "${initrd}" ; then
- # TRANSLATORS: ramdisk isn't identifier. Should be translated.
- message="$(gettext_printf "Loading initial ramdisk ...")"
initrd_path=
for i in ${initrd}; do
initrd_path="${initrd_path} ${rel_dirname}/${i}"
done
sed "s/^/$submenu_indentation/" << EOF
- echo '$(echo "$message" | grub_quote)'
initrd $(echo $initrd_path)
EOF
fi
if test -n "${fdt}" ; then
- message="$(gettext_printf "Loading fdt ...")"
sed "s/^/$submenu_indentation/" << EOF
- echo '$(echo "$message" | grub_quote)'
devicetree ${rel_dirname}/${fdt}
EOF
fi

@ -9,7 +9,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
index 93a90233ead..858b526c925 100644 index 93a90233ea..858b526c92 100644
--- a/util/grub.d/00_header.in --- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in
@@ -43,6 +43,8 @@ if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_ @@ -43,6 +43,8 @@ if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_

@ -1,42 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Wed, 15 May 2013 13:53:48 -0400
Subject: [PATCH] Don't print GNU GRUB header
No one cares.
---
grub-core/normal/main.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 7ca2e5400b1..5d5f7b539f5 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -208,15 +208,16 @@ read_config_file (const char *config)
/* Initialize the screen. */
void
grub_normal_init_page (struct grub_term_output *term,
- int y)
+ int y __attribute__((__unused__)))
{
+ grub_term_cls (term);
+
+#if 0
grub_ssize_t msg_len;
int posx;
char *msg_formatted;
grub_uint32_t *unicode_msg;
grub_uint32_t *last_position;
-
- grub_term_cls (term);
msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION);
if (!msg_formatted)
@@ -241,6 +242,7 @@ grub_normal_init_page (struct grub_term_output *term,
grub_putcode ('\n', term);
grub_putcode ('\n', term);
grub_free (unicode_msg);
+#endif
}
static void

@ -0,0 +1,85 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 14 Mar 2011 14:27:42 -0400
Subject: [PATCH] Don't say "GNU/Linux" in generated menus.
[rharwood: say it even less]
---
grub-core/normal/main.c | 2 +-
tests/util/grub-shell-tester.in | 2 +-
tests/util/grub-shell.in | 2 +-
util/grub.d/10_linux.in | 4 ++--
util/grub.d/20_linux_xen.in | 4 ++--
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 7ca2e5400b..98372217ad 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -218,7 +218,7 @@ grub_normal_init_page (struct grub_term_output *term,
grub_term_cls (term);
- msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION);
+ msg_formatted = grub_xasprintf (_("GRUB version %s"), PACKAGE_VERSION);
if (!msg_formatted)
return;
diff --git a/tests/util/grub-shell-tester.in b/tests/util/grub-shell-tester.in
index 8a87109b15..9a4319d4f4 100644
--- a/tests/util/grub-shell-tester.in
+++ b/tests/util/grub-shell-tester.in
@@ -56,7 +56,7 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
+ echo "$0 (GRUB ${PACKAGE_VERSION})"
exit 0 ;;
--modules=*)
ms=`echo "$option" | sed -e 's/--modules=//'`
diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index 93e9f51484..ec1182bf93 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -209,7 +209,7 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
+ echo "$0 (GRUB ${PACKAGE_VERSION})"
exit 0 ;;
--trim)
trim=1
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index dc75a1c30b..4a499c53a6 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@"
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release)"
else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+ OS="${GRUB_DISTRIBUTOR}"
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index 3b1f470492..ada20775a1 100644
--- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in
@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@"
CLASS="--class gnu-linux --class gnu --class os --class xen"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release)"
else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+ OS="${GRUB_DISTRIBUTOR}"
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi

@ -8,7 +8,7 @@ Subject: [PATCH] Add .eh_frame to list of relocations stripped
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conf/Makefile.common b/conf/Makefile.common diff --git a/conf/Makefile.common b/conf/Makefile.common
index 2a1a886f6d5..191b1a70c6b 100644 index 2a1a886f6d..191b1a70c6 100644
--- a/conf/Makefile.common --- a/conf/Makefile.common
+++ b/conf/Makefile.common +++ b/conf/Makefile.common
@@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding @@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding

@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Wed, 15 May 2013 17:49:45 -0400
Subject: [PATCH] Don't add '*' to highlighted row
It is already highlighted.
---
grub-core/normal/menu_text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index 18240e76cea..65deafda531 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -242,7 +242,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry,
unicode_title[i] = ' ';
if (data->geo.num_entries > 1)
- grub_putcode (highlight ? '*' : ' ', data->term);
+ grub_putcode (' ', data->term);
grub_print_ucs4_menu (unicode_title,
unicode_title + len,

@ -14,7 +14,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 4fc58c83304..635d2fe0cd3 100644 index 4a499c53a6..cf8d118698 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -26,7 +26,7 @@ datarootdir="@datarootdir@" @@ -26,7 +26,7 @@ datarootdir="@datarootdir@"

@ -1,68 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 11:09:04 -0400
Subject: [PATCH] Message string cleanups
Make use of terminology consistent. Remove jargon.
---
grub-core/normal/menu_text.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index 65deafda531..cc5837ed2b8 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -157,9 +157,8 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run)
if (edit)
{
- ret += grub_print_message_indented_real (_("Minimum Emacs-like screen editing is \
-supported. TAB lists completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for a \
-command-line or ESC to discard edits and return to the GRUB menu."),
+ ret += grub_print_message_indented_real (_("Press Ctrl-x or F10 to start, Ctrl-c or F2 for a \
+command prompt or Escape to discard edits and return to the menu. Pressing Tab lists possible completions."),
STANDARD_MARGIN, STANDARD_MARGIN,
term, dry_run);
}
@@ -167,8 +166,8 @@ command-line or ESC to discard edits and return to the GRUB menu."),
{
char *msg_translated;
- msg_translated = grub_xasprintf (_("Use the %C and %C keys to select which "
- "entry is highlighted."),
+ msg_translated = grub_xasprintf (_("Use the %C and %C keys to change the "
+ "selection."),
GRUB_UNICODE_UPARROW,
GRUB_UNICODE_DOWNARROW);
if (!msg_translated)
@@ -181,17 +180,15 @@ command-line or ESC to discard edits and return to the GRUB menu."),
if (nested)
{
ret += grub_print_message_indented_real
- (_("Press enter to boot the selected OS, "
- "`e' to edit the commands before booting "
- "or `c' for a command-line. ESC to return previous menu."),
+ (_("Press 'e' to edit the selected item, "
+ "or 'c' for a command prompt. Press Escape to return to the previous menu."),
STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run);
}
else
{
ret += grub_print_message_indented_real
- (_("Press enter to boot the selected OS, "
- "`e' to edit the commands before booting "
- "or `c' for a command-line."),
+ (_("Press 'e' to edit the selected item, "
+ "or 'c' for a command prompt."),
STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run);
}
}
@@ -443,7 +440,7 @@ menu_text_print_timeout (int timeout, void *dataptr)
|| data->timeout_msg == TIMEOUT_TERSE_NO_MARGIN)
msg_translated = grub_xasprintf (_("%ds"), timeout);
else
- msg_translated = grub_xasprintf (_("The highlighted entry will be executed automatically in %ds."), timeout);
+ msg_translated = grub_xasprintf (_("The selected entry will be started automatically in %ds."), timeout);
if (!msg_translated)
{
grub_print_error ();

@ -1,29 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 14:08:23 -0400
Subject: [PATCH] Fix border spacing now that we aren't displaying it
---
grub-core/normal/menu_text.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index cc5837ed2b8..b49835a9af7 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -331,12 +331,12 @@ grub_menu_init_page (int nested, int edit,
int empty_lines = 1;
int version_msg = 1;
- geo->border = 1;
- geo->first_entry_x = 1 /* margin */ + 1 /* border */;
+ geo->border = 0;
+ geo->first_entry_x = 0 /* margin */ + 0 /* border */;
geo->entry_width = grub_term_width (term) - 5;
geo->first_entry_y = 2 /* two empty lines*/
- + 1 /* GNU GRUB version text */ + 1 /* top border */;
+ + 0 /* GNU GRUB version text */ + 1 /* top border */;
geo->timeout_lines = 2;

@ -17,10 +17,10 @@ Signed-off-by: Mark Salter <msalter@redhat.com>
1 file changed, 3 insertions(+), 2 deletions(-) 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index ec1cd257397..d85f7598d23 100644 index 98372217ad..bf24e65713 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -349,7 +349,7 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -347,7 +347,7 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
char *config; char *config;
const char *prefix, *fw_path; const char *prefix, *fw_path;
@ -29,7 +29,7 @@ index ec1cd257397..d85f7598d23 100644
if (fw_path) if (fw_path)
{ {
config = grub_xasprintf ("%s/grub.cfg", fw_path); config = grub_xasprintf ("%s/grub.cfg", fw_path);
@@ -372,7 +372,8 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -370,7 +370,8 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
} }
} }

@ -9,10 +9,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 51 insertions(+), 46 deletions(-) 1 file changed, 51 insertions(+), 46 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index d85f7598d23..1e509fceb91 100644 index bf24e65713..0a99768f75 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -347,61 +347,66 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -345,61 +345,66 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
/* Guess the config filename. It is necessary to make CONFIG static, /* Guess the config filename. It is necessary to make CONFIG static,
so that it won't get broken by longjmp. */ so that it won't get broken by longjmp. */
char *config; char *config;

@ -1,25 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 14:08:49 -0400
Subject: [PATCH] Use the correct indentation for the term help text
That is consistent with the menu help text
---
grub-core/normal/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 5d5f7b539f5..ec1cd257397 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -440,8 +440,8 @@ grub_normal_reader_init (int nested)
grub_normal_init_page (term, 1);
grub_term_setcursor (term, 1);
- if (grub_term_width (term) > 3 + STANDARD_MARGIN + 20)
- grub_print_message_indented (msg_formatted, 3, STANDARD_MARGIN, term);
+ if (grub_term_width (term) > 2 * STANDARD_MARGIN + 20)
+ grub_print_message_indented (msg_formatted, STANDARD_MARGIN, STANDARD_MARGIN, term);
else
grub_print_message_indented (msg_formatted, 0, 0, term);
grub_putcode ('\n', term);

@ -14,7 +14,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 2 insertions(+), 1 deletion(-) 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 635d2fe0cd3..fed73271478 100644 index cf8d118698..5f6d3c8d52 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -29,7 +29,8 @@ export TEXTDOMAINDIR="@localedir@" @@ -29,7 +29,8 @@ export TEXTDOMAINDIR="@localedir@"

@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 14:30:55 -0400
Subject: [PATCH] Indent menu entries
---
grub-core/normal/menu_text.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index b49835a9af7..6a57376fa80 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -239,7 +239,8 @@ print_entry (int y, int highlight, grub_menu_entry_t entry,
unicode_title[i] = ' ';
if (data->geo.num_entries > 1)
- grub_putcode (' ', data->term);
+ for (i = 0; i < STANDARD_MARGIN; i++)
+ grub_putcode (' ', data->term);
grub_print_ucs4_menu (unicode_title,
unicode_title + len,

@ -1,34 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 14:59:36 -0400
Subject: [PATCH] Fix margins
---
grub-core/normal/menu_text.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index 6a57376fa80..cbd62f714cb 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -333,17 +333,15 @@ grub_menu_init_page (int nested, int edit,
int version_msg = 1;
geo->border = 0;
- geo->first_entry_x = 0 /* margin */ + 0 /* border */;
- geo->entry_width = grub_term_width (term) - 5;
+ geo->first_entry_x = 0; /* no margin */
+ geo->entry_width = grub_term_width (term) - 1;
- geo->first_entry_y = 2 /* two empty lines*/
- + 0 /* GNU GRUB version text */ + 1 /* top border */;
+ geo->first_entry_y = 3; /* three empty lines*/
geo->timeout_lines = 2;
/* 3 lines for timeout message and bottom margin. 2 lines for the border. */
geo->num_entries = grub_term_height (term) - geo->first_entry_y
- - 1 /* bottom border */
- 1 /* empty line before info message*/
- geo->timeout_lines /* timeout */
- 1 /* empty final line */;

@ -10,7 +10,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 8 insertions(+) 1 file changed, 8 insertions(+)
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
index 301d1ac229a..0f6505bf3b6 100644 index 301d1ac229..0f6505bf3b 100644
--- a/util/grub-mkconfig_lib.in --- a/util/grub-mkconfig_lib.in
+++ b/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in
@@ -253,6 +253,14 @@ version_test_gt () @@ -253,6 +253,14 @@ version_test_gt ()

@ -13,7 +13,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
3 files changed, 82 insertions(+), 82 deletions(-) 3 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
index e71d1584164..0cd2a627231 100644 index e71d158416..0cd2a62723 100644
--- a/grub-core/kern/ieee1275/init.c --- a/grub-core/kern/ieee1275/init.c
+++ b/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c
@@ -127,23 +127,25 @@ grub_machine_get_bootlocation (char **device, char **path) @@ -127,23 +127,25 @@ grub_machine_get_bootlocation (char **device, char **path)
@ -56,7 +56,7 @@ index e71d1584164..0cd2a627231 100644
} }
diff --git a/grub-core/net/net.c b/grub-core/net/net.c diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 4d3eb5c1a52..0ef148f4adc 100644 index 4d3eb5c1a5..0ef148f4ad 100644
--- a/grub-core/net/net.c --- a/grub-core/net/net.c
+++ b/grub-core/net/net.c +++ b/grub-core/net/net.c
@@ -1869,7 +1869,7 @@ grub_net_search_config_file (char *config) @@ -1869,7 +1869,7 @@ grub_net_search_config_file (char *config)
@ -69,10 +69,10 @@ index 4d3eb5c1a52..0ef148f4adc 100644
static struct grub_preboot *fini_hnd; static struct grub_preboot *fini_hnd;
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index 1e509fceb91..d5968797f4f 100644 index 0a99768f75..55558cc0b9 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -337,81 +337,79 @@ grub_enter_normal_mode (const char *config) @@ -335,81 +335,79 @@ grub_enter_normal_mode (const char *config)
grub_boot_time ("Exiting normal mode"); grub_boot_time ("Exiting normal mode");
} }

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Fri, 21 Jun 2013 14:44:08 -0400
Subject: [PATCH] Use -2 instead of -1 for our right-hand margin, so
linewrapping works (#976643).
Signed-off-by: Peter Jones <grub2-owner@fedoraproject.org>
---
grub-core/normal/menu_text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index cbd62f714cb..26e9e82042a 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -334,7 +334,7 @@ grub_menu_init_page (int nested, int edit,
geo->border = 0;
geo->first_entry_x = 0; /* no margin */
- geo->entry_width = grub_term_width (term) - 1;
+ geo->entry_width = grub_term_width (term) - 2;
geo->first_entry_y = 3; /* three empty lines*/

@ -12,7 +12,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 27 insertions(+), 7 deletions(-) 1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index fed73271478..2e59f3b4197 100644 index 5f6d3c8d52..786dbabb4a 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -78,6 +78,32 @@ case x"$GRUB_FS" in @@ -78,6 +78,32 @@ case x"$GRUB_FS" in

@ -13,21 +13,23 @@ Signed-off-by: Robert Marshall <rmarshall@redhat.com>
[pjones: fix the efidir in grub-setpassword and rename tool] [pjones: fix the efidir in grub-setpassword and rename tool]
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
[luto: fix grub-setpassword -o's output path] [luto: fix grub-setpassword -o's output path]
Andy Lutomirski <luto@kernel.org> Signed-off-by: Andy Lutomirski <luto@kernel.org>
[rharwood: migrate man page to h2m, context]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
configure.ac | 1 + configure.ac | 1 +
Makefile.util.def | 13 +++++ Makefile.util.def | 13 +++++
util/grub-mkconfig.in | 2 + docs/man/grub-set-password.h2m | 2 +
util/grub-set-password.8 | 28 ++++++++++ util/grub-mkconfig.in | 2 +
util/grub-set-password.in | 128 ++++++++++++++++++++++++++++++++++++++++++++++ util/grub-set-password.in | 128 +++++++++++++++++++++++++++++++++++++++++
util/grub.d/01_users.in | 11 ++++ util/grub.d/01_users.in | 11 ++++
6 files changed, 183 insertions(+) 6 files changed, 157 insertions(+)
create mode 100644 util/grub-set-password.8 create mode 100644 docs/man/grub-set-password.h2m
create mode 100644 util/grub-set-password.in create mode 100644 util/grub-set-password.in
create mode 100644 util/grub.d/01_users.in create mode 100644 util/grub.d/01_users.in
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index fdcb452581c..30fd84d8067 100644 index 8331f95b64..7f59ad788f 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -72,6 +72,7 @@ grub_TRANSFORM([grub-mkrelpath]) @@ -72,6 +72,7 @@ grub_TRANSFORM([grub-mkrelpath])
@ -35,11 +37,11 @@ index fdcb452581c..30fd84d8067 100644
grub_TRANSFORM([grub-probe]) grub_TRANSFORM([grub-probe])
grub_TRANSFORM([grub-reboot]) grub_TRANSFORM([grub-reboot])
+grub_TRANSFORM([grub-set-password]) +grub_TRANSFORM([grub-set-password])
grub_TRANSFORM([grub-rpm-sort])
grub_TRANSFORM([grub-script-check]) grub_TRANSFORM([grub-script-check])
grub_TRANSFORM([grub-set-default]) grub_TRANSFORM([grub-set-default])
grub_TRANSFORM([grub-sparc64-setup])
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index ba4cf4b29b0..1a7dd433e33 100644 index 2c9b283a23..4ee22c5daa 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -452,6 +452,12 @@ script = { @@ -452,6 +452,12 @@ script = {
@ -55,7 +57,7 @@ index ba4cf4b29b0..1a7dd433e33 100644
script = { script = {
name = '10_windows'; name = '10_windows';
common = util/grub.d/10_windows.in; common = util/grub.d/10_windows.in;
@@ -740,6 +746,13 @@ script = { @@ -724,6 +730,13 @@ script = {
installdir = sbin; installdir = sbin;
}; };
@ -69,8 +71,16 @@ index ba4cf4b29b0..1a7dd433e33 100644
script = { script = {
name = grub-mkconfig_lib; name = grub-mkconfig_lib;
common = util/grub-mkconfig_lib.in; common = util/grub-mkconfig_lib.in;
diff --git a/docs/man/grub-set-password.h2m b/docs/man/grub-set-password.h2m
new file mode 100644
index 0000000000..10ee82f4d5
--- /dev/null
+++ b/docs/man/grub-set-password.h2m
@@ -0,0 +1,2 @@
+[NAME]
+grub-set-password \- generate the user.cfg file containing the hashed grub bootloader password
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 8ea2315ebc2..ba14cf6261c 100644 index 8ea2315ebc..ba14cf6261 100644
--- a/util/grub-mkconfig.in --- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in
@@ -276,6 +276,8 @@ for i in "${grub_mkconfig_dir}"/* ; do @@ -276,6 +276,8 @@ for i in "${grub_mkconfig_dir}"/* ; do
@ -82,43 +92,9 @@ index 8ea2315ebc2..ba14cf6261c 100644
*) *)
if grub_file_is_not_garbage "$i" && test -x "$i" ; then if grub_file_is_not_garbage "$i" && test -x "$i" ; then
echo echo
diff --git a/util/grub-set-password.8 b/util/grub-set-password.8
new file mode 100644
index 00000000000..9646546e43d
--- /dev/null
+++ b/util/grub-set-password.8
@@ -0,0 +1,28 @@
+.TH GRUB-SET-PASSWORD 3 "Thu Jun 25 2015"
+.SH NAME
+\fBgrub-set-password\fR \(em Generate the user.cfg file containing the hashed grub bootloader password.
+
+.SH SYNOPSIS
+\fBgrub-set-password\fR [OPTION]
+
+.SH DESCRIPTION
+\fBgrub-set-password\fR outputs the user.cfg file which contains the hashed GRUB bootloader password. This utility only supports configurations where there is a single root user.
+
+The file has the format:
+GRUB2_PASSWORD=<\fIhashed password\fR>.
+
+.SH OPTIONS
+.TP
+-h, --help
+Display program usage and exit.
+.TP
+-v, --version
+Display the current version.
+.TP
+-o, --output=<\fIDIRECTORY\fR>
+Choose the file path to which user.cfg will be written.
+
+.SH SEE ALSO
+.BR "info grub"
+
+.BR "info grub2-mkpasswd-pbkdf2"
diff --git a/util/grub-set-password.in b/util/grub-set-password.in diff --git a/util/grub-set-password.in b/util/grub-set-password.in
new file mode 100644 new file mode 100644
index 00000000000..5ebf50576d6 index 0000000000..5ebf50576d
--- /dev/null --- /dev/null
+++ b/util/grub-set-password.in +++ b/util/grub-set-password.in
@@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
@ -252,7 +228,7 @@ index 00000000000..5ebf50576d6
+fi +fi
diff --git a/util/grub.d/01_users.in b/util/grub.d/01_users.in diff --git a/util/grub.d/01_users.in b/util/grub.d/01_users.in
new file mode 100644 new file mode 100644
index 00000000000..db2f44bfb78 index 0000000000..db2f44bfb7
--- /dev/null --- /dev/null
+++ b/util/grub.d/01_users.in +++ b/util/grub.d/01_users.in
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 28 Oct 2013 10:13:27 -0400
Subject: [PATCH] F10 doesn't work on serial, so don't tell the user to hit it
(#987443)
Signed-off-by: Peter Jones <pjones@redhat.com>
---
grub-core/normal/menu_text.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index 26e9e82042a..4895ffe7d1d 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -157,7 +157,7 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run)
if (edit)
{
- ret += grub_print_message_indented_real (_("Press Ctrl-x or F10 to start, Ctrl-c or F2 for a \
+ ret += grub_print_message_indented_real (_("Press Ctrl-x to start, Ctrl-c for a \
command prompt or Escape to discard edits and return to the menu. Pressing Tab lists possible completions."),
STANDARD_MARGIN, STANDARD_MARGIN,
term, dry_run);

@ -1,42 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 14 Mar 2011 14:27:42 -0400
Subject: [PATCH] Don't say "GNU/Linux" in generated menus.
---
util/grub.d/10_linux.in | 4 ++--
util/grub.d/20_linux_xen.in | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index ad2ac4b078d..4fc58c83304 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@"
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release)"
else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+ OS="${GRUB_DISTRIBUTOR}"
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index 3b1f4704921..ada20775a14 100644
--- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in
@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@"
CLASS="--class gnu-linux --class gnu --class os --class xen"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release)"
else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+ OS="${GRUB_DISTRIBUTOR}"
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi

@ -17,7 +17,7 @@ Signed-off-by: Josef Bacik <jbacik@fb.com>
1 file changed, 29 insertions(+), 13 deletions(-) 1 file changed, 29 insertions(+), 13 deletions(-)
diff --git a/grub-core/net/tcp.c b/grub-core/net/tcp.c diff --git a/grub-core/net/tcp.c b/grub-core/net/tcp.c
index e8ad34b84d4..7d4b822626d 100644 index e8ad34b84d..7d4b822626 100644
--- a/grub-core/net/tcp.c --- a/grub-core/net/tcp.c
+++ b/grub-core/net/tcp.c +++ b/grub-core/net/tcp.c
@@ -106,6 +106,18 @@ struct tcphdr @@ -106,6 +106,18 @@ struct tcphdr

@ -1,71 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Wed, 15 May 2013 16:47:33 -0400
Subject: [PATCH] Don't draw a border around the menu
It looks cleaner without it.
---
grub-core/normal/menu_text.c | 43 -------------------------------------------
1 file changed, 43 deletions(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index 4895ffe7d1d..e72ed438ba3 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -108,47 +108,6 @@ grub_print_message_indented (const char *msg, int margin_left, int margin_right,
grub_print_message_indented_real (msg, margin_left, margin_right, term, 0);
}
-static void
-draw_border (struct grub_term_output *term, const struct grub_term_screen_geometry *geo)
-{
- int i;
-
- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL);
-
- grub_term_gotoxy (term, (struct grub_term_coordinate) { geo->first_entry_x - 1,
- geo->first_entry_y - 1 });
- grub_putcode (GRUB_UNICODE_CORNER_UL, term);
- for (i = 0; i < geo->entry_width + 1; i++)
- grub_putcode (GRUB_UNICODE_HLINE, term);
- grub_putcode (GRUB_UNICODE_CORNER_UR, term);
-
- for (i = 0; i < geo->num_entries; i++)
- {
- grub_term_gotoxy (term, (struct grub_term_coordinate) { geo->first_entry_x - 1,
- geo->first_entry_y + i });
- grub_putcode (GRUB_UNICODE_VLINE, term);
- grub_term_gotoxy (term,
- (struct grub_term_coordinate) { geo->first_entry_x + geo->entry_width + 1,
- geo->first_entry_y + i });
- grub_putcode (GRUB_UNICODE_VLINE, term);
- }
-
- grub_term_gotoxy (term,
- (struct grub_term_coordinate) { geo->first_entry_x - 1,
- geo->first_entry_y - 1 + geo->num_entries + 1 });
- grub_putcode (GRUB_UNICODE_CORNER_LL, term);
- for (i = 0; i < geo->entry_width + 1; i++)
- grub_putcode (GRUB_UNICODE_HLINE, term);
- grub_putcode (GRUB_UNICODE_CORNER_LR, term);
-
- grub_term_setcolorstate (term, GRUB_TERM_COLOR_NORMAL);
-
- grub_term_gotoxy (term,
- (struct grub_term_coordinate) { geo->first_entry_x - 1,
- (geo->first_entry_y - 1 + geo->num_entries
- + GRUB_TERM_MARGIN + 1) });
-}
-
static int
print_message (int nested, int edit, struct grub_term_output *term, int dry_run)
{
@@ -406,8 +365,6 @@ grub_menu_init_page (int nested, int edit,
grub_term_normal_color = grub_color_menu_normal;
grub_term_highlight_color = grub_color_menu_highlight;
- if (geo->border)
- draw_border (term, geo);
grub_term_normal_color = old_color_normal;
grub_term_highlight_color = old_color_highlight;
geo->timeout_y = geo->first_entry_y + geo->num_entries

@ -14,7 +14,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
6 files changed, 477 insertions(+), 14 deletions(-) 6 files changed, 477 insertions(+), 14 deletions(-)
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
index 6fb5627025d..e28fb6a09f9 100644 index 6fb5627025..e28fb6a09f 100644
--- a/grub-core/net/bootp.c --- a/grub-core/net/bootp.c
+++ b/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c
@@ -902,6 +902,179 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), @@ -902,6 +902,179 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)),
@ -198,7 +198,7 @@ index 6fb5627025d..e28fb6a09f9 100644
grub_bootp_init (void) grub_bootp_init (void)
{ {
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 5388f952ba9..173fb63153c 100644 index 5388f952ba..173fb63153 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -18,11 +18,14 @@ @@ -18,11 +18,14 @@
@ -307,7 +307,7 @@ index 5388f952ba9..173fb63153c 100644
} }
} }
diff --git a/grub-core/net/net.c b/grub-core/net/net.c diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 0ef148f4adc..22f2689aaeb 100644 index 0ef148f4ad..22f2689aae 100644
--- a/grub-core/net/net.c --- a/grub-core/net/net.c
+++ b/grub-core/net/net.c +++ b/grub-core/net/net.c
@@ -960,6 +960,78 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa @@ -960,6 +960,78 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa
@ -390,7 +390,7 @@ index 0ef148f4adc..22f2689aaeb 100644
grub_err_t grub_err_t
grub_net_add_ipv4_local (struct grub_net_network_level_interface *inter, grub_net_add_ipv4_local (struct grub_net_network_level_interface *inter,
diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c
index 7f44b30f521..4ab2f5c7357 100644 index 7f44b30f52..4ab2f5c735 100644
--- a/grub-core/net/tftp.c --- a/grub-core/net/tftp.c
+++ b/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c
@@ -358,18 +358,22 @@ tftp_open (struct grub_file *file, const char *filename) @@ -358,18 +358,22 @@ tftp_open (struct grub_file *file, const char *filename)
@ -417,7 +417,7 @@ index 7f44b30f521..4ab2f5c7357 100644
return grub_errno; return grub_errno;
} }
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index f1a52210c0c..117469450d3 100644 index f1a52210c0..117469450d 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -592,10 +592,16 @@ typedef void *grub_efi_handle_t; @@ -592,10 +592,16 @@ typedef void *grub_efi_handle_t;
@ -572,7 +572,7 @@ index f1a52210c0c..117469450d3 100644
typedef struct grub_efi_pxe typedef struct grub_efi_pxe
diff --git a/include/grub/net.h b/include/grub/net.h diff --git a/include/grub/net.h b/include/grub/net.h
index 7ae4b6bd805..8a05ec4fe7a 100644 index 7ae4b6bd80..8a05ec4fe7 100644
--- a/include/grub/net.h --- a/include/grub/net.h
+++ b/include/grub/net.h +++ b/include/grub/net.h
@@ -447,6 +447,51 @@ struct grub_net_bootp_packet @@ -447,6 +447,51 @@ struct grub_net_bootp_packet

@ -10,20 +10,21 @@ variables are then used by 10_linux to choose whether or not to create
debug stanzas. debug stanzas.
Resolves: rhbz#1226325 Resolves: rhbz#1226325
[rharwood: migrate man page to h2m]
--- ---
configure.ac | 2 + configure.ac | 1 +
Makefile.util.def | 7 ++ Makefile.util.def | 7 ++
docs/man/grub-get-kernel-settings.h2m | 2 +
util/bash-completion.d/grub-completion.bash.in | 22 +++++++ util/bash-completion.d/grub-completion.bash.in | 22 +++++++
util/grub-get-kernel-settings.3 | 20 ++++++
util/grub-get-kernel-settings.in | 88 ++++++++++++++++++++++++++ util/grub-get-kernel-settings.in | 88 ++++++++++++++++++++++++++
util/grub-mkconfig.in | 3 + util/grub-mkconfig.in | 3 +
util/grub.d/10_linux.in | 23 +++++-- util/grub.d/10_linux.in | 23 +++++--
7 files changed, 160 insertions(+), 5 deletions(-) 7 files changed, 141 insertions(+), 5 deletions(-)
create mode 100644 util/grub-get-kernel-settings.3 create mode 100644 docs/man/grub-get-kernel-settings.h2m
create mode 100644 util/grub-get-kernel-settings.in create mode 100644 util/grub-get-kernel-settings.in
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 30fd84d8067..ed31ea457d2 100644 index 7f59ad788f..0d0e6782a1 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -65,6 +65,7 @@ grub_TRANSFORM([grub-install]) @@ -65,6 +65,7 @@ grub_TRANSFORM([grub-install])
@ -34,19 +35,11 @@ index 30fd84d8067..ed31ea457d2 100644
grub_TRANSFORM([grub-glue-efi]) grub_TRANSFORM([grub-glue-efi])
grub_TRANSFORM([grub-mklayout]) grub_TRANSFORM([grub-mklayout])
grub_TRANSFORM([grub-mkpasswd-pbkdf2]) grub_TRANSFORM([grub-mkpasswd-pbkdf2])
@@ -82,6 +83,7 @@ grub_TRANSFORM([grub-file])
grub_TRANSFORM([grub-bios-setup.3])
grub_TRANSFORM([grub-editenv.1])
grub_TRANSFORM([grub-fstest.3])
+grub_TRANSFORM([grub-get-kernel-settings.3])
grub_TRANSFORM([grub-glue-efi.3])
grub_TRANSFORM([grub-install.1])
grub_TRANSFORM([grub-kbdcomp.3])
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index 1a7dd433e33..cdd2f51fe4b 100644 index 4ee22c5daa..18a9242776 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -732,6 +732,13 @@ script = { @@ -716,6 +716,13 @@ script = {
installdir = sbin; installdir = sbin;
}; };
@ -60,8 +53,16 @@ index 1a7dd433e33..cdd2f51fe4b 100644
script = { script = {
name = grub-set-default; name = grub-set-default;
common = util/grub-set-default.in; common = util/grub-set-default.in;
diff --git a/docs/man/grub-get-kernel-settings.h2m b/docs/man/grub-get-kernel-settings.h2m
new file mode 100644
index 0000000000..b8051f01f3
--- /dev/null
+++ b/docs/man/grub-get-kernel-settings.h2m
@@ -0,0 +1,2 @@
+[NAME]
+grub-get-kernel-settings \- Evaluate the system's kernel installation settings for use while making a grub configuration file
diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in
index 44bf135b9f8..5c4acd496d4 100644 index 44bf135b9f..5c4acd496d 100644
--- a/util/bash-completion.d/grub-completion.bash.in --- a/util/bash-completion.d/grub-completion.bash.in
+++ b/util/bash-completion.d/grub-completion.bash.in +++ b/util/bash-completion.d/grub-completion.bash.in
@@ -264,6 +264,28 @@ have ${__grub_sparc64_setup_program} && \ @@ -264,6 +264,28 @@ have ${__grub_sparc64_setup_program} && \
@ -93,35 +94,9 @@ index 44bf135b9f8..5c4acd496d4 100644
# #
# grub-install # grub-install
# #
diff --git a/util/grub-get-kernel-settings.3 b/util/grub-get-kernel-settings.3
new file mode 100644
index 00000000000..ba33330e28d
--- /dev/null
+++ b/util/grub-get-kernel-settings.3
@@ -0,0 +1,20 @@
+.TH GRUB-GET-KERNEL-SETTINGS 3 "Thu Jun 25 2015"
+.SH NAME
+\fBgrub-get-kernel-settings\fR \(em Evaluate the system's kernel installation settings for use while making a grub configuration file.
+
+.SH SYNOPSIS
+\fBgrub-get-kernel-settings\fR [OPTION]
+
+.SH DESCRIPTION
+\fBgrub-get-kernel-settings\fR reads the kernel installation settings on the host system, and emits a set of grub settings suitable for use when creating a grub configuration file.
+
+.SH OPTIONS
+.TP
+-h, --help
+Display program usage and exit.
+.TP
+-v, --version
+Display the current version.
+
+.SH SEE ALSO
+.BR "info grub"
diff --git a/util/grub-get-kernel-settings.in b/util/grub-get-kernel-settings.in diff --git a/util/grub-get-kernel-settings.in b/util/grub-get-kernel-settings.in
new file mode 100644 new file mode 100644
index 00000000000..7e87dfccc0e index 0000000000..7e87dfccc0
--- /dev/null --- /dev/null
+++ b/util/grub-get-kernel-settings.in +++ b/util/grub-get-kernel-settings.in
@@ -0,0 +1,88 @@ @@ -0,0 +1,88 @@
@ -214,7 +189,7 @@ index 00000000000..7e87dfccc0e
+ echo export GRUB_UPDATE_DEFAULT_KERNEL + echo export GRUB_UPDATE_DEFAULT_KERNEL
+fi +fi
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index ba14cf6261c..005f093809b 100644 index ba14cf6261..005f093809 100644
--- a/util/grub-mkconfig.in --- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in
@@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@" @@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@"
@ -235,7 +210,7 @@ index ba14cf6261c..005f093809b 100644
if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then
GRUB_DISABLE_LINUX_UUID="true" GRUB_DISABLE_LINUX_UUID="true"
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 2e59f3b4197..0f3c19e30cc 100644 index 786dbabb4a..292e333324 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -111,7 +111,8 @@ linux_entry () @@ -111,7 +111,8 @@ linux_entry ()
@ -258,7 +233,7 @@ index 2e59f3b4197..0f3c19e30cc 100644
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
@@ -299,11 +303,15 @@ while [ "x$list" != "x" ] ; do @@ -306,11 +310,15 @@ while [ "x$list" != "x" ] ; do
fi fi
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
@ -276,7 +251,7 @@ index 2e59f3b4197..0f3c19e30cc 100644
if [ -z "$boot_device_id" ]; then if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi fi
@@ -312,10 +320,15 @@ while [ "x$list" != "x" ] ; do @@ -319,10 +327,15 @@ while [ "x$list" != "x" ] ; do
is_top_level=false is_top_level=false
fi fi

@ -1,40 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Jon McCann <william.jon.mccann@gmail.com>
Date: Fri, 7 Jun 2013 10:52:32 -0400
Subject: [PATCH] Use the standard margin for the timeout string
So that it aligns with the other messages
---
grub-core/normal/menu_text.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c
index e72ed438ba3..ca135624356 100644
--- a/grub-core/normal/menu_text.c
+++ b/grub-core/normal/menu_text.c
@@ -372,7 +372,7 @@ grub_menu_init_page (int nested, int edit,
if (bottom_message)
{
grub_term_gotoxy (term,
- (struct grub_term_coordinate) { GRUB_TERM_MARGIN,
+ (struct grub_term_coordinate) { STANDARD_MARGIN,
geo->timeout_y });
print_message (nested, edit, term, 0);
@@ -407,14 +407,14 @@ menu_text_print_timeout (int timeout, void *dataptr)
if (data->timeout_msg == TIMEOUT_UNKNOWN)
{
data->timeout_msg = grub_print_message_indented_real (msg_translated,
- 3, 1, data->term, 1)
+ STANDARD_MARGIN, 1, data->term, 1)
<= data->geo.timeout_lines ? TIMEOUT_NORMAL : TIMEOUT_TERSE;
if (data->timeout_msg == TIMEOUT_TERSE)
{
grub_free (msg_translated);
msg_translated = grub_xasprintf (_("%ds"), timeout);
if (grub_term_width (data->term) < 10)
- data->timeout_msg = TIMEOUT_TERSE_NO_MARGIN;
+ data->timeout_msg = STANDARD_MARGIN;
}
}

@ -25,12 +25,15 @@ This patch changes it as below.
0000 0000 0000 0000 0000 0011 1111 1111 # ~grub_swap_bytes32(grub_le_to_cpu32 (subnet_mask.ipv4)) 0000 0000 0000 0000 0000 0011 1111 1111 # ~grub_swap_bytes32(grub_le_to_cpu32 (subnet_mask.ipv4))
The count of zero with __builtin_clz can be 22. (clz counts the number of one bits preceding the most significant zero bit) The count of zero with __builtin_clz can be 22. (clz counts the number of one bits preceding the most significant zero bit)
Signed-off-by: Masahiro Matsuya <mmatsuya@redhat.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/net/drivers/ieee1275/ofnet.c | 3 +-- grub-core/net/drivers/ieee1275/ofnet.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-) 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c
index ac4e62a95c9..3860b6f78d8 100644 index ac4e62a95c..3860b6f78d 100644
--- a/grub-core/net/drivers/ieee1275/ofnet.c --- a/grub-core/net/drivers/ieee1275/ofnet.c
+++ b/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c
@@ -220,8 +220,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -220,8 +220,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath,

@ -13,7 +13,7 @@ Subject: [PATCH] Make grub_fatal() also backtrace.
create mode 100644 grub-core/lib/arm64/backtrace.c create mode 100644 grub-core/lib/arm64/backtrace.c
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index c15e91943b9..058c88ac3af 100644 index c15e91943b..058c88ac3a 100644
--- a/grub-core/Makefile.core.def --- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def
@@ -188,6 +188,9 @@ kernel = { @@ -188,6 +188,9 @@ kernel = {
@ -27,7 +27,7 @@ index c15e91943b9..058c88ac3af 100644
i386_xen = kern/i386/dl.c; i386_xen = kern/i386/dl.c;
i386_xen_pvh = kern/i386/dl.c; i386_xen_pvh = kern/i386/dl.c;
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index 63b586d09cb..a3e215155bd 100644 index 63b586d09c..a3e215155b 100644
--- a/grub-core/kern/misc.c --- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
@ -55,7 +55,7 @@ index 63b586d09cb..a3e215155bd 100644
#endif #endif
diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c
new file mode 100644 new file mode 100644
index 00000000000..1079b5380e1 index 0000000000..1079b5380e
--- /dev/null --- /dev/null
+++ b/grub-core/lib/arm64/backtrace.c +++ b/grub-core/lib/arm64/backtrace.c
@@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
@ -122,7 +122,7 @@ index 00000000000..1079b5380e1
+} +}
+ +
diff --git a/grub-core/lib/backtrace.c b/grub-core/lib/backtrace.c diff --git a/grub-core/lib/backtrace.c b/grub-core/lib/backtrace.c
index 825a8800e25..c0ad6ab8be1 100644 index 825a8800e2..c0ad6ab8be 100644
--- a/grub-core/lib/backtrace.c --- a/grub-core/lib/backtrace.c
+++ b/grub-core/lib/backtrace.c +++ b/grub-core/lib/backtrace.c
@@ -29,6 +29,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -29,6 +29,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
@ -142,7 +142,7 @@ index 825a8800e25..c0ad6ab8be1 100644
} }
diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c
index c3e03c7275c..c67273db3ae 100644 index c3e03c7275..c67273db3a 100644
--- a/grub-core/lib/i386/backtrace.c --- a/grub-core/lib/i386/backtrace.c
+++ b/grub-core/lib/i386/backtrace.c +++ b/grub-core/lib/i386/backtrace.c
@@ -15,11 +15,23 @@ @@ -15,11 +15,23 @@

@ -1,49 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 18 Feb 2014 09:37:49 -0500
Subject: [PATCH] Don't emit "Booting ..." message.
UI team still hates this stuff, so we're disabling it for RHEL 7.
Resolves: rhbz#1023142
Signed-off-by: Peter Jones <pjones@redhat.com>
---
grub-core/normal/menu.c | 4 +++-
grub-core/normal/menu_entry.c | 3 ---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c
index d7a222e681b..37d753d8081 100644
--- a/grub-core/normal/menu.c
+++ b/grub-core/normal/menu.c
@@ -838,12 +838,14 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
/* Callback invoked immediately before a menu entry is executed. */
static void
-notify_booting (grub_menu_entry_t entry,
+notify_booting (grub_menu_entry_t __attribute__((unused)) entry,
void *userdata __attribute__((unused)))
{
+#if 0
grub_printf (" ");
grub_printf_ (N_("Booting `%s'"), entry->title);
grub_printf ("\n\n");
+#endif
}
/* Callback invoked when a default menu entry executed because of a timeout
diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c
index 50eef918cf6..de64a367c4e 100644
--- a/grub-core/normal/menu_entry.c
+++ b/grub-core/normal/menu_entry.c
@@ -1176,9 +1176,6 @@ run (struct screen *screen)
char *dummy[1] = { NULL };
grub_cls ();
- grub_printf (" ");
- grub_printf_ (N_("Booting a command list"));
- grub_printf ("\n\n");
errs_before = grub_err_printed_errors;

@ -13,7 +13,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 171 insertions(+), 154 deletions(-) 2 files changed, 171 insertions(+), 154 deletions(-)
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
index 6c629a23e2d..19f708ee662 100644 index 6c629a23e2..19f708ee66 100644
--- a/docs/grub-dev.texi --- a/docs/grub-dev.texi
+++ b/docs/grub-dev.texi +++ b/docs/grub-dev.texi
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
@ -35,7 +35,7 @@ index 6c629a23e2d..19f708ee662 100644
@setchapternewpage odd @setchapternewpage odd
diff --git a/docs/grub.texi b/docs/grub.texi diff --git a/docs/grub.texi b/docs/grub.texi
index 69f08d289f9..0615d0ed97e 100644 index 69f08d289f..0615d0ed97 100644
--- a/docs/grub.texi --- a/docs/grub.texi
+++ b/docs/grub.texi +++ b/docs/grub.texi
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

@ -20,7 +20,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 18 insertions(+), 60 deletions(-) 1 file changed, 18 insertions(+), 60 deletions(-)
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
index 1b91c102f35..4b27bd20153 100644 index 1b91c102f3..4b27bd2015 100644
--- a/util/grub.d/30_os-prober.in --- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in
@@ -42,68 +42,25 @@ if [ -z "${OSPROBED}" ] ; then @@ -42,68 +42,25 @@ if [ -z "${OSPROBED}" ] ; then

@ -24,7 +24,7 @@ Signed-off-by: Jeff Mahoney <jeffm@suse.com>
2 files changed, 533 insertions(+), 20 deletions(-) 2 files changed, 533 insertions(+), 20 deletions(-)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 63203034dfc..f1fff7385b5 100644 index 63203034df..f1fff7385b 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -38,6 +38,9 @@ @@ -38,6 +38,9 @@
@ -690,7 +690,7 @@ index 63203034dfc..f1fff7385b5 100644
+ +
+// vim: si et sw=2: +// vim: si et sw=2:
diff --git a/include/grub/btrfs.h b/include/grub/btrfs.h diff --git a/include/grub/btrfs.h b/include/grub/btrfs.h
index 9d93fb6c182..234ad976771 100644 index 9d93fb6c18..234ad97677 100644
--- a/include/grub/btrfs.h --- a/include/grub/btrfs.h
+++ b/include/grub/btrfs.h +++ b/include/grub/btrfs.h
@@ -29,6 +29,7 @@ enum @@ -29,6 +29,7 @@ enum

@ -12,7 +12,7 @@ Signed-off-by: Michael Chang <mchang@suse.com>
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index f1fff7385b5..ad1b56b716d 100644 index f1fff7385b..ad1b56b716 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -2714,6 +2714,8 @@ GRUB_MOD_INIT (btrfs) @@ -2714,6 +2714,8 @@ GRUB_MOD_INIT (btrfs)

@ -3,12 +3,14 @@ From: Michael Chang <mchang@suse.com>
Date: Thu, 21 Aug 2014 03:39:11 +0000 Date: Thu, 21 Aug 2014 03:39:11 +0000
Subject: [PATCH] grub2-btrfs-03-follow_default Subject: [PATCH] grub2-btrfs-03-follow_default
Signed-off-by: Michael Chang <mchang@suse.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++---------------
1 file changed, 76 insertions(+), 31 deletions(-) 1 file changed, 76 insertions(+), 31 deletions(-)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index ad1b56b716d..113c1f746c9 100644 index ad1b56b716..113c1f746c 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -1256,6 +1256,7 @@ grub_btrfs_mount (grub_device_t dev) @@ -1256,6 +1256,7 @@ grub_btrfs_mount (grub_device_t dev)

@ -3,6 +3,8 @@ From: Michael Chang <mchang@suse.com>
Date: Thu, 21 Aug 2014 03:39:11 +0000 Date: Thu, 21 Aug 2014 03:39:11 +0000
Subject: [PATCH] grub2-btrfs-04-grub2-install Subject: [PATCH] grub2-btrfs-04-grub2-install
Signed-off-by: Michael Chang <mchang@suse.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/osdep/linux/getroot.c | 7 +++++++ grub-core/osdep/linux/getroot.c | 7 +++++++
grub-core/osdep/unix/config.c | 17 +++++++++++++++-- grub-core/osdep/unix/config.c | 17 +++++++++++++++--
@ -13,7 +15,7 @@ Subject: [PATCH] grub2-btrfs-04-grub2-install
6 files changed, 54 insertions(+), 2 deletions(-) 6 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c
index 001b818fe58..caf9b1ccd3f 100644 index 001b818fe5..caf9b1ccd3 100644
--- a/grub-core/osdep/linux/getroot.c --- a/grub-core/osdep/linux/getroot.c
+++ b/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c
@@ -376,6 +376,7 @@ get_btrfs_fs_prefix (const char *mount_path) @@ -376,6 +376,7 @@ get_btrfs_fs_prefix (const char *mount_path)
@ -38,7 +40,7 @@ index 001b818fe58..caf9b1ccd3f 100644
else if (!retry && grub_strcmp (entries[i].fstype, "autofs") == 0) else if (!retry && grub_strcmp (entries[i].fstype, "autofs") == 0)
{ {
diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c
index 7d6325138ce..46a881530c0 100644 index 7d6325138c..46a881530c 100644
--- a/grub-core/osdep/unix/config.c --- a/grub-core/osdep/unix/config.c
+++ b/grub-core/osdep/unix/config.c +++ b/grub-core/osdep/unix/config.c
@@ -82,6 +82,19 @@ grub_util_load_config (struct grub_util_config *cfg) @@ -82,6 +82,19 @@ grub_util_load_config (struct grub_util_config *cfg)
@ -73,7 +75,7 @@ index 7d6325138ce..46a881530c0 100644
argv[2] = script; argv[2] = script;
argv[3] = '\0'; argv[3] = '\0';
diff --git a/util/config.c b/util/config.c diff --git a/util/config.c b/util/config.c
index ebcdd8f5e22..f044a880a76 100644 index ebcdd8f5e2..f044a880a7 100644
--- a/util/config.c --- a/util/config.c
+++ b/util/config.c +++ b/util/config.c
@@ -42,6 +42,16 @@ grub_util_parse_config (FILE *f, struct grub_util_config *cfg, int simple) @@ -42,6 +42,16 @@ grub_util_parse_config (FILE *f, struct grub_util_config *cfg, int simple)
@ -94,7 +96,7 @@ index ebcdd8f5e22..f044a880a76 100644
sizeof ("GRUB_DISTRIBUTOR=") - 1) == 0) sizeof ("GRUB_DISTRIBUTOR=") - 1) == 0)
{ {
diff --git a/util/grub-install.c b/util/grub-install.c diff --git a/util/grub-install.c b/util/grub-install.c
index 0fbe7f78c6d..0f66f36d23a 100644 index 0fbe7f78c6..0f66f36d23 100644
--- a/util/grub-install.c --- a/util/grub-install.c
+++ b/util/grub-install.c +++ b/util/grub-install.c
@@ -827,6 +827,8 @@ fill_core_services (const char *core_services) @@ -827,6 +827,8 @@ fill_core_services (const char *core_services)
@ -134,7 +136,7 @@ index 0fbe7f78c6d..0f66f36d23a 100644
char *install_drive = NULL; char *install_drive = NULL;
diff --git a/util/grub-mkrelpath.c b/util/grub-mkrelpath.c diff --git a/util/grub-mkrelpath.c b/util/grub-mkrelpath.c
index 47a241a391b..5db7a9a7d97 100644 index 47a241a391..5db7a9a7d9 100644
--- a/util/grub-mkrelpath.c --- a/util/grub-mkrelpath.c
+++ b/util/grub-mkrelpath.c +++ b/util/grub-mkrelpath.c
@@ -40,9 +40,12 @@ struct arguments @@ -40,9 +40,12 @@ struct arguments
@ -161,7 +163,7 @@ index 47a241a391b..5db7a9a7d97 100644
if (state->arg_num == 0) if (state->arg_num == 0)
arguments->pathname = xstrdup (arg); arguments->pathname = xstrdup (arg);
diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h
index 875d5896ce1..c9a7e5f4ade 100644 index 875d5896ce..c9a7e5f4ad 100644
--- a/include/grub/emu/config.h --- a/include/grub/emu/config.h
+++ b/include/grub/emu/config.h +++ b/include/grub/emu/config.h
@@ -37,6 +37,7 @@ struct grub_util_config @@ -37,6 +37,7 @@ struct grub_util_config

@ -13,7 +13,7 @@ Signed-off-by: Michael Chang <mchang@suse.com>
5 files changed, 38 insertions(+), 2 deletions(-) 5 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 005f093809b..535c0f02499 100644 index 005f093809..535c0f0249 100644
--- a/util/grub-mkconfig.in --- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in
@@ -252,7 +252,8 @@ export GRUB_DEFAULT \ @@ -252,7 +252,8 @@ export GRUB_DEFAULT \
@ -27,10 +27,10 @@ index 005f093809b..535c0f02499 100644
if test "x${grub_cfg}" != "x"; then if test "x${grub_cfg}" != "x"; then
rm -f "${grub_cfg}.new" rm -f "${grub_cfg}.new"
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
index 42c2ea9ba50..fafeac95061 100644 index 0f6505bf3b..5e96f6cc5d 100644
--- a/util/grub-mkconfig_lib.in --- a/util/grub-mkconfig_lib.in
+++ b/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in
@@ -52,7 +52,11 @@ grub_warn () @@ -49,7 +49,11 @@ grub_warn ()
make_system_path_relative_to_its_root () make_system_path_relative_to_its_root ()
{ {
@ -43,7 +43,7 @@ index 42c2ea9ba50..fafeac95061 100644
is_path_readable_by_grub () is_path_readable_by_grub ()
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
index 858b526c925..de727e6ee6b 100644 index 858b526c92..de727e6ee6 100644
--- a/util/grub.d/00_header.in --- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in
@@ -27,6 +27,14 @@ export TEXTDOMAINDIR="@localedir@" @@ -27,6 +27,14 @@ export TEXTDOMAINDIR="@localedir@"
@ -90,7 +90,7 @@ index 858b526c925..de727e6ee6b 100644
+EOF +EOF
+fi +fi
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 0f3c19e30cc..cbfaca34cc7 100644 index 292e333324..7bb3a211a7 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -66,10 +66,14 @@ fi @@ -66,10 +66,14 @@ fi
@ -109,7 +109,7 @@ index 0f3c19e30cc..cbfaca34cc7 100644
xzfs) xzfs)
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index ada20775a14..e9e73b815fb 100644 index ada20775a1..e9e73b815f 100644
--- a/util/grub.d/20_linux_xen.in --- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in
@@ -73,10 +73,14 @@ fi @@ -73,10 +73,14 @@ fi

@ -1,458 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Robert Marshall <rmarshall@redhat.com>
Date: Mon, 16 Mar 2015 14:14:19 -0400
Subject: [PATCH] Use Distribution Package Sort for grub2-mkconfig (#1124074)
Users reported that newly installed kernels on their systems installed
with grub-mkconfig would not appear on the grub boot list in order
starting with the most recent. Added an option for rpm-based systems to
use the rpm-sort library to sort kernels instead.
Resolves rhbz#1124074
Signed-off-by: Robert Marshall <rmarshall@redhat.com>
[pjones: fix --enable-rpm-sort configure option]
Signed-off-by: Peter Jones <pjones@redhat.com>
[thierry.vignaud: fix build with rpm-4.16]
Signed-off-by: Thierry Vignaud <thierry.vignaud@gmail.com>
---
configure.ac | 38 +++++++
Makefile.util.def | 16 +++
util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++
util/grub-mkconfig_lib.in | 11 +-
util/grub-rpm-sort.8 | 12 ++
5 files changed, 357 insertions(+), 1 deletion(-)
create mode 100644 util/grub-rpm-sort.c
create mode 100644 util/grub-rpm-sort.8
diff --git a/configure.ac b/configure.ac
index bec8535af70..fdcb452581c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -72,6 +72,7 @@ grub_TRANSFORM([grub-mkrelpath])
grub_TRANSFORM([grub-mkrescue])
grub_TRANSFORM([grub-probe])
grub_TRANSFORM([grub-reboot])
+grub_TRANSFORM([grub-rpm-sort])
grub_TRANSFORM([grub-script-check])
grub_TRANSFORM([grub-set-default])
grub_TRANSFORM([grub-sparc64-setup])
@@ -95,6 +96,7 @@ grub_TRANSFORM([grub-mkrescue.1])
grub_TRANSFORM([grub-mkstandalone.3])
grub_TRANSFORM([grub-ofpathname.3])
grub_TRANSFORM([grub-probe.3])
+grub_TRANSFORM([grub-rpm-sort.8])
grub_TRANSFORM([grub-reboot.3])
grub_TRANSFORM([grub-render-label.3])
grub_TRANSFORM([grub-script-check.3])
@@ -1860,6 +1862,42 @@ fi
AC_SUBST([LIBDEVMAPPER])
+AC_ARG_ENABLE([rpm-sort],
+ [AS_HELP_STRING([--enable-rpm-sort],
+ [enable native rpm sorting of kernels in grub (default=guessed)])])
+if test x"$enable_rpm_sort" = xno ; then
+ rpm_sort_excuse="explicitly disabled"
+fi
+
+if test x"$rpm_sort_excuse" = x ; then
+ # Check for rpmlib header.
+ AC_CHECK_HEADER([rpm/rpmlib.h], [],
+ [rpm_sort_excuse="need rpm/rpmlib header"])
+fi
+
+if test x"$rpm_sort_excuse" = x ; then
+ # Check for rpm library.
+ AC_CHECK_LIB([rpm], [rpmvercmp], [],
+ [rpm_sort_excuse="rpmlib missing rpmvercmp"])
+fi
+
+if test x"$rpm_sort_excuse" = x ; then
+ LIBRPM="-lrpm";
+ AC_DEFINE([HAVE_RPM], [1],
+ [Define to 1 if you have the rpm library.])
+fi
+
+if test x"$LIBRPM" = x ; then
+ # Check for rpm library.
+ AC_CHECK_LIB([rpmio], [rpmvercmp], [],
+ [rpm_sort_excuse="rpmio missing rpmvercmp"])
+ LIBRPM="-lrpmio";
+ AC_DEFINE([HAVE_RPMIO], [1],
+ [Define to 1 if you have the rpm library.])
+fi
+
+AC_SUBST([LIBRPM])
+
LIBGEOM=
if test x$host_kernel = xkfreebsd; then
AC_CHECK_LIB([geom], [geom_gettree], [],
diff --git a/Makefile.util.def b/Makefile.util.def
index 2c9b283a230..ba4cf4b29b0 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -703,6 +703,22 @@ program = {
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
};
+program = {
+ name = grub-rpm-sort;
+ mansection = 8;
+ installdir = sbin;
+
+ common = grub-core/kern/emu/misc.c;
+ common = grub-core/kern/emu/argp_common.c;
+ common = grub-core/osdep/init.c;
+ common = util/misc.c;
+ common = util/grub-rpm-sort.c;
+
+ ldadd = libgrubkern.a;
+ ldadd = grub-core/lib/gnulib/libgnu.a;
+ ldadd = '$(LIBDEVMAPPER) $(LIBRPM)';
+};
+
script = {
name = grub-mkconfig;
common = util/grub-mkconfig.in;
diff --git a/util/grub-rpm-sort.c b/util/grub-rpm-sort.c
new file mode 100644
index 00000000000..f33bd1ed568
--- /dev/null
+++ b/util/grub-rpm-sort.c
@@ -0,0 +1,281 @@
+#include <config.h>
+#include <grub/types.h>
+#include <grub/util/misc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <assert.h>
+#include <argp.h>
+#include <rpm/rpmlib.h>
+
+static size_t
+read_file (const char *input, char **ret)
+{
+ FILE *in;
+ size_t s;
+ size_t sz = 2048;
+ size_t offset = 0;
+ char *text;
+
+ if (!strcmp(input, "-"))
+ in = stdin;
+ else
+ in = grub_util_fopen(input, "r");
+
+ text = xmalloc (sz);
+
+ if (!in)
+ grub_util_error (_("cannot open `%s': %s"), input, strerror (errno));
+
+ while ((s = fread (text + offset, 1, sz - offset, in)) != 0)
+ {
+ offset += s;
+ if (sz - offset == 0)
+ {
+ sz += 2048;
+ text = xrealloc (text, sz);
+ }
+ }
+
+ text[offset] = '\0';
+ *ret = text;
+
+ if (in != stdin)
+ fclose(in);
+
+ return offset + 1;
+}
+
+/* returns name/version/release */
+/* NULL string pointer returned if nothing found */
+static void
+split_package_string (char *package_string, char **name,
+ char **version, char **release)
+{
+ char *package_version, *package_release;
+
+ /* Release */
+ package_release = strrchr (package_string, '-');
+
+ if (package_release != NULL)
+ *package_release++ = '\0';
+
+ *release = package_release;
+
+ /* Version */
+ package_version = strrchr(package_string, '-');
+
+ if (package_version != NULL)
+ *package_version++ = '\0';
+
+ *version = package_version;
+ /* Name */
+ *name = package_string;
+
+ /* Bubble up non-null values from release to name */
+ if (*name == NULL)
+ {
+ *name = (*version == NULL ? *release : *version);
+ *version = *release;
+ *release = NULL;
+ }
+ if (*version == NULL)
+ {
+ *version = *release;
+ *release = NULL;
+ }
+}
+
+/*
+ * package name-version-release comparator for qsort
+ * expects p, q which are pointers to character strings (char *)
+ * which will not be altered in this function
+ */
+static int
+package_version_compare (const void *p, const void *q)
+{
+ char *local_p, *local_q;
+ char *lhs_name, *lhs_version, *lhs_release;
+ char *rhs_name, *rhs_version, *rhs_release;
+ int vercmpflag = 0;
+
+ local_p = alloca (strlen (*(char * const *)p) + 1);
+ local_q = alloca (strlen (*(char * const *)q) + 1);
+
+ /* make sure these allocated */
+ assert (local_p);
+ assert (local_q);
+
+ strcpy (local_p, *(char * const *)p);
+ strcpy (local_q, *(char * const *)q);
+
+ split_package_string (local_p, &lhs_name, &lhs_version, &lhs_release);
+ split_package_string (local_q, &rhs_name, &rhs_version, &rhs_release);
+
+ /* Check Name and return if unequal */
+ vercmpflag = rpmvercmp ((lhs_name == NULL ? "" : lhs_name),
+ (rhs_name == NULL ? "" : rhs_name));
+ if (vercmpflag != 0)
+ return vercmpflag;
+
+ /* Check version and return if unequal */
+ vercmpflag = rpmvercmp ((lhs_version == NULL ? "" : lhs_version),
+ (rhs_version == NULL ? "" : rhs_version));
+ if (vercmpflag != 0)
+ return vercmpflag;
+
+ /* Check release and return the version compare value */
+ vercmpflag = rpmvercmp ((lhs_release == NULL ? "" : lhs_release),
+ (rhs_release == NULL ? "" : rhs_release));
+
+ return vercmpflag;
+}
+
+static void
+add_input (const char *filename, char ***package_names, size_t *n_package_names)
+{
+ char *orig_input_buffer = NULL;
+ char *input_buffer;
+ char *position_of_newline;
+ char **names = *package_names;
+ char **new_names = NULL;
+ size_t n_names = *n_package_names;
+
+ if (!*package_names)
+ new_names = names = xmalloc (sizeof (char *) * 2);
+
+ if (read_file (filename, &orig_input_buffer) < 2)
+ {
+ if (new_names)
+ free (new_names);
+ if (orig_input_buffer)
+ free (orig_input_buffer);
+ return;
+ }
+
+ input_buffer = orig_input_buffer;
+ while (input_buffer && *input_buffer &&
+ (position_of_newline = strchrnul (input_buffer, '\n')))
+ {
+ size_t sz = position_of_newline - input_buffer;
+ char *new;
+
+ if (sz == 0)
+ {
+ input_buffer = position_of_newline + 1;
+ continue;
+ }
+
+ new = xmalloc (sz+1);
+ strncpy (new, input_buffer, sz);
+ new[sz] = '\0';
+
+ names = xrealloc (names, sizeof (char *) * (n_names + 1));
+ names[n_names] = new;
+ n_names++;
+
+ /* move buffer ahead to next line */
+ input_buffer = position_of_newline + 1;
+ if (*position_of_newline == '\0')
+ input_buffer = NULL;
+ }
+
+ free (orig_input_buffer);
+
+ *package_names = names;
+ *n_package_names = n_names;
+}
+
+static char *
+help_filter (int key, const char *text, void *input __attribute__ ((unused)))
+{
+ return (char *)text;
+}
+
+static struct argp_option options[] = {
+ { 0, }
+};
+
+struct arguments
+{
+ size_t ninputs;
+ size_t input_max;
+ char **inputs;
+};
+
+static error_t
+argp_parser (int key, char *arg, struct argp_state *state)
+{
+ struct arguments *arguments = state->input;
+ switch (key)
+ {
+ case ARGP_KEY_ARG:
+ assert (arguments->ninputs < arguments->input_max);
+ arguments->inputs[arguments->ninputs++] = xstrdup (arg);
+ break;
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+}
+
+static struct argp argp = {
+ options, argp_parser, N_("[INPUT_FILES]"),
+ N_("Sort a list of strings in RPM version sort order."),
+ NULL, help_filter, NULL
+};
+
+int
+main (int argc, char *argv[])
+{
+ struct arguments arguments;
+ char **package_names = NULL;
+ size_t n_package_names = 0;
+ int i;
+
+ grub_util_host_init (&argc, &argv);
+
+ memset (&arguments, 0, sizeof (struct arguments));
+ arguments.input_max = argc+1;
+ arguments.inputs = xmalloc ((arguments.input_max + 1)
+ * sizeof (arguments.inputs[0]));
+ memset (arguments.inputs, 0, (arguments.input_max + 1)
+ * sizeof (arguments.inputs[0]));
+
+ /* Parse our arguments */
+ if (argp_parse (&argp, argc, argv, 0, 0, &arguments) != 0)
+ grub_util_error ("%s", _("Error in parsing command line arguments\n"));
+
+ /* If there's no inputs in argv, add one for stdin */
+ if (!arguments.ninputs)
+ {
+ arguments.ninputs = 1;
+ arguments.inputs[0] = xmalloc (2);
+ strcpy(arguments.inputs[0], "-");
+ }
+
+ for (i = 0; i < arguments.ninputs; i++)
+ add_input(arguments.inputs[i], &package_names, &n_package_names);
+
+ if (package_names == NULL || n_package_names < 1)
+ grub_util_error ("%s", _("Invalid input\n"));
+
+ qsort (package_names, n_package_names, sizeof (char *),
+ package_version_compare);
+
+ /* send sorted list to stdout */
+ for (i = 0; i < n_package_names; i++)
+ {
+ fprintf (stdout, "%s\n", package_names[i]);
+ free (package_names[i]);
+ }
+
+ free (package_names);
+ for (i = 0; i < arguments.ninputs; i++)
+ free (arguments.inputs[i]);
+
+ free (arguments.inputs);
+
+ return 0;
+}
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
index 0f6505bf3b6..42c2ea9ba50 100644
--- a/util/grub-mkconfig_lib.in
+++ b/util/grub-mkconfig_lib.in
@@ -33,6 +33,9 @@ fi
if test "x$grub_mkrelpath" = x; then
grub_mkrelpath="${bindir}/@grub_mkrelpath@"
fi
+if test "x$grub_rpm_sort" = x; then
+ grub_rpm_sort="${sbindir}/@grub_rpm_sort@"
+fi
if command -v gettext >/dev/null; then
:
@@ -218,6 +221,12 @@ version_sort ()
esac
}
+if [ "x$grub_rpm_sort" != x -a -x "$grub_rpm_sort" ]; then
+ kernel_sort="$grub_rpm_sort"
+else
+ kernel_sort=version_sort
+fi
+
version_test_numeric ()
{
version_test_numeric_a="$1"
@@ -234,7 +243,7 @@ version_test_numeric ()
version_test_numeric_a="$version_test_numeric_b"
version_test_numeric_b="$version_test_numeric_c"
fi
- if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then
+ if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | "$kernel_sort" | head -n 1 | grep -qx "$version_test_numeric_b" ; then
return 0
else
return 1
diff --git a/util/grub-rpm-sort.8 b/util/grub-rpm-sort.8
new file mode 100644
index 00000000000..8ce21488448
--- /dev/null
+++ b/util/grub-rpm-sort.8
@@ -0,0 +1,12 @@
+.TH GRUB-RPM-SORT 8 "Wed Feb 26 2014"
+.SH NAME
+\fBgrub-rpm-sort\fR \(em Sort input according to RPM version compare.
+
+.SH SYNOPSIS
+\fBgrub-rpm-sort\fR [OPTIONS].
+
+.SH DESCRIPTION
+You should not normally run this program directly. Use grub-mkconfig instead.
+
+.SH SEE ALSO
+.BR "info grub"

@ -3,6 +3,8 @@ From: Michael Chang <mchang@suse.com>
Date: Tue, 9 Jul 2019 13:56:16 +0200 Date: Tue, 9 Jul 2019 13:56:16 +0200
Subject: [PATCH] grub2-btrfs-06-subvol-mount Subject: [PATCH] grub2-btrfs-06-subvol-mount
Signed-off-by: Michael Chang <mchang@suse.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++-
grub-core/osdep/linux/getroot.c | 148 +++++++++++++++++++++++++++++- grub-core/osdep/linux/getroot.c | 148 +++++++++++++++++++++++++++++-
@ -11,7 +13,7 @@ Subject: [PATCH] grub2-btrfs-06-subvol-mount
4 files changed, 392 insertions(+), 5 deletions(-) 4 files changed, 392 insertions(+), 5 deletions(-)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 113c1f746c9..d323746ecfa 100644 index 113c1f746c..d323746ecf 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
@ -277,7 +279,7 @@ index 113c1f746c9..d323746ecfa 100644
grub_cmd_btrfs_list_subvols, 0, grub_cmd_btrfs_list_subvols, 0,
"[-p|-n] [-o var] DEVICE", "[-p|-n] [-o var] DEVICE",
diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c
index caf9b1ccd3f..28790307e00 100644 index caf9b1ccd3..28790307e0 100644
--- a/grub-core/osdep/linux/getroot.c --- a/grub-core/osdep/linux/getroot.c
+++ b/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c
@@ -107,6 +107,14 @@ struct btrfs_ioctl_search_key @@ -107,6 +107,14 @@ struct btrfs_ioctl_search_key
@ -460,7 +462,7 @@ index caf9b1ccd3f..28790307e00 100644
grub_make_system_path_relative_to_its_root_os (const char *path) grub_make_system_path_relative_to_its_root_os (const char *path)
{ {
diff --git a/util/grub-install.c b/util/grub-install.c diff --git a/util/grub-install.c b/util/grub-install.c
index 0f66f36d23a..84ed6e88ecb 100644 index 0f66f36d23..84ed6e88ec 100644
--- a/util/grub-install.c --- a/util/grub-install.c
+++ b/util/grub-install.c +++ b/util/grub-install.c
@@ -1569,6 +1569,55 @@ main (int argc, char *argv[]) @@ -1569,6 +1569,55 @@ main (int argc, char *argv[])
@ -520,7 +522,7 @@ index 0f66f36d23a..84ed6e88ecb 100644
const char *core_name = NULL; const char *core_name = NULL;
diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h
index 73fa2d34abb..9c642ae3fe3 100644 index 73fa2d34ab..9c642ae3fe 100644
--- a/include/grub/emu/getroot.h --- a/include/grub/emu/getroot.h
+++ b/include/grub/emu/getroot.h +++ b/include/grub/emu/getroot.h
@@ -53,6 +53,11 @@ char ** @@ -53,6 +53,11 @@ char **

@ -10,7 +10,7 @@ Ref: bsc#953538
1 file changed, 31 insertions(+), 1 deletion(-) 1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index d323746ecfa..673ded03522 100644 index d323746ecf..673ded0352 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -1260,11 +1260,41 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) @@ -1260,11 +1260,41 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path)

@ -3,12 +3,14 @@ From: Michael Chang <mchang@suse.com>
Date: Thu, 11 May 2017 08:56:57 +0000 Date: Thu, 11 May 2017 08:56:57 +0000
Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511) Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511)
Signed-off-by: Michael Chang <mchang@suse.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/fs/btrfs.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ grub-core/fs/btrfs.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 238 insertions(+) 1 file changed, 238 insertions(+)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 673ded03522..2b21cbaa67e 100644 index 673ded0352..2b21cbaa67 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -2887,6 +2887,238 @@ out: @@ -2887,6 +2887,238 @@ out:

@ -10,7 +10,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 32 insertions(+), 4 deletions(-) 1 file changed, 32 insertions(+), 4 deletions(-)
diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h
index 585fa6662b6..03f9a9d0118 100644 index 585fa6662b..03f9a9d011 100644
--- a/include/grub/efi/efi.h --- a/include/grub/efi/efi.h
+++ b/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h
@@ -24,6 +24,10 @@ @@ -24,6 +24,10 @@

@ -13,7 +13,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 9 insertions(+), 15 deletions(-) 1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c
index 3ff305b1d32..ba3d2930197 100644 index 07c4937898..89ac84cc66 100644
--- a/grub-core/loader/efi/chainloader.c --- a/grub-core/loader/efi/chainloader.c
+++ b/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c
@@ -65,7 +65,7 @@ grub_chainloader_unload (void) @@ -65,7 +65,7 @@ grub_chainloader_unload (void)
@ -34,7 +34,7 @@ index 3ff305b1d32..ba3d2930197 100644
grub_loader_unset (); grub_loader_unset ();
@@ -523,10 +523,9 @@ grub_efi_get_media_file_path (grub_efi_device_path_t *dp) @@ -527,10 +527,9 @@ grub_efi_get_media_file_path (grub_efi_device_path_t *dp)
static grub_efi_boolean_t static grub_efi_boolean_t
handle_image (void *data, grub_efi_uint32_t datasize) handle_image (void *data, grub_efi_uint32_t datasize)
{ {
@ -46,7 +46,7 @@ index 3ff305b1d32..ba3d2930197 100644
char *buffer_aligned = NULL; char *buffer_aligned = NULL;
grub_efi_uint32_t i; grub_efi_uint32_t i;
struct grub_pe32_section_table *section; struct grub_pe32_section_table *section;
@@ -537,8 +536,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -541,8 +540,6 @@ handle_image (void *data, grub_efi_uint32_t datasize)
int found_entry_point = 0; int found_entry_point = 0;
int rc; int rc;
@ -55,7 +55,7 @@ index 3ff305b1d32..ba3d2930197 100644
rc = read_header (data, datasize, &context); rc = read_header (data, datasize, &context);
if (rc < 0) if (rc < 0)
{ {
@@ -578,8 +575,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -582,8 +579,8 @@ handle_image (void *data, grub_efi_uint32_t datasize)
grub_dprintf ("chain", "image size is %08"PRIxGRUB_UINT64_T", datasize is %08x\n", grub_dprintf ("chain", "image size is %08"PRIxGRUB_UINT64_T", datasize is %08x\n",
context.image_size, datasize); context.image_size, datasize);
@ -66,7 +66,7 @@ index 3ff305b1d32..ba3d2930197 100644
if (efi_status != GRUB_EFI_SUCCESS) if (efi_status != GRUB_EFI_SUCCESS)
{ {
@@ -811,14 +808,14 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -815,14 +812,14 @@ handle_image (void *data, grub_efi_uint32_t datasize)
grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); grub_dprintf ("chain", "entry_point returned %ld\n", efi_status);
grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t));
@ -83,7 +83,7 @@ index 3ff305b1d32..ba3d2930197 100644
return 0; return 0;
} }
@@ -826,10 +823,7 @@ error_exit: @@ -830,10 +827,7 @@ error_exit:
static grub_err_t static grub_err_t
grub_secureboot_chainloader_unload (void) grub_secureboot_chainloader_unload (void)
{ {
@ -95,7 +95,7 @@ index 3ff305b1d32..ba3d2930197 100644
grub_free (file_path); grub_free (file_path);
grub_free (cmdline); grub_free (cmdline);
cmdline = 0; cmdline = 0;
@@ -1096,7 +1090,7 @@ fail: @@ -1100,7 +1094,7 @@ fail:
grub_free (file_path); grub_free (file_path);
if (address) if (address)

@ -12,10 +12,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 11 insertions(+), 1 deletion(-) 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c
index ba3d2930197..47f5aa14817 100644 index 89ac84cc66..ac8dfd40c6 100644
--- a/grub-core/loader/efi/chainloader.c --- a/grub-core/loader/efi/chainloader.c
+++ b/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c
@@ -806,7 +806,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -810,7 +810,8 @@ handle_image (void *data, grub_efi_uint32_t datasize)
efi_status = efi_call_2 (entry_point, grub_efi_image_handle, efi_status = efi_call_2 (entry_point, grub_efi_image_handle,
grub_efi_system_table); grub_efi_system_table);
@ -26,7 +26,7 @@ index ba3d2930197..47f5aa14817 100644
efi_status = grub_efi_free_pool (buffer); efi_status = grub_efi_free_pool (buffer);
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 117469450d3..99628801478 100644 index 117469450d..9962880147 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -546,7 +546,16 @@ typedef grub_uint64_t grub_efi_uint64_t; @@ -546,7 +546,16 @@ typedef grub_uint64_t grub_efi_uint64_t;

@ -8,7 +8,7 @@ Subject: [PATCH] don't use int for efi status
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index 05d8237a9b2..ae9885edb84 100644 index 05d8237a9b..ae9885edb8 100644
--- a/grub-core/kern/efi/efi.c --- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c
@@ -167,7 +167,7 @@ grub_reboot (void) @@ -167,7 +167,7 @@ grub_reboot (void)

@ -8,7 +8,7 @@ Subject: [PATCH] make GRUB_MOD_INIT() declare its function prototypes.
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/include/grub/dl.h b/include/grub/dl.h diff --git a/include/grub/dl.h b/include/grub/dl.h
index b3753c9ca26..91933b85f2c 100644 index b3753c9ca2..91933b85f2 100644
--- a/include/grub/dl.h --- a/include/grub/dl.h
+++ b/include/grub/dl.h +++ b/include/grub/dl.h
@@ -54,6 +54,7 @@ grub_mod_fini (void) @@ -54,6 +54,7 @@ grub_mod_fini (void)

@ -16,7 +16,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 1 insertion(+), 11 deletions(-) 1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/util/grub-install.c b/util/grub-install.c diff --git a/util/grub-install.c b/util/grub-install.c
index 84ed6e88ecb..a2bec7446cb 100644 index 84ed6e88ec..a2bec7446c 100644
--- a/util/grub-install.c --- a/util/grub-install.c
+++ b/util/grub-install.c +++ b/util/grub-install.c
@@ -1190,18 +1190,8 @@ main (int argc, char *argv[]) @@ -1190,18 +1190,8 @@ main (int argc, char *argv[])

@ -1,150 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 23 Sep 2014 09:58:49 -0400
Subject: [PATCH] Fix up some man pages rpmdiff noticed.
---
configure.ac | 2 ++
util/grub-macbless.8 | 26 +++++++++++++++++++
util/grub-mkimage.1 | 2 +-
util/grub-syslinux2cfg.1 | 65 ++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 94 insertions(+), 1 deletion(-)
create mode 100644 util/grub-macbless.8
create mode 100644 util/grub-syslinux2cfg.1
diff --git a/configure.ac b/configure.ac
index ed31ea457d2..537ed411469 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,6 +87,7 @@ grub_TRANSFORM([grub-get-kernel-settings.3])
grub_TRANSFORM([grub-glue-efi.3])
grub_TRANSFORM([grub-install.1])
grub_TRANSFORM([grub-kbdcomp.3])
+grub_TRANSFORM([grub-macbless.8])
grub_TRANSFORM([grub-menulst2cfg.1])
grub_TRANSFORM([grub-mkconfig.1])
grub_TRANSFORM([grub-mkfont.3])
@@ -105,6 +106,7 @@ grub_TRANSFORM([grub-render-label.3])
grub_TRANSFORM([grub-script-check.3])
grub_TRANSFORM([grub-set-default.1])
grub_TRANSFORM([grub-sparc64-setup.3])
+grub_TRANSFORM([grub-syslinux2cfg.1])
# Optimization flag. Allow user to override.
if test "x$TARGET_CFLAGS" = x; then
diff --git a/util/grub-macbless.8 b/util/grub-macbless.8
new file mode 100644
index 00000000000..ae842f3a606
--- /dev/null
+++ b/util/grub-macbless.8
@@ -0,0 +1,26 @@
+.TH GRUB-MACBLESS 1 "Wed Feb 26 2014"
+.SH NAME
+\fBgrub-macbless\fR \(em Mac-style bless utility for HFS or HFS+
+
+.SH SYNOPSIS
+\fBgrub-macbless\fR [-p | --ppc] [-v | --verbose] [-x | --x86] \fIFILE\fR
+
+.SH DESCRIPTION
+\fBgrub-mkimage\fR blesses a file on an HFS or HFS+ file system, so that it
+can be used to boot a Mac.
+
+.SH OPTIONS
+.TP
+--ppc
+Bless the file for use on PPC-based Macs.
+
+.TP
+--verbose
+Print verbose messages.
+
+.TP
+--x86
+Bless the file for use on x86-based Macs.
+
+.SH SEE ALSO
+.BR "info grub"
diff --git a/util/grub-mkimage.1 b/util/grub-mkimage.1
index 4dea4f54597..0eaaafe505b 100644
--- a/util/grub-mkimage.1
+++ b/util/grub-mkimage.1
@@ -17,7 +17,7 @@
[-v | --verbose] \fIMODULES\fR
.SH DESCRIPTION
-\fBgrub-mkimage\fI builds a bootable image of GRUB.
+\fBgrub-mkimage\fR builds a bootable image of GRUB.
.SH OPTIONS
.TP
diff --git a/util/grub-syslinux2cfg.1 b/util/grub-syslinux2cfg.1
new file mode 100644
index 00000000000..85309482718
--- /dev/null
+++ b/util/grub-syslinux2cfg.1
@@ -0,0 +1,65 @@
+.TH GRUB-SYSLINUX2CFG 1 "Wed Feb 26 2014"
+.SH NAME
+\fBgrub-syslinux2cfg\fR \(em Transform a syslinux config file into a GRUB config.
+
+.SH SYNOPSIS
+\fBgrub-syslinux2cfg\fR [-c | --cwd=\fRDIR\fI] [-r | --root=\fIDIR\fR] [-v | --verbose]
+.RE
+.RS 25
+[-t | --target-root=\fIDIR\fR] [-T | --target-cwd=\fIDIR\fR]
+.RE
+.RS 25
+[-o | --output=\fIFILE\fR] [[-i | --isolinux] |
+.RE
+.RS 46
+ [-s | --syslinux] |
+.RE
+.RS 46
+ [-p | --pxelinux]] \fIFILE\fR
+
+.SH DESCRIPTION
+\fBgrub-syslinux2cfg\fR builds a GRUB configuration file out of an existing
+syslinux configuration file.
+
+.SH OPTIONS
+.TP
+--cwd=\fIDIR\fR
+Set \fIDIR\fR as syslinux's working directory. The default is to use the
+parent directory of the input file.
+
+.TP
+--root=\fIDIR\fR
+Set \fIDIR\fR as the root directory of the syslinux disk. The default value
+is "/".
+
+.TP
+--verbose
+Print verbose messages.
+
+.TP
+--target-root=\fIDIR\fR
+Root directory as it will be seen at runtime. The default value is "/".
+
+.TP
+--target-cwd=\fIDIR\fR
+Working directory of syslinux as it will be seen at runtime. The default
+value is the parent directory of the input file.
+
+.TP
+--output=\fIFILE\fR
+Write the new config file to \fIFILE\fR. The default value is standard output.
+
+.TP
+--isolinux
+Assume that the input file is an isolinux configuration file.
+
+.TP
+--pxelinux
+Assume that the input file is a pxelinux configuration file.
+
+.TP
+--syslinux
+Assume that the input file is a syslinux configuration file.
+
+.SH SEE ALSO
+.BR "info grub"

@ -9,7 +9,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
index e9e73b815fb..c23b064be6c 100644 index e9e73b815f..c23b064be6 100644
--- a/util/grub.d/20_linux_xen.in --- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in
@@ -153,6 +153,7 @@ linux_entry_xsm () @@ -153,6 +153,7 @@ linux_entry_xsm ()

@ -63,7 +63,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 89 insertions(+), 20 deletions(-) 1 file changed, 89 insertions(+), 20 deletions(-)
diff --git a/grub-core/kern/i386/tsc_pmtimer.c b/grub-core/kern/i386/tsc_pmtimer.c diff --git a/grub-core/kern/i386/tsc_pmtimer.c b/grub-core/kern/i386/tsc_pmtimer.c
index c9c36169978..ca15c3aacd7 100644 index c9c3616997..ca15c3aacd 100644
--- a/grub-core/kern/i386/tsc_pmtimer.c --- a/grub-core/kern/i386/tsc_pmtimer.c
+++ b/grub-core/kern/i386/tsc_pmtimer.c +++ b/grub-core/kern/i386/tsc_pmtimer.c
@@ -28,40 +28,101 @@ @@ -28,40 +28,101 @@

@ -9,7 +9,7 @@ Subject: [PATCH] align struct efi_variable better...
2 files changed, 2 insertions(+), 1 deletion(-) 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h
index 36d2dedf47e..9d93ba88bac 100644 index 36d2dedf47..9d93ba88ba 100644
--- a/include/grub/efiemu/runtime.h --- a/include/grub/efiemu/runtime.h
+++ b/include/grub/efiemu/runtime.h +++ b/include/grub/efiemu/runtime.h
@@ -33,5 +33,5 @@ struct efi_variable @@ -33,5 +33,5 @@ struct efi_variable
@ -20,7 +20,7 @@ index 36d2dedf47e..9d93ba88bac 100644
+} GRUB_PACKED GRUB_ALIGNED(8); +} GRUB_PACKED GRUB_ALIGNED(8);
#endif /* ! GRUB_EFI_EMU_RUNTIME_HEADER */ #endif /* ! GRUB_EFI_EMU_RUNTIME_HEADER */
diff --git a/include/grub/types.h b/include/grub/types.h diff --git a/include/grub/types.h b/include/grub/types.h
index 0a3ff159136..ba446d99040 100644 index 0a3ff15913..ba446d9904 100644
--- a/include/grub/types.h --- a/include/grub/types.h
+++ b/include/grub/types.h +++ b/include/grub/types.h
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@

@ -20,30 +20,20 @@ kernels are found in the boot directory were proposed by Yclept Nemo
and Tom Gundersen respectively. and Tom Gundersen respectively.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
[javierm: remove outdated URL for BLS document]
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
[iwienand@redhat.com: skip machine ID check when updating entries]
Signed-off-by: Ian Wienand <iwienand@redhat.com>
[rharwood: use sort(1), commit message composits, drop man pages]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
util/grub-mkconfig.8 | 4 +
util/grub-mkconfig.in | 9 +- util/grub-mkconfig.in | 9 +-
util/grub-mkconfig_lib.in | 22 ++++- util/grub-mkconfig_lib.in | 22 ++++-
util/grub.d/10_linux.in | 223 +++++++++++++++++++++++++++++++++++++++++++++- util/grub.d/10_linux.in | 218 +++++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 252 insertions(+), 6 deletions(-) 3 files changed, 243 insertions(+), 6 deletions(-)
diff --git a/util/grub-mkconfig.8 b/util/grub-mkconfig.8
index a2d1f577b9b..434fa4deda4 100644
--- a/util/grub-mkconfig.8
+++ b/util/grub-mkconfig.8
@@ -13,5 +13,9 @@
\fB--output\fR=\fIFILE\fR
Write generated output to \fIFILE\fR.
+.TP
+\fB--no-grubenv-update\fR
+Do not update variables in the grubenv file.
+
.SH SEE ALSO
.BR "info grub"
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
index 535c0f02499..f55339a3f64 100644 index 535c0f0249..f55339a3f6 100644
--- a/util/grub-mkconfig.in --- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in
@@ -50,6 +50,8 @@ grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@" @@ -50,6 +50,8 @@ grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@"
@ -84,7 +74,7 @@ index 535c0f02499..f55339a3f64 100644
if test "x${grub_cfg}" != "x"; then if test "x${grub_cfg}" != "x"; then
rm -f "${grub_cfg}.new" rm -f "${grub_cfg}.new"
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
index fafeac95061..d8bb4069360 100644 index 5e96f6cc5d..301d8a8a1e 100644
--- a/util/grub-mkconfig_lib.in --- a/util/grub-mkconfig_lib.in
+++ b/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in
@@ -30,6 +30,9 @@ fi @@ -30,6 +30,9 @@ fi
@ -97,7 +87,7 @@ index fafeac95061..d8bb4069360 100644
if test "x$grub_mkrelpath" = x; then if test "x$grub_mkrelpath" = x; then
grub_mkrelpath="${bindir}/@grub_mkrelpath@" grub_mkrelpath="${bindir}/@grub_mkrelpath@"
fi fi
@@ -125,8 +128,19 @@ EOF @@ -122,8 +125,19 @@ EOF
fi fi
} }
@ -117,7 +107,7 @@ index fafeac95061..d8bb4069360 100644
old_ifs="$IFS" old_ifs="$IFS"
IFS=' IFS='
' '
@@ -161,18 +175,18 @@ prepare_grub_to_access_device () @@ -158,18 +172,18 @@ prepare_grub_to_access_device ()
# otherwise set root as per value in device.map. # otherwise set root as per value in device.map.
fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`" fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`"
if [ "x$fs_hint" != x ]; then if [ "x$fs_hint" != x ]; then
@ -141,10 +131,10 @@ index fafeac95061..d8bb4069360 100644
fi fi
IFS="$old_ifs" IFS="$old_ifs"
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index cbfaca34cc7..68adb55d893 100644 index 7bb3a211a7..2851952659 100644
--- a/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in
@@ -82,6 +82,223 @@ case x"$GRUB_FS" in @@ -82,6 +82,218 @@ case x"$GRUB_FS" in
;; ;;
esac esac
@ -162,7 +152,7 @@ index cbfaca34cc7..68adb55d893 100644
+# +#
+# The $bls_parser parses the BootLoaderSpec files stored in /boot/loader/entries and +# The $bls_parser parses the BootLoaderSpec files stored in /boot/loader/entries and
+# populates the boot menu. Please refer to the Boot Loader Specification documentation +# populates the boot menu. Please refer to the Boot Loader Specification documentation
+# for the files format: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/. +# for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.
+ +
+EOF +EOF
+} +}
@ -204,25 +194,20 @@ index cbfaca34cc7..68adb55d893 100644
+ +
+get_sorted_bls() +get_sorted_bls()
+{ +{
+ if ! [ -d "${blsdir}" ] || ! [ -e /etc/machine-id ]; then + if ! [ -d "${blsdir}" ]; then
+ return
+ fi
+
+ read machine_id < /etc/machine-id
+ if [ -z "${machine_id}" ]; then
+ return + return
+ fi + fi
+ +
+ local IFS=$'\n' + local IFS=$'\n'
+ +
+ files=($(for bls in ${blsdir}/${machine_id}-*.conf; do + files=($(for bls in ${blsdir}/*.conf; do
+ if ! [[ -e "${bls}" ]] ; then + if ! [[ -e "${bls}" ]] ; then
+ continue + continue
+ fi + fi
+ bls="${bls%.conf}" + bls="${bls%.conf}"
+ bls="${bls##*/}" + bls="${bls##*/}"
+ echo "${bls}" + echo "${bls}"
+ done | ${kernel_sort} 2>/dev/null | tac)) || : + done | sort -Vr 2>/dev/null)) || :
+ +
+ echo "${files[@]}" + echo "${files[@]}"
+} +}
@ -263,7 +248,7 @@ index cbfaca34cc7..68adb55d893 100644
+} +}
+ +
+# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not installed. +# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not installed.
+if [ -z "${GRUB_ENABLE_BLSCFG}" ] && [ -z "$(which new-kernel-pkg 2> /dev/null)" ]; then +if [ -z "${GRUB_ENABLE_BLSCFG}" ] && ! command -v new-kernel-pkg >/dev/null; then
+ GRUB_ENABLE_BLSCFG="true" + GRUB_ENABLE_BLSCFG="true"
+fi +fi
+ +
@ -368,7 +353,7 @@ index cbfaca34cc7..68adb55d893 100644
mktitle () mktitle ()
{ {
local title_type local title_type
@@ -121,6 +338,7 @@ linux_entry () @@ -121,6 +333,7 @@ linux_entry ()
if [ -z "$boot_device_id" ]; then if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi fi
@ -376,7 +361,7 @@ index cbfaca34cc7..68adb55d893 100644
if [ x$type != xsimple ] ; then if [ x$type != xsimple ] ; then
title=$(mktitle "$type" "$version") title=$(mktitle "$type" "$version")
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
@@ -224,6 +442,7 @@ is_top_level=true @@ -231,6 +444,7 @@ is_top_level=true
while [ "x$list" != "x" ] ; do while [ "x$list" != "x" ] ; do
linux=`version_find_latest $list` linux=`version_find_latest $list`
gettext_printf "Found linux image: %s\n" "$linux" >&2 gettext_printf "Found linux image: %s\n" "$linux" >&2
@ -384,7 +369,7 @@ index cbfaca34cc7..68adb55d893 100644
basename=`basename $linux` basename=`basename $linux`
dirname=`dirname $linux` dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname` rel_dirname=`make_system_path_relative_to_its_root $dirname`
@@ -262,7 +481,9 @@ while [ "x$list" != "x" ] ; do @@ -269,7 +483,9 @@ while [ "x$list" != "x" ] ; do
for i in ${initrd}; do for i in ${initrd}; do
initrd_display="${initrd_display} ${dirname}/${i}" initrd_display="${initrd_display} ${dirname}/${i}"
done done

@ -12,7 +12,7 @@ Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index a3e215155bd..c60601b699d 100644 index a3e215155b..c60601b699 100644
--- a/grub-core/kern/misc.c --- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c
@@ -1201,7 +1201,7 @@ static void __attribute__ ((noreturn)) @@ -1201,7 +1201,7 @@ static void __attribute__ ((noreturn))

@ -7,20 +7,23 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
[jhlavac: Use ${etcdefaultgrub} instead of /etc/default/grub] [jhlavac: Use ${etcdefaultgrub} instead of /etc/default/grub]
Signed-off-by: Jan Hlavac <jhlavac@redhat.com> Signed-off-by: Jan Hlavac <jhlavac@redhat.com>
[rharwood: skip on ostree installations, migrate man to h2m]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
Makefile.util.def | 7 + Makefile.util.def | 7 +
util/grub-set-password.in | 2 +- docs/man/grub-switch-to-blscfg.h2m | 2 +
util/grub-switch-to-blscfg.8 | 33 +++++ util/grub-set-password.in | 2 +-
util/grub-switch-to-blscfg.in | 317 ++++++++++++++++++++++++++++++++++++++++++ util/grub-switch-to-blscfg.in | 317 +++++++++++++++++++++++++++++++++++++
4 files changed, 358 insertions(+), 1 deletion(-) util/grub.d/10_linux.in | 2 +-
create mode 100644 util/grub-switch-to-blscfg.8 5 files changed, 328 insertions(+), 2 deletions(-)
create mode 100644 docs/man/grub-switch-to-blscfg.h2m
create mode 100644 util/grub-switch-to-blscfg.in create mode 100644 util/grub-switch-to-blscfg.in
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index cdd2f51fe4b..afc4d7b0c3e 100644 index 18a9242776..88f55e35c4 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -1364,6 +1364,13 @@ program = { @@ -1348,6 +1348,13 @@ program = {
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
}; };
@ -34,8 +37,16 @@ index cdd2f51fe4b..afc4d7b0c3e 100644
program = { program = {
name = grub-glue-efi; name = grub-glue-efi;
mansection = 1; mansection = 1;
diff --git a/docs/man/grub-switch-to-blscfg.h2m b/docs/man/grub-switch-to-blscfg.h2m
new file mode 100644
index 0000000000..fa341426a5
--- /dev/null
+++ b/docs/man/grub-switch-to-blscfg.h2m
@@ -0,0 +1,2 @@
+[NAME]
+grub-switch-to-blscfg \- switch to using BLS config files
diff --git a/util/grub-set-password.in b/util/grub-set-password.in diff --git a/util/grub-set-password.in b/util/grub-set-password.in
index 5ebf50576d6..c0b5ebbfdc5 100644 index 5ebf50576d..c0b5ebbfdc 100644
--- a/util/grub-set-password.in --- a/util/grub-set-password.in
+++ b/util/grub-set-password.in +++ b/util/grub-set-password.in
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@ -46,48 +57,9 @@ index 5ebf50576d6..c0b5ebbfdc5 100644
if [ -d /sys/firmware/efi/efivars/ ]; then if [ -d /sys/firmware/efi/efivars/ ]; then
grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'`
else else
diff --git a/util/grub-switch-to-blscfg.8 b/util/grub-switch-to-blscfg.8
new file mode 100644
index 00000000000..9a886282976
--- /dev/null
+++ b/util/grub-switch-to-blscfg.8
@@ -0,0 +1,33 @@
+.TH GRUB-SWITCH-TO-BLSCFG 1 "Wed Feb 26 2014"
+.SH NAME
+\fBgrub-switch-to-blscfg\fR \(em Switch to using BLS config files.
+
+.SH SYNOPSIS
+\fBgrub-switch-to-blscfg\fR [--grub-directory=\fIDIR\fR] [--config-file=\fIFILE\fR] [--grub-defaults=\fIFILE\fR]
+
+.SH DESCRIPTION
+\fBgrub-switch-to-blscfg\fR reconfigures grub-mkconfig to use BLS-style config files, and then regenerates the GRUB configuration.
+
+.SH OPTIONS
+.TP
+--grub-directory=\fIDIR\fR
+Search for grub.cfg under \fIDIR\fR. The default value is \fI/boot/efi/EFI/\fBVENDOR\fR on UEFI machines and \fI/boot/grub2\fR elsewhere.
+
+.TP
+--config-file=\fIFILE\fR
+The grub config file to use. The default value is \fI/etc/grub2-efi.cfg\fR on UEFI machines and \fI/etc/grub2.cfg\fR elsewhere. Symbolic links will be followed.
+
+.TP
+--grub-defaults=\fIFILE\fR
+The defaults file for grub-mkconfig. The default value is \fI/etc/default/grub\fR.
+
+.TP
+--bls-directory=\fIDIR\fR
+Create BootLoaderSpec fragments in \fIDIR\fR. The default value is \fI/boot/loader/entries\fR.
+
+.TP
+--backup-suffix=\fSUFFIX\fR
+The suffix to use for saved backup files. The default value is \fI.bak\fR.
+
+.SH SEE ALSO
+.BR "info grub"
diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in
new file mode 100644 new file mode 100644
index 00000000000..a851424beb2 index 0000000000..a851424beb
--- /dev/null --- /dev/null
+++ b/util/grub-switch-to-blscfg.in +++ b/util/grub-switch-to-blscfg.in
@@ -0,0 +1,317 @@ @@ -0,0 +1,317 @@
@ -408,3 +380,16 @@ index 00000000000..a851424beb2
+ +
+# Bye. +# Bye.
+exit 0 +exit 0
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 2851952659..e490e1a43a 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -138,7 +138,7 @@ blsdir="/boot/loader/entries"
get_sorted_bls()
{
- if ! [ -d "${blsdir}" ]; then
+ if ! [ -d "${blsdir}" ] || [ -f /run/ostree-booted ] || [ -d /ostree/repo ]; then
return
fi

@ -38,7 +38,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
delete mode 100644 grub-core/lib/i386/backtrace.c delete mode 100644 grub-core/lib/i386/backtrace.c
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index afc4d7b0c3e..41906486a71 100644 index 88f55e35c4..bda9fd1211 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -51,6 +51,12 @@ library = { @@ -51,6 +51,12 @@ library = {
@ -55,7 +55,7 @@ index afc4d7b0c3e..41906486a71 100644
library = { library = {
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 5354f9613d3..4b7c45a7b06 100644 index 058c88ac3a..52ec0fafcd 100644
--- a/grub-core/Makefile.core.def --- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def
@@ -142,6 +142,12 @@ kernel = { @@ -142,6 +142,12 @@ kernel = {
@ -81,7 +81,7 @@ index 5354f9613d3..4b7c45a7b06 100644
i386 = kern/i386/dl.c; i386 = kern/i386/dl.c;
i386_xen = kern/i386/dl.c; i386_xen = kern/i386/dl.c;
i386_xen_pvh = kern/i386/dl.c; i386_xen_pvh = kern/i386/dl.c;
@@ -2398,15 +2401,12 @@ module = { @@ -2399,15 +2402,12 @@ module = {
module = { module = {
name = backtrace; name = backtrace;
@ -103,7 +103,7 @@ diff --git a/grub-core/lib/backtrace.c b/grub-core/commands/backtrace.c
similarity index 98% similarity index 98%
rename from grub-core/lib/backtrace.c rename from grub-core/lib/backtrace.c
rename to grub-core/commands/backtrace.c rename to grub-core/commands/backtrace.c
index c0ad6ab8be1..8b5ec3913b5 100644 index c0ad6ab8be..8b5ec3913b 100644
--- a/grub-core/lib/backtrace.c --- a/grub-core/lib/backtrace.c
+++ b/grub-core/commands/backtrace.c +++ b/grub-core/commands/backtrace.c
@@ -54,7 +54,7 @@ grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)), @@ -54,7 +54,7 @@ grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)),
@ -116,7 +116,7 @@ index c0ad6ab8be1..8b5ec3913b5 100644
} }
diff --git a/grub-core/gdb/cstub.c b/grub-core/gdb/cstub.c diff --git a/grub-core/gdb/cstub.c b/grub-core/gdb/cstub.c
index b64acd70fee..99281472d36 100644 index b64acd70fe..99281472d3 100644
--- a/grub-core/gdb/cstub.c --- a/grub-core/gdb/cstub.c
+++ b/grub-core/gdb/cstub.c +++ b/grub-core/gdb/cstub.c
@@ -215,7 +215,6 @@ grub_gdb_trap (int trap_no) @@ -215,7 +215,6 @@ grub_gdb_trap (int trap_no)
@ -129,7 +129,7 @@ index b64acd70fee..99281472d36 100644
diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c
new file mode 100644 new file mode 100644
index 00000000000..019c6fdfef2 index 0000000000..019c6fdfef
--- /dev/null --- /dev/null
+++ b/grub-core/kern/arm64/backtrace.c +++ b/grub-core/kern/arm64/backtrace.c
@@ -0,0 +1,94 @@ @@ -0,0 +1,94 @@
@ -229,7 +229,7 @@ index 00000000000..019c6fdfef2
+} +}
diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c
new file mode 100644 new file mode 100644
index 00000000000..4a82e865cc6 index 0000000000..4a82e865cc
--- /dev/null --- /dev/null
+++ b/grub-core/kern/backtrace.c +++ b/grub-core/kern/backtrace.c
@@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
@ -331,7 +331,7 @@ index 00000000000..4a82e865cc6
+ grub_backtrace (skip + 1); + grub_backtrace (skip + 1);
+} +}
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 7afb9e6f724..88d2077709e 100644 index 7afb9e6f72..88d2077709 100644
--- a/grub-core/kern/dl.c --- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c
@@ -124,6 +124,50 @@ grub_dl_resolve_symbol (const char *name) @@ -124,6 +124,50 @@ grub_dl_resolve_symbol (const char *name)
@ -395,7 +395,7 @@ index 7afb9e6f724..88d2077709e 100644
i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize))
diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c
new file mode 100644 new file mode 100644
index 00000000000..2413f9a57db index 0000000000..2413f9a57d
--- /dev/null --- /dev/null
+++ b/grub-core/kern/i386/backtrace.c +++ b/grub-core/kern/i386/backtrace.c
@@ -0,0 +1,125 @@ @@ -0,0 +1,125 @@
@ -525,7 +525,7 @@ index 00000000000..2413f9a57db
+#endif +#endif
+} +}
diff --git a/grub-core/kern/i386/pc/init.c b/grub-core/kern/i386/pc/init.c diff --git a/grub-core/kern/i386/pc/init.c b/grub-core/kern/i386/pc/init.c
index 27bc68b8a53..b51d0abfa6e 100644 index 27bc68b8a5..b51d0abfa6 100644
--- a/grub-core/kern/i386/pc/init.c --- a/grub-core/kern/i386/pc/init.c
+++ b/grub-core/kern/i386/pc/init.c +++ b/grub-core/kern/i386/pc/init.c
@@ -153,7 +153,7 @@ compact_mem_regions (void) @@ -153,7 +153,7 @@ compact_mem_regions (void)
@ -547,7 +547,7 @@ index 27bc68b8a53..b51d0abfa6e 100644
/* Initialize the console as early as possible. */ /* Initialize the console as early as possible. */
grub_console_init (); grub_console_init ();
diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
index 0cd2a627231..937c1bc44cb 100644 index 0cd2a62723..937c1bc44c 100644
--- a/grub-core/kern/ieee1275/init.c --- a/grub-core/kern/ieee1275/init.c
+++ b/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c
@@ -63,7 +63,6 @@ @@ -63,7 +63,6 @@
@ -559,7 +559,7 @@ index 0cd2a627231..937c1bc44cb 100644
#ifdef __sparc__ #ifdef __sparc__
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index c60601b699d..a432a6be54a 100644 index c60601b699..a432a6be54 100644
--- a/grub-core/kern/misc.c --- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c
@@ -1197,15 +1197,15 @@ grub_printf_fmt_check (const char *fmt, const char *fmt_expected) @@ -1197,15 +1197,15 @@ grub_printf_fmt_check (const char *fmt, const char *fmt_expected)
@ -593,7 +593,7 @@ index c60601b699d..a432a6be54a 100644
grub_vprintf (_(fmt), ap); grub_vprintf (_(fmt), ap);
va_end (ap); va_end (ap);
diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c
index c070afc621f..d8c8377578b 100644 index c070afc621..d8c8377578 100644
--- a/grub-core/kern/mm.c --- a/grub-core/kern/mm.c
+++ b/grub-core/kern/mm.c +++ b/grub-core/kern/mm.c
@@ -97,13 +97,13 @@ get_header_from_pointer (void *ptr, grub_mm_header_t *p, grub_mm_region_t *r) @@ -97,13 +97,13 @@ get_header_from_pointer (void *ptr, grub_mm_header_t *p, grub_mm_region_t *r)
@ -615,7 +615,7 @@ index c070afc621f..d8c8377578b 100644
diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c
deleted file mode 100644 deleted file mode 100644
index 1079b5380e1..00000000000 index 1079b5380e..0000000000
--- a/grub-core/lib/arm64/backtrace.c --- a/grub-core/lib/arm64/backtrace.c
+++ /dev/null +++ /dev/null
@@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
@ -683,7 +683,7 @@ index 1079b5380e1..00000000000
- -
diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c
deleted file mode 100644 deleted file mode 100644
index c67273db3ae..00000000000 index c67273db3a..0000000000
--- a/grub-core/lib/i386/backtrace.c --- a/grub-core/lib/i386/backtrace.c
+++ /dev/null +++ /dev/null
@@ -1,78 +0,0 @@ @@ -1,78 +0,0 @@
@ -766,7 +766,7 @@ index c67273db3ae..00000000000
-} -}
- -
diff --git a/include/grub/backtrace.h b/include/grub/backtrace.h diff --git a/include/grub/backtrace.h b/include/grub/backtrace.h
index 395519762f0..275cf85e2d3 100644 index 395519762f..275cf85e2d 100644
--- a/include/grub/backtrace.h --- a/include/grub/backtrace.h
+++ b/include/grub/backtrace.h +++ b/include/grub/backtrace.h
@@ -19,8 +19,14 @@ @@ -19,8 +19,14 @@
@ -787,7 +787,7 @@ index 395519762f0..275cf85e2d3 100644
#endif #endif
diff --git a/include/grub/dl.h b/include/grub/dl.h diff --git a/include/grub/dl.h b/include/grub/dl.h
index 91933b85f2c..2f76e6b0437 100644 index 91933b85f2..2f76e6b043 100644
--- a/include/grub/dl.h --- a/include/grub/dl.h
+++ b/include/grub/dl.h +++ b/include/grub/dl.h
@@ -259,6 +259,8 @@ grub_dl_is_persistent (grub_dl_t mod) @@ -259,6 +259,8 @@ grub_dl_is_persistent (grub_dl_t mod)
@ -800,7 +800,7 @@ index 91933b85f2c..2f76e6b0437 100644
int isfunc, grub_dl_t mod); int isfunc, grub_dl_t mod);
diff --git a/include/grub/kernel.h b/include/grub/kernel.h diff --git a/include/grub/kernel.h b/include/grub/kernel.h
index abbca5ea335..300a9766cda 100644 index abbca5ea33..300a9766cd 100644
--- a/include/grub/kernel.h --- a/include/grub/kernel.h
+++ b/include/grub/kernel.h +++ b/include/grub/kernel.h
@@ -111,6 +111,9 @@ grub_addr_t grub_modules_get_end (void); @@ -111,6 +111,9 @@ grub_addr_t grub_modules_get_end (void);
@ -814,7 +814,7 @@ index abbca5ea335..300a9766cda 100644
void grub_main (void) __attribute__ ((noreturn)); void grub_main (void) __attribute__ ((noreturn));
diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S
index 9f8265315a9..f3bc41f9d0f 100644 index 9f8265315a..f3bc41f9d0 100644
--- a/grub-core/kern/arm/efi/startup.S --- a/grub-core/kern/arm/efi/startup.S
+++ b/grub-core/kern/arm/efi/startup.S +++ b/grub-core/kern/arm/efi/startup.S
@@ -23,6 +23,8 @@ @@ -23,6 +23,8 @@
@ -827,7 +827,7 @@ index 9f8265315a9..f3bc41f9d0f 100644
/* /*
* EFI_SYSTEM_TABLE and EFI_HANDLE are passed in r1/r0. * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in r1/r0.
diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S
index 3946fe8e183..5679a1d00ad 100644 index 3946fe8e18..5679a1d00a 100644
--- a/grub-core/kern/arm/startup.S --- a/grub-core/kern/arm/startup.S
+++ b/grub-core/kern/arm/startup.S +++ b/grub-core/kern/arm/startup.S
@@ -48,6 +48,8 @@ @@ -48,6 +48,8 @@
@ -840,7 +840,7 @@ index 3946fe8e183..5679a1d00ad 100644
b codestart b codestart
diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S
index 666a7ee3c92..41676bdb2b8 100644 index 666a7ee3c9..41676bdb2b 100644
--- a/grub-core/kern/arm64/efi/startup.S --- a/grub-core/kern/arm64/efi/startup.S
+++ b/grub-core/kern/arm64/efi/startup.S +++ b/grub-core/kern/arm64/efi/startup.S
@@ -19,7 +19,9 @@ @@ -19,7 +19,9 @@
@ -854,7 +854,7 @@ index 666a7ee3c92..41676bdb2b8 100644
/* /*
* EFI_SYSTEM_TABLE and EFI_HANDLE are passed in x1/x0. * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in x1/x0.
diff --git a/grub-core/kern/i386/qemu/startup.S b/grub-core/kern/i386/qemu/startup.S diff --git a/grub-core/kern/i386/qemu/startup.S b/grub-core/kern/i386/qemu/startup.S
index 0d89858d9b3..939f182fc74 100644 index 0d89858d9b..939f182fc7 100644
--- a/grub-core/kern/i386/qemu/startup.S --- a/grub-core/kern/i386/qemu/startup.S
+++ b/grub-core/kern/i386/qemu/startup.S +++ b/grub-core/kern/i386/qemu/startup.S
@@ -24,7 +24,8 @@ @@ -24,7 +24,8 @@
@ -868,7 +868,7 @@ index 0d89858d9b3..939f182fc74 100644
jmp codestart jmp codestart
diff --git a/grub-core/kern/ia64/efi/startup.S b/grub-core/kern/ia64/efi/startup.S diff --git a/grub-core/kern/ia64/efi/startup.S b/grub-core/kern/ia64/efi/startup.S
index d75c6d7cc74..8f2a593e529 100644 index d75c6d7cc7..8f2a593e52 100644
--- a/grub-core/kern/ia64/efi/startup.S --- a/grub-core/kern/ia64/efi/startup.S
+++ b/grub-core/kern/ia64/efi/startup.S +++ b/grub-core/kern/ia64/efi/startup.S
@@ -24,8 +24,9 @@ @@ -24,8 +24,9 @@
@ -883,7 +883,7 @@ index d75c6d7cc74..8f2a593e529 100644
alloc loc0=ar.pfs,2,4,0,0 alloc loc0=ar.pfs,2,4,0,0
mov loc1=rp mov loc1=rp
diff --git a/grub-core/kern/sparc64/ieee1275/crt0.S b/grub-core/kern/sparc64/ieee1275/crt0.S diff --git a/grub-core/kern/sparc64/ieee1275/crt0.S b/grub-core/kern/sparc64/ieee1275/crt0.S
index 03b916f0534..701bf63abcf 100644 index 03b916f053..701bf63abc 100644
--- a/grub-core/kern/sparc64/ieee1275/crt0.S --- a/grub-core/kern/sparc64/ieee1275/crt0.S
+++ b/grub-core/kern/sparc64/ieee1275/crt0.S +++ b/grub-core/kern/sparc64/ieee1275/crt0.S
@@ -22,7 +22,8 @@ @@ -22,7 +22,8 @@
@ -897,7 +897,7 @@ index 03b916f0534..701bf63abcf 100644
ba codestart ba codestart
mov %o4, %o0 mov %o4, %o0
diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
index 80e7a83edf9..f512573c0da 100644 index ee88e44e97..bfd29a3bf0 100644
--- a/grub-core/Makefile.am --- a/grub-core/Makefile.am
+++ b/grub-core/Makefile.am +++ b/grub-core/Makefile.am
@@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h @@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h

@ -8,10 +8,10 @@ Subject: [PATCH] normal: don't draw our startup message if debug is set
1 file changed, 3 insertions(+) 1 file changed, 3 insertions(+)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index d5968797f4f..e349303c29b 100644 index 55558cc0b9..af9792c963 100644
--- a/grub-core/normal/main.c --- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c +++ b/grub-core/normal/main.c
@@ -432,6 +432,9 @@ grub_normal_reader_init (int nested) @@ -430,6 +430,9 @@ grub_normal_reader_init (int nested)
const char *msg_esc = _("ESC at any time exits."); const char *msg_esc = _("ESC at any time exits.");
char *msg_formatted; char *msg_formatted;

@ -17,7 +17,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
diff --git a/include/grub/arm/efi/console.h b/include/grub/arm/efi/console.h diff --git a/include/grub/arm/efi/console.h b/include/grub/arm/efi/console.h
new file mode 100644 new file mode 100644
index 00000000000..1592f6f76b5 index 0000000000..1592f6f76b
--- /dev/null --- /dev/null
+++ b/include/grub/arm/efi/console.h +++ b/include/grub/arm/efi/console.h
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
@ -47,7 +47,7 @@ index 00000000000..1592f6f76b5
+#endif /* ! GRUB_ARM_EFI_CONSOLE_H */ +#endif /* ! GRUB_ARM_EFI_CONSOLE_H */
diff --git a/include/grub/arm64/efi/console.h b/include/grub/arm64/efi/console.h diff --git a/include/grub/arm64/efi/console.h b/include/grub/arm64/efi/console.h
new file mode 100644 new file mode 100644
index 00000000000..95689339384 index 0000000000..9568933938
--- /dev/null --- /dev/null
+++ b/include/grub/arm64/efi/console.h +++ b/include/grub/arm64/efi/console.h
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
@ -77,7 +77,7 @@ index 00000000000..95689339384
+#endif /* ! GRUB_ARM64_EFI_CONSOLE_H */ +#endif /* ! GRUB_ARM64_EFI_CONSOLE_H */
diff --git a/include/grub/i386/efi/console.h b/include/grub/i386/efi/console.h diff --git a/include/grub/i386/efi/console.h b/include/grub/i386/efi/console.h
new file mode 100644 new file mode 100644
index 00000000000..9231375cb07 index 0000000000..9231375cb0
--- /dev/null --- /dev/null
+++ b/include/grub/i386/efi/console.h +++ b/include/grub/i386/efi/console.h
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
@ -107,7 +107,7 @@ index 00000000000..9231375cb07
+#endif /* ! GRUB_I386_EFI_CONSOLE_H */ +#endif /* ! GRUB_I386_EFI_CONSOLE_H */
diff --git a/include/grub/x86_64/efi/console.h b/include/grub/x86_64/efi/console.h diff --git a/include/grub/x86_64/efi/console.h b/include/grub/x86_64/efi/console.h
new file mode 100644 new file mode 100644
index 00000000000..dba9d8678d0 index 0000000000..dba9d8678d
--- /dev/null --- /dev/null
+++ b/include/grub/x86_64/efi/console.h +++ b/include/grub/x86_64/efi/console.h
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@

@ -10,10 +10,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 27 insertions(+) 2 files changed, 27 insertions(+)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 537ed411469..b4455e4732d 100644 index 0d0e6782a1..302300711f 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -1470,7 +1470,15 @@ grub_PROG_TARGET_CC @@ -1442,7 +1442,15 @@ grub_PROG_TARGET_CC
if test "x$TARGET_APPLE_LINKER" != x1 ; then if test "x$TARGET_APPLE_LINKER" != x1 ; then
grub_PROG_OBJCOPY_ABSOLUTE grub_PROG_OBJCOPY_ABSOLUTE
fi fi
@ -30,7 +30,7 @@ index 537ed411469..b4455e4732d 100644
if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then
if test ! -z "$TARGET_IMG_LDSCRIPT"; then if test ! -z "$TARGET_IMG_LDSCRIPT"; then
diff --git a/acinclude.m4 b/acinclude.m4 diff --git a/acinclude.m4 b/acinclude.m4
index 6e14bb553c6..21238fcfd03 100644 index 6e14bb553c..21238fcfd0 100644
--- a/acinclude.m4 --- a/acinclude.m4
+++ b/acinclude.m4 +++ b/acinclude.m4
@@ -136,6 +136,25 @@ if test "x$grub_cv_prog_ld_build_id_none" = xyes; then @@ -136,6 +136,25 @@ if test "x$grub_cv_prog_ld_build_id_none" = xyes; then

@ -13,7 +13,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 20 insertions(+) 2 files changed, 20 insertions(+)
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index a432a6be54a..9a2fae6398e 100644 index a432a6be54..9a2fae6398 100644
--- a/grub-core/kern/misc.c --- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c
@@ -191,6 +191,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition, @@ -191,6 +191,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition,
@ -42,7 +42,7 @@ index a432a6be54a..9a2fae6398e 100644
int int
diff --git a/include/grub/misc.h b/include/grub/misc.h diff --git a/include/grub/misc.h b/include/grub/misc.h
index fd18e6320b8..3adc4036e3b 100644 index fd18e6320b..3adc4036e3 100644
--- a/include/grub/misc.h --- a/include/grub/misc.h
+++ b/include/grub/misc.h +++ b/include/grub/misc.h
@@ -345,6 +345,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, @@ -345,6 +345,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file,

@ -20,7 +20,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
4 files changed, 78 insertions(+), 4 deletions(-) 4 files changed, 78 insertions(+), 4 deletions(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 88d2077709e..9557254035e 100644 index 88d2077709..9557254035 100644
--- a/grub-core/kern/dl.c --- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c
@@ -501,6 +501,23 @@ grub_dl_find_section (Elf_Ehdr *e, const char *name) @@ -501,6 +501,23 @@ grub_dl_find_section (Elf_Ehdr *e, const char *name)
@ -95,7 +95,7 @@ index 88d2077709e..9557254035e 100644
{ {
grub_dl_unload (mod); grub_dl_unload (mod);
diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index ae9885edb84..d6a2fb57789 100644 index ae9885edb8..d6a2fb5778 100644
--- a/grub-core/kern/efi/efi.c --- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c
@@ -296,7 +296,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, @@ -296,7 +296,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid,
@ -117,7 +117,7 @@ index ae9885edb84..d6a2fb57789 100644
} }
diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c
index 6d39bd3ad29..2d12e6188fd 100644 index 6d39bd3ad2..2d12e6188f 100644
--- a/grub-core/kern/efi/init.c --- a/grub-core/kern/efi/init.c
+++ b/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c
@@ -115,10 +115,33 @@ grub_efi_env_init (void) @@ -115,10 +115,33 @@ grub_efi_env_init (void)
@ -164,7 +164,7 @@ index 6d39bd3ad29..2d12e6188fd 100644
} }
diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h
index 03f9a9d0118..2e0691454b1 100644 index 03f9a9d011..2e0691454b 100644
--- a/include/grub/efi/efi.h --- a/include/grub/efi/efi.h
+++ b/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h
@@ -138,7 +138,7 @@ grub_err_t grub_arch_efi_linux_check_image(struct linux_arch_kernel_header *lh); @@ -138,7 +138,7 @@ grub_err_t grub_arch_efi_linux_check_image(struct linux_arch_kernel_header *lh);

@ -9,7 +9,7 @@ Subject: [PATCH] Fixup for newer compiler
2 files changed, 2 insertions(+), 2 deletions(-) 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 2b21cbaa67e..4cc86e9b79e 100644 index 2b21cbaa67..4cc86e9b79 100644
--- a/grub-core/fs/btrfs.c --- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c
@@ -218,7 +218,7 @@ struct grub_btrfs_inode @@ -218,7 +218,7 @@ struct grub_btrfs_inode
@ -22,7 +22,7 @@ index 2b21cbaa67e..4cc86e9b79e 100644
struct grub_btrfs_extent_data struct grub_btrfs_extent_data
{ {
diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h
index 7a93f43291c..8212697bf6b 100644 index 7a93f43291..8212697bf6 100644
--- a/include/grub/gpt_partition.h --- a/include/grub/gpt_partition.h
+++ b/include/grub/gpt_partition.h +++ b/include/grub/gpt_partition.h
@@ -76,7 +76,7 @@ struct grub_gpt_partentry @@ -76,7 +76,7 @@ struct grub_gpt_partentry

@ -26,7 +26,7 @@ Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/include/grub/kernel.h b/include/grub/kernel.h diff --git a/include/grub/kernel.h b/include/grub/kernel.h
index 300a9766cda..55849777eaa 100644 index 300a9766cd..55849777ea 100644
--- a/include/grub/kernel.h --- a/include/grub/kernel.h
+++ b/include/grub/kernel.h +++ b/include/grub/kernel.h
@@ -111,8 +111,10 @@ grub_addr_t grub_modules_get_end (void); @@ -111,8 +111,10 @@ grub_addr_t grub_modules_get_end (void);

@ -8,7 +8,7 @@ Subject: [PATCH] Fixup for newer compiler
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/conf/Makefile.common b/conf/Makefile.common diff --git a/conf/Makefile.common b/conf/Makefile.common
index 191b1a70c6b..5f0ef969857 100644 index 191b1a70c6..5f0ef96985 100644
--- a/conf/Makefile.common --- a/conf/Makefile.common
+++ b/conf/Makefile.common +++ b/conf/Makefile.common
@@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding @@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding

@ -38,7 +38,7 @@ Signed-off-by: Mark Salter <msalter@redhat.com>
12 files changed, 219 insertions(+), 152 deletions(-) 12 files changed, 219 insertions(+), 152 deletions(-)
diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c
index 54306e3b16d..67b409a8acc 100644 index 54306e3b16..67b409a8ac 100644
--- a/grub-core/net/arp.c --- a/grub-core/net/arp.c
+++ b/grub-core/net/arp.c +++ b/grub-core/net/arp.c
@@ -31,22 +31,12 @@ enum @@ -31,22 +31,12 @@ enum
@ -271,7 +271,7 @@ index 54306e3b16d..67b409a8acc 100644
/* Change operation to REPLY and send packet */ /* Change operation to REPLY and send packet */
send_ethernet_packet (inf, &nb_reply, target, GRUB_NET_ETHERTYPE_ARP); send_ethernet_packet (inf, &nb_reply, target, GRUB_NET_ETHERTYPE_ARP);
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
index e28fb6a09f9..08b6b2b5d6c 100644 index e28fb6a09f..08b6b2b5d6 100644
--- a/grub-core/net/bootp.c --- a/grub-core/net/bootp.c
+++ b/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c
@@ -233,7 +233,6 @@ grub_net_configure_by_dhcp_ack (const char *name, @@ -233,7 +233,6 @@ grub_net_configure_by_dhcp_ack (const char *name,
@ -318,7 +318,7 @@ index e28fb6a09f9..08b6b2b5d6c 100644
grub_netbuff_push (nb, sizeof (*udph)); grub_netbuff_push (nb, sizeof (*udph));
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 173fb63153c..a673bea807a 100644 index 173fb63153..a673bea807 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -279,6 +279,9 @@ grub_efinet_findcards (void) @@ -279,6 +279,9 @@ grub_efinet_findcards (void)
@ -346,7 +346,7 @@ index 173fb63153c..a673bea807a 100644
card->efi_handle = *handle; card->efi_handle = *handle;
diff --git a/grub-core/net/drivers/emu/emunet.c b/grub-core/net/drivers/emu/emunet.c diff --git a/grub-core/net/drivers/emu/emunet.c b/grub-core/net/drivers/emu/emunet.c
index b194920861f..5b6c5e16a6d 100644 index b194920861..5b6c5e16a6 100644
--- a/grub-core/net/drivers/emu/emunet.c --- a/grub-core/net/drivers/emu/emunet.c
+++ b/grub-core/net/drivers/emu/emunet.c +++ b/grub-core/net/drivers/emu/emunet.c
@@ -46,6 +46,7 @@ static struct grub_net_card emucard = @@ -46,6 +46,7 @@ static struct grub_net_card emucard =
@ -358,7 +358,7 @@ index b194920861f..5b6c5e16a6d 100644
}, },
.flags = 0 .flags = 0
diff --git a/grub-core/net/drivers/i386/pc/pxe.c b/grub-core/net/drivers/i386/pc/pxe.c diff --git a/grub-core/net/drivers/i386/pc/pxe.c b/grub-core/net/drivers/i386/pc/pxe.c
index 3f4152d036c..9f8fb4b6d2b 100644 index 3f4152d036..9f8fb4b6d2 100644
--- a/grub-core/net/drivers/i386/pc/pxe.c --- a/grub-core/net/drivers/i386/pc/pxe.c
+++ b/grub-core/net/drivers/i386/pc/pxe.c +++ b/grub-core/net/drivers/i386/pc/pxe.c
@@ -386,20 +386,21 @@ GRUB_MOD_INIT(pxe) @@ -386,20 +386,21 @@ GRUB_MOD_INIT(pxe)
@ -390,7 +390,7 @@ index 3f4152d036c..9f8fb4b6d2b 100644
grub_pxe_card.default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; grub_pxe_card.default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET;
diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c
index 3860b6f78d8..bcb3f9ea02d 100644 index 3860b6f78d..bcb3f9ea02 100644
--- a/grub-core/net/drivers/ieee1275/ofnet.c --- a/grub-core/net/drivers/ieee1275/ofnet.c
+++ b/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c
@@ -160,6 +160,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -160,6 +160,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath,
@ -410,7 +410,7 @@ index 3860b6f78d8..bcb3f9ea02d 100644
card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; card->txbufsize = ALIGN_UP (card->mtu, 64) + 256;
diff --git a/grub-core/net/drivers/uboot/ubootnet.c b/grub-core/net/drivers/uboot/ubootnet.c diff --git a/grub-core/net/drivers/uboot/ubootnet.c b/grub-core/net/drivers/uboot/ubootnet.c
index 056052e40d5..22ebcbf211e 100644 index 056052e40d..22ebcbf211 100644
--- a/grub-core/net/drivers/uboot/ubootnet.c --- a/grub-core/net/drivers/uboot/ubootnet.c
+++ b/grub-core/net/drivers/uboot/ubootnet.c +++ b/grub-core/net/drivers/uboot/ubootnet.c
@@ -131,6 +131,7 @@ GRUB_MOD_INIT (ubootnet) @@ -131,6 +131,7 @@ GRUB_MOD_INIT (ubootnet)
@ -422,7 +422,7 @@ index 056052e40d5..22ebcbf211e 100644
card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; card->txbufsize = ALIGN_UP (card->mtu, 64) + 256;
card->txbuf = grub_zalloc (card->txbufsize); card->txbuf = grub_zalloc (card->txbufsize);
diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c
index 4d7ceed6f93..9aae83a5eb4 100644 index 4d7ceed6f9..9aae83a5eb 100644
--- a/grub-core/net/ethernet.c --- a/grub-core/net/ethernet.c
+++ b/grub-core/net/ethernet.c +++ b/grub-core/net/ethernet.c
@@ -29,13 +29,6 @@ @@ -29,13 +29,6 @@
@ -572,7 +572,7 @@ index 4d7ceed6f93..9aae83a5eb4 100644
{ {
/* ARP packet. */ /* ARP packet. */
diff --git a/grub-core/net/icmp6.c b/grub-core/net/icmp6.c diff --git a/grub-core/net/icmp6.c b/grub-core/net/icmp6.c
index 2cbd95dce25..56a3ec5c8e8 100644 index 2cbd95dce2..56a3ec5c8e 100644
--- a/grub-core/net/icmp6.c --- a/grub-core/net/icmp6.c
+++ b/grub-core/net/icmp6.c +++ b/grub-core/net/icmp6.c
@@ -231,8 +231,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb, @@ -231,8 +231,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb,
@ -612,7 +612,7 @@ index 2cbd95dce25..56a3ec5c8e8 100644
} }
if (ohdr->type == OPTION_PREFIX && ohdr->len == 4) if (ohdr->type == OPTION_PREFIX && ohdr->len == 4)
diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c
index ea5edf8f1f6..a5896f6dc26 100644 index ea5edf8f1f..a5896f6dc2 100644
--- a/grub-core/net/ip.c --- a/grub-core/net/ip.c
+++ b/grub-core/net/ip.c +++ b/grub-core/net/ip.c
@@ -276,8 +276,8 @@ handle_dgram (struct grub_net_buff *nb, @@ -276,8 +276,8 @@ handle_dgram (struct grub_net_buff *nb,
@ -627,7 +627,7 @@ index ea5edf8f1f6..a5896f6dc26 100644
grub_net_process_dhcp (nb, inf); grub_net_process_dhcp (nb, inf);
grub_netbuff_free (nb); grub_netbuff_free (nb);
diff --git a/grub-core/net/net.c b/grub-core/net/net.c diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 22f2689aaeb..a46f82362ed 100644 index 22f2689aae..a46f82362e 100644
--- a/grub-core/net/net.c --- a/grub-core/net/net.c
+++ b/grub-core/net/net.c +++ b/grub-core/net/net.c
@@ -133,8 +133,9 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, @@ -133,8 +133,9 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf,
@ -713,7 +713,7 @@ index 22f2689aaeb..a46f82362ed 100644
int int
diff --git a/include/grub/net.h b/include/grub/net.h diff --git a/include/grub/net.h b/include/grub/net.h
index 8a05ec4fe7a..af0404db7e3 100644 index 8a05ec4fe7..af0404db7e 100644
--- a/include/grub/net.h --- a/include/grub/net.h
+++ b/include/grub/net.h +++ b/include/grub/net.h
@@ -29,7 +29,8 @@ @@ -29,7 +29,8 @@

@ -18,7 +18,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
4 files changed, 109 insertions(+), 12 deletions(-) 4 files changed, 109 insertions(+), 12 deletions(-)
diff --git a/grub-core/net/http.c b/grub-core/net/http.c diff --git a/grub-core/net/http.c b/grub-core/net/http.c
index b616cf40b1e..12a2632ea55 100644 index b616cf40b1..12a2632ea5 100644
--- a/grub-core/net/http.c --- a/grub-core/net/http.c
+++ b/grub-core/net/http.c +++ b/grub-core/net/http.c
@@ -289,7 +289,9 @@ http_receive (grub_net_tcp_socket_t sock __attribute__ ((unused)), @@ -289,7 +289,9 @@ http_receive (grub_net_tcp_socket_t sock __attribute__ ((unused)),
@ -87,7 +87,7 @@ index b616cf40b1e..12a2632ea55 100644
file); file);
if (!data->sock) if (!data->sock)
diff --git a/grub-core/net/net.c b/grub-core/net/net.c diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index a46f82362ed..0ce5e675ed7 100644 index a46f82362e..0ce5e675ed 100644
--- a/grub-core/net/net.c --- a/grub-core/net/net.c
+++ b/grub-core/net/net.c +++ b/grub-core/net/net.c
@@ -444,6 +444,13 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) @@ -444,6 +444,13 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest)
@ -225,7 +225,7 @@ index a46f82362ed..0ce5e675ed7 100644
} }
diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c
index 4ab2f5c7357..d54b13f09ff 100644 index 4ab2f5c735..d54b13f09f 100644
--- a/grub-core/net/tftp.c --- a/grub-core/net/tftp.c
+++ b/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c
@@ -295,6 +295,7 @@ tftp_open (struct grub_file *file, const char *filename) @@ -295,6 +295,7 @@ tftp_open (struct grub_file *file, const char *filename)
@ -257,7 +257,7 @@ index 4ab2f5c7357..d54b13f09ff 100644
if (!data->sock) if (!data->sock)
{ {
diff --git a/include/grub/net.h b/include/grub/net.h diff --git a/include/grub/net.h b/include/grub/net.h
index af0404db7e3..d55d505a03a 100644 index af0404db7e..d55d505a03 100644
--- a/include/grub/net.h --- a/include/grub/net.h
+++ b/include/grub/net.h +++ b/include/grub/net.h
@@ -273,6 +273,7 @@ typedef struct grub_net @@ -273,6 +273,7 @@ typedef struct grub_net

@ -19,7 +19,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
5 files changed, 1002 insertions(+), 209 deletions(-) 5 files changed, 1002 insertions(+), 209 deletions(-)
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
index 08b6b2b5d6c..fe93b80f1cf 100644 index 08b6b2b5d6..fe93b80f1c 100644
--- a/grub-core/net/bootp.c --- a/grub-core/net/bootp.c
+++ b/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c
@@ -24,6 +24,98 @@ @@ -24,6 +24,98 @@
@ -1136,7 +1136,7 @@ index 08b6b2b5d6c..fe93b80f1cf 100644
grub_unregister_command (cmd_bootp); grub_unregister_command (cmd_bootp);
grub_unregister_command (cmd_dhcp); grub_unregister_command (cmd_dhcp);
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index a673bea807a..8e25680db0c 100644 index a673bea807..8e25680db0 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -393,9 +393,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -393,9 +393,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
@ -1174,7 +1174,7 @@ index a673bea807a..8e25680db0c 100644
} }
else else
diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c
index a5896f6dc26..ce6bdc75c6d 100644 index a5896f6dc2..ce6bdc75c6 100644
--- a/grub-core/net/ip.c --- a/grub-core/net/ip.c
+++ b/grub-core/net/ip.c +++ b/grub-core/net/ip.c
@@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb, @@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb,
@ -1224,7 +1224,7 @@ index a5896f6dc26..ce6bdc75c6d 100644
{ {
const struct grub_net_bootp_packet *bootp; const struct grub_net_bootp_packet *bootp;
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 99628801478..7614b58dca8 100644 index 9962880147..7614b58dca 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -1532,7 +1532,7 @@ typedef struct grub_efi_pxe_ip_filter @@ -1532,7 +1532,7 @@ typedef struct grub_efi_pxe_ip_filter
@ -1237,7 +1237,7 @@ index 99628801478..7614b58dca8 100644
} grub_efi_pxe_ip_filter_t; } grub_efi_pxe_ip_filter_t;
diff --git a/include/grub/net.h b/include/grub/net.h diff --git a/include/grub/net.h b/include/grub/net.h
index d55d505a03a..543251f7273 100644 index d55d505a03..543251f727 100644
--- a/include/grub/net.h --- a/include/grub/net.h
+++ b/include/grub/net.h +++ b/include/grub/net.h
@@ -451,50 +451,65 @@ struct grub_net_bootp_packet @@ -451,50 +451,65 @@ struct grub_net_bootp_packet

@ -15,7 +15,7 @@ Signed-off-by: Ken Lin <ken.lin@hpe.com>
2 files changed, 46 insertions(+), 27 deletions(-) 2 files changed, 46 insertions(+), 27 deletions(-)
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 8e25680db0c..014e5bf9802 100644 index 8e25680db0..014e5bf980 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -409,6 +409,8 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -409,6 +409,8 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
@ -28,7 +28,7 @@ index 8e25680db0c..014e5bf9802 100644
else else
{ {
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 7614b58dca8..91ab528e4d0 100644 index 7614b58dca..91ab528e4d 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -1524,31 +1524,6 @@ typedef union @@ -1524,31 +1524,6 @@ typedef union

@ -12,7 +12,7 @@ Signed-off-by: Ken Lin <ken.lin@hpe.com>
1 file changed, 17 insertions(+) 1 file changed, 17 insertions(+)
diff --git a/docs/grub.texi b/docs/grub.texi diff --git a/docs/grub.texi b/docs/grub.texi
index 0615d0ed97e..04ed6ac1f07 100644 index 0615d0ed97..04ed6ac1f0 100644
--- a/docs/grub.texi --- a/docs/grub.texi
+++ b/docs/grub.texi +++ b/docs/grub.texi
@@ -5487,6 +5487,7 @@ This command is only available on AArch64 systems. @@ -5487,6 +5487,7 @@ This command is only available on AArch64 systems.

@ -22,7 +22,7 @@ Signed-off-by: Ken Lin <ken.lin@hpe.com>
2 files changed, 56 insertions(+) 2 files changed, 56 insertions(+)
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
index fe93b80f1cf..8fb8918ae7e 100644 index fe93b80f1c..8fb8918ae7 100644
--- a/grub-core/net/bootp.c --- a/grub-core/net/bootp.c
+++ b/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c
@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
@ -95,7 +95,7 @@ index fe93b80f1cf..8fb8918ae7e 100644
if (opt && opt_len) if (opt && opt_len)
grub_env_set_net_property (name, "extensionspath", (const char *) opt, opt_len); grub_env_set_net_property (name, "extensionspath", (const char *) opt, opt_len);
diff --git a/include/grub/net.h b/include/grub/net.h diff --git a/include/grub/net.h b/include/grub/net.h
index 543251f7273..42af7de250a 100644 index 543251f727..42af7de250 100644
--- a/include/grub/net.h --- a/include/grub/net.h
+++ b/include/grub/net.h +++ b/include/grub/net.h
@@ -531,6 +531,7 @@ enum @@ -531,6 +531,7 @@ enum

@ -1,347 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Michael Chang <mchang@suse.com>
Date: Tue, 6 Feb 2018 09:09:00 +0100
Subject: [PATCH] Add linux and initrd commands for grub-emu
When using grub-emu, the linux and initrd commands are used as arguments
to the kexec command line tool, to allow booting the selected menu entry.
---
grub-core/Makefile.core.def | 1 -
grub-core/kern/emu/main.c | 4 +
grub-core/kern/emu/misc.c | 18 ++++-
grub-core/loader/emu/linux.c | 172 +++++++++++++++++++++++++++++++++++++++++++
include/grub/emu/exec.h | 4 +-
include/grub/emu/hostfile.h | 3 +-
include/grub/emu/misc.h | 3 +
grub-core/Makefile.am | 1 +
8 files changed, 202 insertions(+), 4 deletions(-)
create mode 100644 grub-core/loader/emu/linux.c
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 058c88ac3af..5354f9613d3 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1826,7 +1826,6 @@ module = {
common = loader/linux.c;
common = lib/cmdline.c;
- enable = noemu;
efi = loader/efi/linux.c;
};
diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c
index 55ea5a11ccd..846fe9715ec 100644
--- a/grub-core/kern/emu/main.c
+++ b/grub-core/kern/emu/main.c
@@ -107,6 +107,7 @@ static struct argp_option options[] = {
N_("use GRUB files in the directory DIR [default=%s]"), 0},
{"verbose", 'v', 0, 0, N_("print verbose messages."), 0},
{"hold", 'H', N_("SECS"), OPTION_ARG_OPTIONAL, N_("wait until a debugger will attach"), 0},
+ {"kexec", 'X', 0, 0, N_("try the untryable."), 0},
{ 0, 0, 0, 0, 0, 0 }
};
@@ -164,6 +165,9 @@ argp_parser (int key, char *arg, struct argp_state *state)
case 'v':
verbosity++;
break;
+ case 'X':
+ grub_util_set_kexecute();
+ break;
case ARGP_KEY_ARG:
{
diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c
index 0ff13bcaf8c..eeea092752d 100644
--- a/grub-core/kern/emu/misc.c
+++ b/grub-core/kern/emu/misc.c
@@ -39,6 +39,7 @@
#include <grub/emu/misc.h>
int verbosity;
+int kexecute;
void
grub_util_warn (const char *fmt, ...)
@@ -82,7 +83,7 @@ grub_util_error (const char *fmt, ...)
vfprintf (stderr, fmt, ap);
va_end (ap);
fprintf (stderr, ".\n");
- exit (1);
+ grub_exit (1);
}
void *
@@ -154,6 +155,9 @@ void
__attribute__ ((noreturn))
grub_exit (int rc)
{
+#if defined (GRUB_KERNEL)
+ grub_reboot();
+#endif
exit (rc < 0 ? 1 : rc);
}
#endif
@@ -215,3 +219,15 @@ grub_util_load_image (const char *path, char *buf)
fclose (fp);
}
+
+void
+grub_util_set_kexecute(void)
+{
+ kexecute++;
+}
+
+int
+grub_util_get_kexecute(void)
+{
+ return kexecute;
+}
diff --git a/grub-core/loader/emu/linux.c b/grub-core/loader/emu/linux.c
new file mode 100644
index 00000000000..fda9e00d24c
--- /dev/null
+++ b/grub-core/loader/emu/linux.c
@@ -0,0 +1,172 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/loader.h>
+#include <grub/dl.h>
+#include <grub/command.h>
+#include <grub/time.h>
+
+#include <grub/emu/exec.h>
+#include <grub/emu/hostfile.h>
+#include <grub/emu/misc.h>
+
+GRUB_MOD_LICENSE ("GPLv3+");
+
+static grub_dl_t my_mod;
+
+static char *kernel_path;
+static char *initrd_path;
+static char *boot_cmdline;
+
+static grub_err_t
+grub_linux_boot (void)
+{
+ grub_err_t rc = GRUB_ERR_NONE;
+ char *initrd_param;
+ const char *kexec[] = { "kexec", "-l", kernel_path, boot_cmdline, NULL, NULL };
+ const char *systemctl[] = { "systemctl", "kexec", NULL };
+ int kexecute = grub_util_get_kexecute();
+
+ if (initrd_path) {
+ initrd_param = grub_xasprintf("--initrd=%s", initrd_path);
+ kexec[3] = initrd_param;
+ kexec[4] = boot_cmdline;
+ } else {
+ initrd_param = grub_xasprintf("%s", "");
+ }
+
+ grub_printf("%serforming 'kexec -l %s %s %s'\n",
+ (kexecute) ? "P" : "Not p",
+ kernel_path, initrd_param, boot_cmdline);
+
+ if (kexecute)
+ rc = grub_util_exec(kexec);
+
+ grub_free(initrd_param);
+
+ if (rc != GRUB_ERR_NONE) {
+ grub_error (rc, N_("Error trying to perform kexec load operation."));
+ grub_sleep (3);
+ return rc;
+ }
+ if (kexecute < 1)
+ grub_fatal (N_("Use '"PACKAGE"-emu --kexec' to force a system restart."));
+
+ grub_printf("Performing 'systemctl kexec' (%s) ",
+ (kexecute==1) ? "do-or-die" : "just-in-case");
+ rc = grub_util_exec (systemctl);
+
+ if (kexecute == 1)
+ grub_fatal (N_("Error trying to perform 'systemctl kexec'"));
+
+ /* need to check read-only root before resetting hard!? */
+ grub_printf("Performing 'kexec -e'");
+ kexec[1] = "-e";
+ kexec[2] = NULL;
+ rc = grub_util_exec(kexec);
+ if ( rc != GRUB_ERR_NONE )
+ grub_fatal (N_("Error trying to directly perform 'kexec -e'."));
+
+ return rc;
+}
+
+static grub_err_t
+grub_linux_unload (void)
+{
+ grub_dl_unref (my_mod);
+ if ( boot_cmdline != NULL )
+ grub_free (boot_cmdline);
+ boot_cmdline = NULL;
+ return GRUB_ERR_NONE;
+}
+
+static grub_err_t
+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[])
+{
+ int i;
+ char *tempstr;
+
+ grub_dl_ref (my_mod);
+
+ if (argc == 0)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected"));
+
+ if ( !grub_util_is_regular(argv[0]) )
+ return grub_error(GRUB_ERR_FILE_NOT_FOUND, N_("Cannot find kernel file %s"), argv[0]);
+
+ if ( kernel_path != NULL )
+ grub_free(kernel_path);
+
+ kernel_path = grub_xasprintf("%s", argv[0]);
+
+ if ( boot_cmdline != NULL ) {
+ grub_free(boot_cmdline);
+ boot_cmdline = NULL;
+ }
+
+ if ( argc > 1 )
+ {
+ boot_cmdline = grub_xasprintf("--command-line=%s", argv[1]);
+ for ( i = 2; i < argc; i++ ) {
+ tempstr = grub_xasprintf("%s %s", boot_cmdline, argv[i]);
+ grub_free(boot_cmdline);
+ boot_cmdline = tempstr;
+ }
+ }
+
+ grub_loader_set (grub_linux_boot, grub_linux_unload, 0);
+
+ return GRUB_ERR_NONE;
+}
+
+static grub_err_t
+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[])
+{
+ if (argc == 0)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected"));
+
+ if ( !grub_util_is_regular(argv[0]) )
+ return grub_error(GRUB_ERR_FILE_NOT_FOUND, N_("Cannot find initrd file %s"), argv[0]);
+
+ if ( initrd_path != NULL )
+ grub_free(initrd_path);
+
+ initrd_path = grub_xasprintf("%s", argv[0]);
+
+ grub_dl_unref (my_mod);
+
+ return GRUB_ERR_NONE;
+}
+
+static grub_command_t cmd_linux, cmd_initrd;
+
+GRUB_MOD_INIT(linux)
+{
+ cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux."));
+ cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, 0, N_("Load initrd."));
+ my_mod = mod;
+ kernel_path = NULL;
+ initrd_path = NULL;
+ boot_cmdline = NULL;
+}
+
+GRUB_MOD_FINI(linux)
+{
+ grub_unregister_command (cmd_linux);
+ grub_unregister_command (cmd_initrd);
+}
diff --git a/include/grub/emu/exec.h b/include/grub/emu/exec.h
index d1073ef86af..1b61b4a2e5d 100644
--- a/include/grub/emu/exec.h
+++ b/include/grub/emu/exec.h
@@ -23,6 +23,8 @@
#include <stdarg.h>
#include <sys/types.h>
+#include <grub/symbol.h>
+
pid_t
grub_util_exec_pipe (const char *const *argv, int *fd);
pid_t
@@ -32,7 +34,7 @@ int
grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file,
const char *stdout_file, const char *stderr_file);
int
-grub_util_exec (const char *const *argv);
+EXPORT_FUNC(grub_util_exec) (const char *const *argv);
int
grub_util_exec_redirect (const char *const *argv, const char *stdin_file,
const char *stdout_file);
diff --git a/include/grub/emu/hostfile.h b/include/grub/emu/hostfile.h
index cfb1e2b5661..a61568e36e9 100644
--- a/include/grub/emu/hostfile.h
+++ b/include/grub/emu/hostfile.h
@@ -22,6 +22,7 @@
#include <grub/disk.h>
#include <grub/partition.h>
#include <sys/types.h>
+#include <grub/symbol.h>
#include <grub/osdep/hostfile.h>
int
@@ -29,7 +30,7 @@ grub_util_is_directory (const char *path);
int
grub_util_is_special_file (const char *path);
int
-grub_util_is_regular (const char *path);
+EXPORT_FUNC(grub_util_is_regular) (const char *path);
char *
grub_util_path_concat (size_t n, ...);
diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h
index ff9c48a6490..01056954b96 100644
--- a/include/grub/emu/misc.h
+++ b/include/grub/emu/misc.h
@@ -57,6 +57,9 @@ void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format (
void EXPORT_FUNC(grub_util_info) (const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 1, 2)));
void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 1, 2), noreturn));
+void EXPORT_FUNC(grub_util_set_kexecute) (void);
+int EXPORT_FUNC(grub_util_get_kexecute) (void) WARN_UNUSED_RESULT;
+
grub_uint64_t EXPORT_FUNC (grub_util_get_cpu_time_ms) (void);
#ifdef HAVE_DEVICE_MAPPER
diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
index ee88e44e97a..80e7a83edf9 100644
--- a/grub-core/Makefile.am
+++ b/grub-core/Makefile.am
@@ -307,6 +307,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/exec.h
if COND_GRUB_EMU_SDL
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h
endif

@ -32,7 +32,7 @@ Signed-off-by: Ken Lin <ken.lin@hpe.com>
2 files changed, 280 insertions(+), 15 deletions(-) 2 files changed, 280 insertions(+), 15 deletions(-)
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 014e5bf9802..8171ecaa5e4 100644 index 014e5bf980..8171ecaa5e 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
@ -375,7 +375,7 @@ index 014e5bf9802..8171ecaa5e4 100644
} }
} }
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 91ab528e4d0..4a51667adb1 100644 index 91ab528e4d..4a51667adb 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -864,6 +864,8 @@ struct grub_efi_ipv4_device_path @@ -864,6 +864,8 @@ struct grub_efi_ipv4_device_path

@ -33,7 +33,7 @@ Signed-off-by: Ken Lin <ken.lin@hpe.com>
2 files changed, 238 insertions(+) 2 files changed, 238 insertions(+)
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 8171ecaa5e4..715a6168d77 100644 index 8171ecaa5e..715a6168d7 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -33,6 +33,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -33,6 +33,8 @@ GRUB_MOD_LICENSE ("GPLv3+");
@ -242,7 +242,7 @@ index 8171ecaa5e4..715a6168d77 100644
} }
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 4a51667adb1..0b490195ad9 100644 index 4a51667adb..0b490195ad 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -352,6 +352,15 @@ @@ -352,6 +352,15 @@

@ -57,10 +57,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
create mode 100644 include/grub/net/efi.h create mode 100644 include/grub/net/efi.h
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 4b7c45a7b06..c40170f2dd2 100644 index 52ec0fafcd..12797336c9 100644
--- a/grub-core/Makefile.core.def --- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def
@@ -2299,6 +2299,12 @@ module = { @@ -2300,6 +2300,12 @@ module = {
common = hook/datehook.c; common = hook/datehook.c;
}; };
@ -73,7 +73,7 @@ index 4b7c45a7b06..c40170f2dd2 100644
module = { module = {
name = net; name = net;
common = net/net.c; common = net/net.c;
@@ -2312,6 +2318,12 @@ module = { @@ -2313,6 +2319,12 @@ module = {
common = net/ethernet.c; common = net/ethernet.c;
common = net/arp.c; common = net/arp.c;
common = net/netbuff.c; common = net/netbuff.c;
@ -87,7 +87,7 @@ index 4b7c45a7b06..c40170f2dd2 100644
module = { module = {
diff --git a/grub-core/io/bufio.c b/grub-core/io/bufio.c diff --git a/grub-core/io/bufio.c b/grub-core/io/bufio.c
index a458c3aca78..1637731535e 100644 index a458c3aca7..1637731535 100644
--- a/grub-core/io/bufio.c --- a/grub-core/io/bufio.c
+++ b/grub-core/io/bufio.c +++ b/grub-core/io/bufio.c
@@ -139,7 +139,7 @@ grub_bufio_read (grub_file_t file, char *buf, grub_size_t len) @@ -139,7 +139,7 @@ grub_bufio_read (grub_file_t file, char *buf, grub_size_t len)
@ -100,7 +100,7 @@ index a458c3aca78..1637731535e 100644
if (file->offset + res < next_buf) if (file->offset + res < next_buf)
{ {
diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index d6a2fb57789..2a446f5031b 100644 index d6a2fb5778..2a446f5031 100644
--- a/grub-core/kern/efi/efi.c --- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c
@@ -755,7 +755,7 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) @@ -755,7 +755,7 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp)
@ -231,7 +231,7 @@ index d6a2fb57789..2a446f5031b 100644
grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype); grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype);
break; break;
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
index 715a6168d77..e11d759f19a 100644 index 715a6168d7..e11d759f19 100644
--- a/grub-core/net/drivers/efi/efinet.c --- a/grub-core/net/drivers/efi/efinet.c
+++ b/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c
@@ -27,6 +27,7 @@ @@ -27,6 +27,7 @@
@ -304,7 +304,7 @@ index 715a6168d77..e11d759f19a 100644
diff --git a/grub-core/net/efi/dhcp.c b/grub-core/net/efi/dhcp.c diff --git a/grub-core/net/efi/dhcp.c b/grub-core/net/efi/dhcp.c
new file mode 100644 new file mode 100644
index 00000000000..dbef63d8c08 index 0000000000..dbef63d8c0
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/dhcp.c +++ b/grub-core/net/efi/dhcp.c
@@ -0,0 +1,397 @@ @@ -0,0 +1,397 @@
@ -707,7 +707,7 @@ index 00000000000..dbef63d8c08
+grub_command_func_t grub_efi_net_bootp6 = grub_cmd_efi_bootp6; +grub_command_func_t grub_efi_net_bootp6 = grub_cmd_efi_bootp6;
diff --git a/grub-core/net/efi/efi_netfs.c b/grub-core/net/efi/efi_netfs.c diff --git a/grub-core/net/efi/efi_netfs.c b/grub-core/net/efi/efi_netfs.c
new file mode 100644 new file mode 100644
index 00000000000..ef371d885ea index 0000000000..ef371d885e
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/efi_netfs.c +++ b/grub-core/net/efi/efi_netfs.c
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
@ -770,7 +770,7 @@ index 00000000000..ef371d885ea
+} +}
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
new file mode 100644 new file mode 100644
index 00000000000..3f61fd2fa5b index 0000000000..3f61fd2fa5
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c
@@ -0,0 +1,419 @@ @@ -0,0 +1,419 @@
@ -1195,7 +1195,7 @@ index 00000000000..3f61fd2fa5b
+ }; + };
diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c
new file mode 100644 new file mode 100644
index 00000000000..b711a5d9457 index 0000000000..b711a5d945
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/ip4_config.c +++ b/grub-core/net/efi/ip4_config.c
@@ -0,0 +1,398 @@ @@ -0,0 +1,398 @@
@ -1599,7 +1599,7 @@ index 00000000000..b711a5d9457
+ }; + };
diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c
new file mode 100644 new file mode 100644
index 00000000000..017c4d05bc7 index 0000000000..017c4d05bc
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/ip6_config.c +++ b/grub-core/net/efi/ip6_config.c
@@ -0,0 +1,422 @@ @@ -0,0 +1,422 @@
@ -2027,7 +2027,7 @@ index 00000000000..017c4d05bc7
+ }; + };
diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c
new file mode 100644 new file mode 100644
index 00000000000..86bce6535d3 index 0000000000..86bce6535d
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c
@@ -0,0 +1,1428 @@ @@ -0,0 +1,1428 @@
@ -3461,7 +3461,7 @@ index 00000000000..86bce6535d3
+} +}
diff --git a/grub-core/net/efi/pxe.c b/grub-core/net/efi/pxe.c diff --git a/grub-core/net/efi/pxe.c b/grub-core/net/efi/pxe.c
new file mode 100644 new file mode 100644
index 00000000000..531949cba5c index 0000000000..531949cba5
--- /dev/null --- /dev/null
+++ b/grub-core/net/efi/pxe.c +++ b/grub-core/net/efi/pxe.c
@@ -0,0 +1,424 @@ @@ -0,0 +1,424 @@
@ -3890,7 +3890,7 @@ index 00000000000..531949cba5c
+ }; + };
+ +
diff --git a/grub-core/net/net.c b/grub-core/net/net.c diff --git a/grub-core/net/net.c b/grub-core/net/net.c
index 0ce5e675ed7..55aed92722c 100644 index 0ce5e675ed..55aed92722 100644
--- a/grub-core/net/net.c --- a/grub-core/net/net.c
+++ b/grub-core/net/net.c +++ b/grub-core/net/net.c
@@ -32,6 +32,9 @@ @@ -32,6 +32,9 @@
@ -4000,7 +4000,7 @@ index 0ce5e675ed7..55aed92722c 100644
+#endif +#endif
} }
diff --git a/util/grub-mknetdir.c b/util/grub-mknetdir.c diff --git a/util/grub-mknetdir.c b/util/grub-mknetdir.c
index a2461cda1c4..77958dd9dd5 100644 index a2461cda1c..77958dd9dd 100644
--- a/util/grub-mknetdir.c --- a/util/grub-mknetdir.c
+++ b/util/grub-mknetdir.c +++ b/util/grub-mknetdir.c
@@ -32,13 +32,15 @@ @@ -32,13 +32,15 @@
@ -4082,7 +4082,7 @@ index a2461cda1c4..77958dd9dd5 100644
if (!grub_install_source_directory) if (!grub_install_source_directory)
{ {
diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 0b490195ad9..f431f49973e 100644 index 0b490195ad..f431f49973 100644
--- a/include/grub/efi/api.h --- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h +++ b/include/grub/efi/api.h
@@ -622,6 +622,23 @@ typedef union @@ -622,6 +622,23 @@ typedef union
@ -4333,7 +4333,7 @@ index 0b490195ad9..f431f49973e 100644
|| defined(__riscv) || defined(__riscv)
diff --git a/include/grub/efi/dhcp.h b/include/grub/efi/dhcp.h diff --git a/include/grub/efi/dhcp.h b/include/grub/efi/dhcp.h
new file mode 100644 new file mode 100644
index 00000000000..fdb88eb810e index 0000000000..fdb88eb810
--- /dev/null --- /dev/null
+++ b/include/grub/efi/dhcp.h +++ b/include/grub/efi/dhcp.h
@@ -0,0 +1,343 @@ @@ -0,0 +1,343 @@
@ -4682,7 +4682,7 @@ index 00000000000..fdb88eb810e
+#endif /* ! GRUB_EFI_DHCP_HEADER */ +#endif /* ! GRUB_EFI_DHCP_HEADER */
diff --git a/include/grub/efi/http.h b/include/grub/efi/http.h diff --git a/include/grub/efi/http.h b/include/grub/efi/http.h
new file mode 100644 new file mode 100644
index 00000000000..c5e9a89f505 index 0000000000..c5e9a89f50
--- /dev/null --- /dev/null
+++ b/include/grub/efi/http.h +++ b/include/grub/efi/http.h
@@ -0,0 +1,215 @@ @@ -0,0 +1,215 @@
@ -4903,7 +4903,7 @@ index 00000000000..c5e9a89f505
+#endif /* !GRUB_EFI_HTTP_HEADER */ +#endif /* !GRUB_EFI_HTTP_HEADER */
diff --git a/include/grub/net/efi.h b/include/grub/net/efi.h diff --git a/include/grub/net/efi.h b/include/grub/net/efi.h
new file mode 100644 new file mode 100644
index 00000000000..de90d223e8e index 0000000000..de90d223e8
--- /dev/null --- /dev/null
+++ b/include/grub/net/efi.h +++ b/include/grub/net/efi.h
@@ -0,0 +1,144 @@ @@ -0,0 +1,144 @@

@ -22,7 +22,7 @@ Signed-off-by: Michael Chang <mchang@suse.com>
2 files changed, 7 insertions(+), 2 deletions(-) 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c
index 86bce6535d3..4bb308026ce 100644 index 86bce6535d..4bb308026c 100644
--- a/grub-core/net/efi/net.c --- a/grub-core/net/efi/net.c
+++ b/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c
@@ -645,8 +645,10 @@ grub_efihttp_chunk_read (grub_file_t file, char *buf, @@ -645,8 +645,10 @@ grub_efihttp_chunk_read (grub_file_t file, char *buf,
@ -38,7 +38,7 @@ index 86bce6535d3..4bb308026ce 100644
if (buf) if (buf)
{ {
diff --git a/grub-core/net/http.c b/grub-core/net/http.c diff --git a/grub-core/net/http.c b/grub-core/net/http.c
index 12a2632ea55..b52b558d631 100644 index 12a2632ea5..b52b558d63 100644
--- a/grub-core/net/http.c --- a/grub-core/net/http.c
+++ b/grub-core/net/http.c +++ b/grub-core/net/http.c
@@ -31,7 +31,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -31,7 +31,8 @@ GRUB_MOD_LICENSE ("GPLv3+");

@ -17,7 +17,7 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1 file changed, 50 insertions(+) 1 file changed, 50 insertions(+)
diff --git a/util/grub-editenv.c b/util/grub-editenv.c diff --git a/util/grub-editenv.c b/util/grub-editenv.c
index db6f187cc63..948eec8a114 100644 index db6f187cc6..948eec8a11 100644
--- a/util/grub-editenv.c --- a/util/grub-editenv.c
+++ b/util/grub-editenv.c +++ b/util/grub-editenv.c
@@ -53,6 +53,9 @@ static struct argp_option options[] = { @@ -53,6 +53,9 @@ static struct argp_option options[] = {

@ -35,12 +35,6 @@ fastboot If set to "1" and the conditions for auto-hiding the menu
https://git.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/tree/debian/patches/quick_boot.patch https://git.launchpad.net/~ubuntu-core-dev/grub/+git/ubuntu/tree/debian/patches/quick_boot.patch
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
Changes in v2:
-Drop shutdown_success tests, there is no meaningful way for systemd to set
this flag (by the time it knows all filesystems are unmounted or read-only
-Drop fwsetup_once support, systemd already supports booting directly into
the fwsetup by doing "systemctl reboot --firmware"
--- ---
Makefile.util.def | 6 +++++ Makefile.util.def | 6 +++++
util/grub.d/01_menu_auto_hide.in | 48 ++++++++++++++++++++++++++++++++++++++++ util/grub.d/01_menu_auto_hide.in | 48 ++++++++++++++++++++++++++++++++++++++++
@ -49,7 +43,7 @@ Changes in v2:
create mode 100644 util/grub.d/01_menu_auto_hide.in create mode 100644 util/grub.d/01_menu_auto_hide.in
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index 41906486a71..04551e095bd 100644 index bda9fd1211..cb8e3c3270 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -458,6 +458,12 @@ script = { @@ -458,6 +458,12 @@ script = {
@ -67,7 +61,7 @@ index 41906486a71..04551e095bd 100644
common = util/grub.d/01_users.in; common = util/grub.d/01_users.in;
diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/01_menu_auto_hide.in diff --git a/util/grub.d/01_menu_auto_hide.in b/util/grub.d/01_menu_auto_hide.in
new file mode 100644 new file mode 100644
index 00000000000..ad175870a54 index 0000000000..ad175870a5
--- /dev/null --- /dev/null
+++ b/util/grub.d/01_menu_auto_hide.in +++ b/util/grub.d/01_menu_auto_hide.in
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
@ -120,7 +114,7 @@ index 00000000000..ad175870a54
+fi +fi
+EOF +EOF
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
index 4b27bd20153..3c9431cfcfb 100644 index 4b27bd2015..3c9431cfcf 100644
--- a/util/grub.d/30_os-prober.in --- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in
@@ -42,6 +42,7 @@ if [ -z "${OSPROBED}" ] ; then @@ -42,6 +42,7 @@ if [ -z "${OSPROBED}" ] ; then

@ -31,24 +31,28 @@ and a symlink to grub-boot-success.timer should be added to
/lib/systemd/user/timers.target.wants. /lib/systemd/user/timers.target.wants.
Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
[makhomed: grub-boot-success.timer: Only run if not in a container]
Signed-off-by: Gena Makhomed <makhomed@gmail.com>
[rharwood: migrate to h2m]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
Makefile.util.def | 7 ++ Makefile.util.def | 7 ++
util/grub-set-bootflag.c | 160 +++++++++++++++++++++++++++++++++++++++++ util/grub-set-bootflag.c | 172 +++++++++++++++++++++++++++++++++++++++++
conf/Makefile.extra-dist | 3 + conf/Makefile.extra-dist | 3 +
docs/grub-boot-success.service | 6 ++ docs/grub-boot-success.service | 6 ++
docs/grub-boot-success.timer | 6 ++ docs/grub-boot-success.timer | 7 ++
util/grub-set-bootflag.1 | 20 ++++++ docs/man/grub-set-bootflag.h2m | 2 +
6 files changed, 202 insertions(+) 6 files changed, 197 insertions(+)
create mode 100644 util/grub-set-bootflag.c create mode 100644 util/grub-set-bootflag.c
create mode 100644 docs/grub-boot-success.service create mode 100644 docs/grub-boot-success.service
create mode 100644 docs/grub-boot-success.timer create mode 100644 docs/grub-boot-success.timer
create mode 100644 util/grub-set-bootflag.1 create mode 100644 docs/man/grub-set-bootflag.h2m
diff --git a/Makefile.util.def b/Makefile.util.def diff --git a/Makefile.util.def b/Makefile.util.def
index 04551e095bd..c6375933faa 100644 index cb8e3c3270..d066652e9b 100644
--- a/Makefile.util.def --- a/Makefile.util.def
+++ b/Makefile.util.def +++ b/Makefile.util.def
@@ -1445,3 +1445,10 @@ program = { @@ -1429,3 +1429,10 @@ program = {
ldadd = grub-core/lib/gnulib/libgnu.a; ldadd = grub-core/lib/gnulib/libgnu.a;
ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
}; };
@ -61,10 +65,10 @@ index 04551e095bd..c6375933faa 100644
+}; +};
diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c diff --git a/util/grub-set-bootflag.c b/util/grub-set-bootflag.c
new file mode 100644 new file mode 100644
index 00000000000..bb198f02351 index 0000000000..d506f7e75b
--- /dev/null --- /dev/null
+++ b/util/grub-set-bootflag.c +++ b/util/grub-set-bootflag.c
@@ -0,0 +1,160 @@ @@ -0,0 +1,172 @@
+/* grub-set-bootflag.c - tool to set boot-flags in the grubenv. */ +/* grub-set-bootflag.c - tool to set boot-flags in the grubenv. */
+/* +/*
+ * GRUB -- GRand Unified Bootloader + * GRUB -- GRand Unified Bootloader
@ -98,6 +102,8 @@ index 00000000000..bb198f02351
+#include <string.h> +#include <string.h>
+#include <unistd.h> +#include <unistd.h>
+ +
+#include "progname.h"
+
+#define GRUBENV "/" GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME "/" GRUB_ENVBLK_DEFCFG +#define GRUBENV "/" GRUB_BOOT_DIR_NAME "/" GRUB_DIR_NAME "/" GRUB_ENVBLK_DEFCFG
+#define GRUBENV_SIZE 1024 +#define GRUBENV_SIZE 1024
+ +
@ -107,13 +113,13 @@ index 00000000000..bb198f02351
+ NULL + NULL
+}; +};
+ +
+static void usage(void) +static void usage(FILE *out)
+{ +{
+ int i; + int i;
+ +
+ fprintf (stderr, "Usage: 'grub-set-bootflag <bootflag>', where <bootflag> is one of:\n"); + fprintf (out, "Usage: 'grub-set-bootflag <bootflag>', where <bootflag> is one of:\n");
+ for (i = 0; bootflags[i]; i++) + for (i = 0; bootflags[i]; i++)
+ fprintf (stderr, " %s\n", bootflags[i]); + fprintf (out, " %s\n", bootflags[i]);
+} +}
+ +
+int main(int argc, char *argv[]) +int main(int argc, char *argv[])
@ -126,9 +132,19 @@ index 00000000000..bb198f02351
+ +
+ if (argc != 2) + if (argc != 2)
+ { + {
+ usage(); + usage (stderr);
+ return 1; + return 1;
+ } + }
+ else if (!strcmp (argv[1], "--help"))
+ {
+ usage (stdout);
+ return 0;
+ }
+ else if (!strcmp (argv[1], "--version"))
+ {
+ printf ("grub-set-bootflag (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
+ return 0;
+ }
+ +
+ for (i = 0; bootflags[i]; i++) + for (i = 0; bootflags[i]; i++)
+ if (!strcmp (argv[1], bootflags[i])) + if (!strcmp (argv[1], bootflags[i]))
@ -136,7 +152,7 @@ index 00000000000..bb198f02351
+ if (!bootflags[i]) + if (!bootflags[i])
+ { + {
+ fprintf (stderr, "Invalid bootflag: '%s'\n", argv[1]); + fprintf (stderr, "Invalid bootflag: '%s'\n", argv[1]);
+ usage(); + usage (stderr);
+ return 1; + return 1;
+ } + }
+ +
@ -226,10 +242,10 @@ index 00000000000..bb198f02351
+ return 0; + return 0;
+} +}
diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist
index b909f2c073a..ea58362b555 100644 index 8f1485d52a..ad235de7fc 100644
--- a/conf/Makefile.extra-dist --- a/conf/Makefile.extra-dist
+++ b/conf/Makefile.extra-dist +++ b/conf/Makefile.extra-dist
@@ -14,6 +14,9 @@ EXTRA_DIST += util/import_unicode.py @@ -15,6 +15,9 @@ EXTRA_DIST += docs/man
EXTRA_DIST += docs/autoiso.cfg EXTRA_DIST += docs/autoiso.cfg
EXTRA_DIST += docs/grub.cfg EXTRA_DIST += docs/grub.cfg
EXTRA_DIST += docs/osdetect.cfg EXTRA_DIST += docs/osdetect.cfg
@ -241,7 +257,7 @@ index b909f2c073a..ea58362b555 100644
diff --git a/docs/grub-boot-success.service b/docs/grub-boot-success.service diff --git a/docs/grub-boot-success.service b/docs/grub-boot-success.service
new file mode 100644 new file mode 100644
index 00000000000..80e79584c91 index 0000000000..80e79584c9
--- /dev/null --- /dev/null
+++ b/docs/grub-boot-success.service +++ b/docs/grub-boot-success.service
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
@ -253,39 +269,22 @@ index 00000000000..80e79584c91
+ExecStart=/usr/sbin/grub2-set-bootflag boot_success +ExecStart=/usr/sbin/grub2-set-bootflag boot_success
diff --git a/docs/grub-boot-success.timer b/docs/grub-boot-success.timer diff --git a/docs/grub-boot-success.timer b/docs/grub-boot-success.timer
new file mode 100644 new file mode 100644
index 00000000000..5d8fcba21aa index 0000000000..406f172005
--- /dev/null --- /dev/null
+++ b/docs/grub-boot-success.timer +++ b/docs/grub-boot-success.timer
@@ -0,0 +1,6 @@ @@ -0,0 +1,7 @@
+[Unit] +[Unit]
+Description=Mark boot as successful after the user session has run 2 minutes +Description=Mark boot as successful after the user session has run 2 minutes
+ConditionUser=!@system +ConditionUser=!@system
+ConditionVirtualization=!container
+ +
+[Timer] +[Timer]
+OnActiveSec=2min +OnActiveSec=2min
diff --git a/util/grub-set-bootflag.1 b/util/grub-set-bootflag.1 diff --git a/docs/man/grub-set-bootflag.h2m b/docs/man/grub-set-bootflag.h2m
new file mode 100644 new file mode 100644
index 00000000000..57801da22a0 index 0000000000..94ec0b92ed
--- /dev/null --- /dev/null
+++ b/util/grub-set-bootflag.1 +++ b/docs/man/grub-set-bootflag.h2m
@@ -0,0 +1,20 @@ @@ -0,0 +1,2 @@
+.TH GRUB-SET-BOOTFLAG 1 "Tue Jun 12 2018" +[NAME]
+.SH NAME +grub-set-bootflag \- set a bootflag in the GRUB environment block
+\fBgrub-set-bootflag\fR \(em Set a bootflag in the GRUB environment block.
+
+.SH SYNOPSIS
+\fBgrub-set-bootflag\fR <\fIBOOTFLAG\fR>
+
+.SH DESCRIPTION
+\fBgrub-set-bootflag\fR is a command line to set bootflags in GRUB's
+stored environment.
+
+.SH COMMANDS
+.TP
+\fBBOOTFLAG\fR
+.RS 7
+Bootflag to set, one of \fIboot_success\fR or \fIshow_menu_once\fR.
+.RE
+
+.SH SEE ALSO
+.BR "info grub"

@ -16,7 +16,7 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
diff --git a/docs/grub-boot-indeterminate.service b/docs/grub-boot-indeterminate.service diff --git a/docs/grub-boot-indeterminate.service b/docs/grub-boot-indeterminate.service
new file mode 100644 new file mode 100644
index 00000000000..6c8dcb186b6 index 0000000000..6c8dcb186b
--- /dev/null --- /dev/null
+++ b/docs/grub-boot-indeterminate.service +++ b/docs/grub-boot-indeterminate.service
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@

@ -9,7 +9,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 13 insertions(+), 1 deletion(-) 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/gentpl.py b/gentpl.py diff --git a/gentpl.py b/gentpl.py
index 2cba0bbbd6f..628e8bec1d7 100644 index c86550d4f9..f3c5f84f85 100644
--- a/gentpl.py --- a/gentpl.py
+++ b/gentpl.py +++ b/gentpl.py
@@ -592,11 +592,21 @@ def platform_conditional(platform, closure): @@ -592,11 +592,21 @@ def platform_conditional(platform, closure):

@ -9,7 +9,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/gentpl.py b/gentpl.py diff --git a/gentpl.py b/gentpl.py
index 628e8bec1d7..34a4eba2b42 100644 index f3c5f84f85..f09b336869 100644
--- a/gentpl.py --- a/gentpl.py
+++ b/gentpl.py +++ b/gentpl.py
@@ -51,6 +51,7 @@ GROUPS["riscv32"] = [ "riscv32_efi" ] @@ -51,6 +51,7 @@ GROUPS["riscv32"] = [ "riscv32_efi" ]

@ -9,7 +9,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 3 insertions(+), 1 deletion(-) 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c
index 4bb308026ce..6603cd83edc 100644 index 4bb308026c..6603cd83ed 100644
--- a/grub-core/net/efi/net.c --- a/grub-core/net/efi/net.c
+++ b/grub-core/net/efi/net.c +++ b/grub-core/net/efi/net.c
@@ -1324,7 +1324,9 @@ grub_efi_net_boot_from_https (void) @@ -1324,7 +1324,9 @@ grub_efi_net_boot_from_https (void)

@ -12,7 +12,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 19 insertions(+) 1 file changed, 19 insertions(+)
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index 3f61fd2fa5b..243acbaa35b 100644 index 3f61fd2fa5..243acbaa35 100644
--- a/grub-core/net/efi/http.c --- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@

@ -17,10 +17,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
3 files changed, 64 insertions(+), 16 deletions(-) 3 files changed, 64 insertions(+), 16 deletions(-)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index b4455e4732d..3405348178a 100644 index 302300711f..008f6c273b 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -877,11 +877,23 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p @@ -849,11 +849,23 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p
TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow" TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow"
fi fi
@ -45,7 +45,7 @@ index b4455e4732d..3405348178a 100644
AC_CACHE_CHECK([for options to get soft-float], grub_cv_target_cc_soft_float, [ AC_CACHE_CHECK([for options to get soft-float], grub_cv_target_cc_soft_float, [
grub_cv_target_cc_soft_float=no grub_cv_target_cc_soft_float=no
if test "x$target_cpu" = xarm64; then if test "x$target_cpu" = xarm64; then
@@ -2018,6 +2030,41 @@ HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include" @@ -1954,6 +1966,41 @@ HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include"
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include" TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include"
TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include" TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include"
@ -88,7 +88,7 @@ index b4455e4732d..3405348178a 100644
GRUB_PLATFORM="${platform}" GRUB_PLATFORM="${platform}"
diff --git a/conf/Makefile.common b/conf/Makefile.common diff --git a/conf/Makefile.common b/conf/Makefile.common
index 5f0ef969857..2ff9b39357c 100644 index 5f0ef96985..2ff9b39357 100644
--- a/conf/Makefile.common --- a/conf/Makefile.common
+++ b/conf/Makefile.common +++ b/conf/Makefile.common
@@ -40,24 +40,25 @@ CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 @@ -40,24 +40,25 @@ CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1
@ -129,7 +129,7 @@ index 5f0ef969857..2ff9b39357c 100644
# Other variables # Other variables
diff --git a/gentpl.py b/gentpl.py diff --git a/gentpl.py b/gentpl.py
index 34a4eba2b42..59f62ef9522 100644 index f09b336869..0e62e14666 100644
--- a/gentpl.py --- a/gentpl.py
+++ b/gentpl.py +++ b/gentpl.py
@@ -697,10 +697,10 @@ def module(defn, platform): @@ -697,10 +697,10 @@ def module(defn, platform):

@ -22,7 +22,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
3 files changed, 13 insertions(+) 3 files changed, 13 insertions(+)
diff --git a/util/grub-module-verifier32.c b/util/grub-module-verifier32.c diff --git a/util/grub-module-verifier32.c b/util/grub-module-verifier32.c
index 257229f8f08..ba7d41aafea 100644 index 257229f8f0..ba7d41aafe 100644
--- a/util/grub-module-verifier32.c --- a/util/grub-module-verifier32.c
+++ b/util/grub-module-verifier32.c +++ b/util/grub-module-verifier32.c
@@ -1,2 +1,4 @@ @@ -1,2 +1,4 @@
@ -31,7 +31,7 @@ index 257229f8f08..ba7d41aafea 100644
#include "grub-module-verifierXX.c" #include "grub-module-verifierXX.c"
+#endif +#endif
diff --git a/util/grub-module-verifier64.c b/util/grub-module-verifier64.c diff --git a/util/grub-module-verifier64.c b/util/grub-module-verifier64.c
index 4db6b4bedd1..fc23ef800b3 100644 index 4db6b4bedd..fc23ef800b 100644
--- a/util/grub-module-verifier64.c --- a/util/grub-module-verifier64.c
+++ b/util/grub-module-verifier64.c +++ b/util/grub-module-verifier64.c
@@ -1,2 +1,4 @@ @@ -1,2 +1,4 @@
@ -40,7 +40,7 @@ index 4db6b4bedd1..fc23ef800b3 100644
#include "grub-module-verifierXX.c" #include "grub-module-verifierXX.c"
+#endif +#endif
diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c
index ceb24309aec..a98e2f9b1ac 100644 index ceb24309ae..a98e2f9b1a 100644
--- a/util/grub-module-verifierXX.c --- a/util/grub-module-verifierXX.c
+++ b/util/grub-module-verifierXX.c +++ b/util/grub-module-verifierXX.c
@@ -1,3 +1,12 @@ @@ -1,3 +1,12 @@

@ -13,16 +13,19 @@ grub_fdt_load in xen_boot is not defined
grub_fdt_unload in xen_boot is not defined grub_fdt_unload in xen_boot is not defined
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
[javierm: Fix build with platform emu, aarch64, and risc-v]
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/Makefile.core.def | 5 ++--- grub-core/Makefile.core.def | 5 ++---
grub-core/lib/fdt.c | 2 -- grub-core/lib/fdt.c | 2 --
grub-core/loader/efi/fdt.c | 2 ++ grub-core/loader/efi/fdt.c | 2 ++
include/grub/fdt.h | 4 ++++ include/grub/fdt.h | 6 ++++++
grub-core/Makefile.am | 1 + grub-core/Makefile.am | 1 +
5 files changed, 9 insertions(+), 5 deletions(-) 5 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index c40170f2dd2..84a3d89de9a 100644 index 12797336c9..4e7d90da76 100644
--- a/grub-core/Makefile.core.def --- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def
@@ -177,7 +177,6 @@ kernel = { @@ -177,7 +177,6 @@ kernel = {
@ -50,7 +53,7 @@ index c40170f2dd2..84a3d89de9a 100644
common = loader/linux.c; common = loader/linux.c;
common = lib/cmdline.c; common = lib/cmdline.c;
@@ -1836,7 +1836,6 @@ module = { @@ -1837,7 +1837,6 @@ module = {
module = { module = {
name = fdt; name = fdt;
efi = loader/efi/fdt.c; efi = loader/efi/fdt.c;
@ -59,7 +62,7 @@ index c40170f2dd2..84a3d89de9a 100644
}; };
diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c
index 0d371c5633e..37e04bd69e7 100644 index 0d371c5633..37e04bd69e 100644
--- a/grub-core/lib/fdt.c --- a/grub-core/lib/fdt.c
+++ b/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c
@@ -21,8 +21,6 @@ @@ -21,8 +21,6 @@
@ -72,7 +75,7 @@ index 0d371c5633e..37e04bd69e7 100644
#define FDT_BEGIN_NODE 0x00000001 #define FDT_BEGIN_NODE 0x00000001
diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c
index c86f283d756..c572415d38a 100644 index c86f283d75..c572415d38 100644
--- a/grub-core/loader/efi/fdt.c --- a/grub-core/loader/efi/fdt.c
+++ b/grub-core/loader/efi/fdt.c +++ b/grub-core/loader/efi/fdt.c
@@ -27,6 +27,8 @@ @@ -27,6 +27,8 @@
@ -85,27 +88,29 @@ index c86f283d756..c572415d38a 100644
static void *fdt; static void *fdt;
diff --git a/include/grub/fdt.h b/include/grub/fdt.h diff --git a/include/grub/fdt.h b/include/grub/fdt.h
index e609c7e4111..22b7c5463fc 100644 index e609c7e411..3514aa4a5b 100644
--- a/include/grub/fdt.h --- a/include/grub/fdt.h
+++ b/include/grub/fdt.h +++ b/include/grub/fdt.h
@@ -19,6 +19,8 @@ @@ -19,6 +19,9 @@
#ifndef GRUB_FDT_HEADER #ifndef GRUB_FDT_HEADER
#define GRUB_FDT_HEADER 1 #define GRUB_FDT_HEADER 1
+#if defined(__arm__) || defined(__aarch64__) +#if !defined(GRUB_MACHINE_EMU) && \
+ (defined(__arm__) || defined(__aarch64__) || defined(__riscv))
+ +
#include <grub/types.h> #include <grub/types.h>
#include <grub/symbol.h> #include <grub/symbol.h>
@@ -144,4 +146,6 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch @@ -144,4 +147,7 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch
grub_fdt_set_prop ((fdt), (nodeoffset), "reg", reg_64, 16); \ grub_fdt_set_prop ((fdt), (nodeoffset), "reg", reg_64, 16); \
}) })
+#endif /* defined(__arm__) || defined(__aarch64__) */ +#endif /* !defined(GRUB_MACHINE_EMU) && \
+ (defined(__arm__) || defined(__aarch64__) || defined(__riscv)) */
+ +
#endif /* ! GRUB_FDT_HEADER */ #endif /* ! GRUB_FDT_HEADER */
diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
index f512573c0da..dd49939aaa9 100644 index bfd29a3bf0..c2e8a82bce 100644
--- a/grub-core/Makefile.am --- a/grub-core/Makefile.am
+++ b/grub-core/Makefile.am +++ b/grub-core/Makefile.am
@@ -76,6 +76,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h @@ -76,6 +76,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h

@ -9,10 +9,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 20 insertions(+) 1 file changed, 20 insertions(+)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 3405348178a..152e7dba652 100644 index 008f6c273b..54462e0892 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -1288,6 +1288,26 @@ if test "x$target_cpu" = xarm; then @@ -1260,6 +1260,26 @@ if test "x$target_cpu" = xarm; then
done done
]) ])

@ -8,13 +8,15 @@ http_path: /foo/bar
http_url: http://www.example.com/foo/bar http_url: http://www.example.com/foo/bar
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Stephen Benjamin <stephen@redhat.com>
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
grub-core/kern/main.c | 10 +++++- grub-core/kern/main.c | 10 +++++-
grub-core/net/efi/http.c | 82 ++++++++++++++++++++++++++++++++++++------------ grub-core/net/efi/http.c | 82 ++++++++++++++++++++++++++++++++++++------------
2 files changed, 71 insertions(+), 21 deletions(-) 2 files changed, 71 insertions(+), 21 deletions(-)
diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
index 48058d983ce..4ec3f5e4d33 100644 index d1de9fa687..1c540fc8c2 100644
--- a/grub-core/kern/main.c --- a/grub-core/kern/main.c
+++ b/grub-core/kern/main.c +++ b/grub-core/kern/main.c
@@ -131,11 +131,19 @@ grub_set_prefix_and_root (void) @@ -131,11 +131,19 @@ grub_set_prefix_and_root (void)
@ -39,7 +41,7 @@ index 48058d983ce..4ec3f5e4d33 100644
} }
} }
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index 243acbaa35b..de351b2cd03 100644 index 243acbaa35..de351b2cd0 100644
--- a/grub-core/net/efi/http.c --- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c +++ b/grub-core/net/efi/http.c
@@ -9,10 +9,52 @@ @@ -9,10 +9,52 @@

@ -10,7 +10,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 17 insertions(+), 4 deletions(-) 2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/grub-core/kern/err.c b/grub-core/kern/err.c diff --git a/grub-core/kern/err.c b/grub-core/kern/err.c
index 53c734de70e..aebfe0cf839 100644 index 53c734de70..aebfe0cf83 100644
--- a/grub-core/kern/err.c --- a/grub-core/kern/err.c
+++ b/grub-core/kern/err.c +++ b/grub-core/kern/err.c
@@ -33,15 +33,24 @@ static struct grub_error_saved grub_error_stack_items[GRUB_ERROR_STACK_SIZE]; @@ -33,15 +33,24 @@ static struct grub_error_saved grub_error_stack_items[GRUB_ERROR_STACK_SIZE];
@ -41,7 +41,7 @@ index 53c734de70e..aebfe0cf839 100644
return n; return n;
diff --git a/include/grub/err.h b/include/grub/err.h diff --git a/include/grub/err.h b/include/grub/err.h
index b08d5d0de4c..c0f90ef07c8 100644 index b08d5d0de4..c0f90ef07c 100644
--- a/include/grub/err.h --- a/include/grub/err.h
+++ b/include/grub/err.h +++ b/include/grub/err.h
@@ -85,8 +85,12 @@ struct grub_error_saved @@ -85,8 +85,12 @@ struct grub_error_saved

@ -12,7 +12,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
1 file changed, 7 insertions(+), 4 deletions(-) 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/grub-core/commands/reboot.c b/grub-core/commands/reboot.c diff --git a/grub-core/commands/reboot.c b/grub-core/commands/reboot.c
index 46d364c99a9..f5cc2283636 100644 index 46d364c99a..f5cc228363 100644
--- a/grub-core/commands/reboot.c --- a/grub-core/commands/reboot.c
+++ b/grub-core/commands/reboot.c +++ b/grub-core/commands/reboot.c
@@ -32,15 +32,18 @@ grub_cmd_reboot (grub_command_t cmd __attribute__ ((unused)), @@ -32,15 +32,18 @@ grub_cmd_reboot (grub_command_t cmd __attribute__ ((unused)),

@ -1,13 +1,15 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com> From: Peter Jones <pjones@redhat.com>
Date: Tue, 11 Sep 2018 14:20:37 -0400 Date: Tue, 11 Sep 2018 14:20:37 -0400
Subject: [PATCH] Add a "version" command. Subject: [PATCH] Add a "version" command
This adds a command that shows you info about grub's version, the grub target This adds a command that shows you info about grub's version, the grub
platform, the compiler version, and if you built with target platform, the compiler version, and if you built with
--with-rpm-version=<string>, the rpm package version. --with-rpm-version=<string>, the rpm package version.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Peter Jones <pjones@redhat.com>
[rharwood: don't say GNU, commit message cleanup]
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
--- ---
configure.ac | 13 ++++++++++ configure.ac | 13 ++++++++++
grub-core/Makefile.core.def | 5 ++++ grub-core/Makefile.core.def | 5 ++++
@ -17,10 +19,10 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
create mode 100644 grub-core/commands/version.c create mode 100644 grub-core/commands/version.c
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 152e7dba652..cfdac6bed5a 100644 index 54462e0892..7b4e1854d3 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -312,6 +312,19 @@ AC_SUBST(target_cpu) @@ -284,6 +284,19 @@ AC_SUBST(target_cpu)
AC_SUBST(platform) AC_SUBST(platform)
# Define default variables # Define default variables
@ -41,7 +43,7 @@ index 152e7dba652..cfdac6bed5a 100644
have_with_bootdir=n have_with_bootdir=n
AC_ARG_WITH([bootdir], AC_ARG_WITH([bootdir],
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 84a3d89de9a..498ca11762a 100644 index 4e7d90da76..4f203533f5 100644
--- a/grub-core/Makefile.core.def --- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def
@@ -579,6 +579,11 @@ image = { @@ -579,6 +579,11 @@ image = {
@ -58,7 +60,7 @@ index 84a3d89de9a..498ca11762a 100644
common = lib/disk.c; common = lib/disk.c;
diff --git a/grub-core/commands/version.c b/grub-core/commands/version.c diff --git a/grub-core/commands/version.c b/grub-core/commands/version.c
new file mode 100644 new file mode 100644
index 00000000000..f0966a518f7 index 0000000000..de0acb07ba
--- /dev/null --- /dev/null
+++ b/grub-core/commands/version.c +++ b/grub-core/commands/version.c
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
@ -97,7 +99,7 @@ index 00000000000..f0966a518f7
+ if (argc != 0) + if (argc != 0)
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("no arguments expected")); + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("no arguments expected"));
+ +
+ grub_printf (_("GNU GRUB version %s\n"), PACKAGE_VERSION); + grub_printf (_("GRUB version %s\n"), PACKAGE_VERSION);
+ grub_printf (_("Platform %s-%s\n"), GRUB_TARGET_CPU, GRUB_PLATFORM); + grub_printf (_("Platform %s-%s\n"), GRUB_TARGET_CPU, GRUB_PLATFORM);
+ if (grub_strlen(GRUB_RPM_VERSION) != 0) + if (grub_strlen(GRUB_RPM_VERSION) != 0)
+ grub_printf (_("RPM package version %s\n"), GRUB_RPM_VERSION); + grub_printf (_("RPM package version %s\n"), GRUB_RPM_VERSION);
@ -119,7 +121,7 @@ index 00000000000..f0966a518f7
+ grub_unregister_command (cmd); + grub_unregister_command (cmd);
+} +}
diff --git a/config.h.in b/config.h.in diff --git a/config.h.in b/config.h.in
index 9e8f9911b18..c7e316f0f1f 100644 index 9e8f9911b1..c7e316f0f1 100644
--- a/config.h.in --- a/config.h.in
+++ b/config.h.in +++ b/config.h.in
@@ -59,6 +59,7 @@ @@ -59,6 +59,7 @@

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save