Commit b61d5663 authored by Rocky Automation's avatar Rocky Automation 📺
Browse files

import grub2-2.02-78.el8

parent 361c0714
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Stephen Benjamin <stephen@redhat.com>
Date: Fri, 12 Apr 2019 10:43:13 -0400
Subject: [PATCH] HTTP boot: strncmp returns 0 on equal
Resolves: rhbz#1490991
---
grub-core/net/efi/http.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index 2a9624dacc4..484e0c68cee 100644
--- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c
@@ -19,7 +19,7 @@ http_configure (struct grub_efi_net_device *dev, int prefer_ip6)
const char *rest, *http_server, *http_path = NULL;
http_server = grub_env_get ("root");
- https = grub_strncmp (http_server, "https", 5) ? 1 : 0;
+ https = (grub_strncmp (http_server, "https", 5) == 0) ? 1 : 0;
/* extract http server + port */
if (http_server)
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 25 Apr 2019 17:50:23 +0200
Subject: [PATCH] Don't duplicate net->name string if not needed
Related: rhbz#1490991
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
grub-core/net/efi/http.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c
index 484e0c68cee..de351b2cd03 100644
--- a/grub-core/net/efi/http.c
+++ b/grub-core/net/efi/http.c
@@ -394,27 +394,27 @@ grub_efihttp_open (struct grub_efi_net_device *dev,
grub_err_t err;
grub_off_t size;
char *buf;
- char *file_name;
+ char *file_name = NULL;
const char *http_path;
/* If path is relative, prepend http_path */
http_path = grub_env_get ("http_path");
- if (http_path && file->device->net->name[0] != '/')
+ if (http_path && file->device->net->name[0] != '/') {
file_name = grub_xasprintf ("%s/%s", http_path, file->device->net->name);
- else
- file_name = grub_strdup (file->device->net->name);
+ if (!file_name)
+ return grub_errno;
+ }
- if (!file_name)
- return grub_errno;
-
- err = efihttp_request (dev->http, file->device->net->server, file_name, type, 1, 0);
+ err = efihttp_request (dev->http, file->device->net->server,
+ file_name ? file_name : file->device->net->name, type, 1, 0);
if (err != GRUB_ERR_NONE)
{
grub_free (file_name);
return err;
}
- err = efihttp_request (dev->http, file->device->net->server, file_name, type, 0, &size);
+ err = efihttp_request (dev->http, file->device->net->server,
+ file_name ? file_name : file->device->net->name, type, 0, &size);
grub_free (file_name);
if (err != GRUB_ERR_NONE)
{
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 15 Jan 2019 14:57:25 -0500
Subject: [PATCH] Try to set -fPIE and friends on libgnu.a
In order to make sure UTIL_CFLAGS and UTIL_LDFLAGS can correctly get
-Wl,-z,relro,-z,now , we need everything going in them to be built with at
least -fPIC (and preferably -fPIE) wherever we can, or else we get relocations
in some component object that can't be used with the link type that's being
used for the final ELF object.
So this makes sure libgnu.a gets built with HOST_CFLAGS and HOST_LDFLAGS,
which are what is later used to define UTIL_CFLAGS and UTIL_LDFLAGS, and
includes -fPIE.
Fixes an rpmdiff check.
Related: rhbz#1658500
Signed-off-by: Peter Jones <pjones@redhat.com>
---
grub-core/gnulib/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/grub-core/gnulib/Makefile.am b/grub-core/gnulib/Makefile.am
index b7c5e60e1c3..bd3621930ff 100644
--- a/grub-core/gnulib/Makefile.am
+++ b/grub-core/gnulib/Makefile.am
@@ -38,8 +38,8 @@ CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
-AM_CPPFLAGS =
-AM_CFLAGS =
+AM_CPPFLAGS = $(HOST_CPPFLAGS)
+AM_CFLAGS = $(HOST_CFLAGS)
noinst_LIBRARIES += libgnu.a
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Tue, 26 Feb 2019 20:11:27 +0100
Subject: [PATCH] blscfg: fallback to default_kernelopts if BLS option field
isn't set
If the $kernelopts variable isn't found, then the entry will fail to boot
since there won't be a kernel command line params set. This makes the BLS
configuration more fragile than a non-BLS one, since in that case it will
boot even without a correct grubenv file.
So set a $default_kernelopts in the GRUB config file that will be used as
a fallback if the value in the BLS options field can't be resolved.
Related: rhbz#1625124
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
grub-core/commands/blscfg.c | 7 +++++++
util/grub.d/10_linux.in | 2 ++
2 files changed, 9 insertions(+)
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
index c432c6ba27a..11cc82b6f31 100644
--- a/grub-core/commands/blscfg.c
+++ b/grub-core/commands/blscfg.c
@@ -628,6 +628,9 @@ static char *expand_val(char *value)
char *end = value;
bool is_var = false;
+ if (!value)
+ return NULL;
+
while (*value) {
if (*value == '$') {
if (start != end) {
@@ -701,6 +704,10 @@ static void create_entry (struct bls_entry *entry)
title = bls_get_val (entry, "title", NULL);
options = expand_val (bls_get_val (entry, "options", NULL));
+
+ if (!options)
+ options = expand_val (grub_env_get("default_kernelopts"));
+
initrds = bls_make_list (entry, "initrd", NULL);
hotkey = bls_get_val (entry, "grub_hotkey", NULL);
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index da2992ac9f1..04fd8953f40 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -158,6 +158,8 @@ linux_entry ()
populate_header_warn
cat << EOF
+set default_kernelopts="root=${linux_root_device_thisversion} ro ${args}"
+
insmod blscfg
blscfg
if [ -s \$prefix/grubenv ]; then
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Tue, 14 May 2019 20:37:44 +0200
Subject: [PATCH] Remove bogus load_env after blscfg command in 10_linux
The grubenv is already loaded in the 00_header snippet, so there's
no need to load it anywhere else.
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
util/grub.d/10_linux.in | 3 ---
1 file changed, 3 deletions(-)
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
index 04fd8953f40..58d18504790 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -162,9 +162,6 @@ set default_kernelopts="root=${linux_root_device_thisversion} ro ${args}"
insmod blscfg
blscfg
-if [ -s \$prefix/grubenv ]; then
- load_env
-fi
EOF
if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Wed, 19 Jun 2019 15:57:17 +0200
Subject: [PATCH] 10_linux_bls: use '=' to separate --id argument due a
Petitboot bug
The GRUB menuentry command allows to separate the arguments for options
using either a '=' or a ' '. The latter is the convention used when the
menu entries are defined in the GRUB config file, but this is currently
not supported by Petitboot.
So as a workaround define the menu entries using '--id=${bls}' instead.
Resolves: rhbz#1721815
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
util/grub.d/10_linux_bls.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in
index 175bedd0763..8e07a79322b 100644
--- a/util/grub.d/10_linux_bls.in
+++ b/util/grub.d/10_linux_bls.in
@@ -180,7 +180,7 @@ populate_menu()
for bls in "${files[@]}" ; do
read_config "${blsdir}/${bls}.conf"
- menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --users ${grub_users} --id ${bls} {\n"
+ menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --users ${grub_users} --id=${bls} {\n"
menu="${menu}\t linux ${linux} ${options}\n"
if [ -n "${initrd}" ] ; then
menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 28 Mar 2019 16:34:42 +0100
Subject: [PATCH] 10_linux_bls: don't add --users option to generated menu
entries
The generated menu entries have a --users $grub_users option but this will
fail on old versions of GRUB, since it expects the --users option argument
to either be a constant or a variable that has been set.
The latest GRUB version fix this but the GRUB core isn't updated on a GRUB
package update, so this will cause the entries to not be shown in the menu
after a system upgrade.
Since can cause issues and because the entries that weren't generated from
the BLS snippets didn't have the --users option either, just don't add it.
Resolves: rhbz#1755815
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
util/grub.d/10_linux_bls.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/grub.d/10_linux_bls.in b/util/grub.d/10_linux_bls.in
index 8e07a79322b..855dbdd190b 100644
--- a/util/grub.d/10_linux_bls.in
+++ b/util/grub.d/10_linux_bls.in
@@ -180,7 +180,7 @@ populate_menu()
for bls in "${files[@]}" ; do
read_config "${blsdir}/${bls}.conf"
- menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --users ${grub_users} --id=${bls} {\n"
+ menu="${menu}menuentry '${title}' --class ${grub_class} ${grub_arg} --id=${bls} {\n"
menu="${menu}\t linux ${linux} ${options}\n"
if [ -n "${initrd}" ] ; then
menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
......@@ -17,7 +17,6 @@
%global cflags_sed \\\
sed \\\
-e 's/-O. //g' \\\
-e 's/-g /-g3 /g' \\\
-e 's/-fplugin=annobin //g' \\\
-e 's,-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ,,g' \\\
-e 's/-fstack-protector[[:alpha:]-]\\+//g' \\\
......@@ -29,25 +28,44 @@
-e 's/^/ -fno-strict-aliasing /' \\\
%{nil}
%global host_cflags %{expand:%%(echo %{optflags} | %{cflags_sed})}
%global target_cflags %{expand:%%(echo %{optflags} | %{cflags_sed})}
%global legacy_target_cflags \\\
%{expand:%%(echo %{target_cflags} | \\\
%global host_cflags %{expand:%%(echo %{build_cflags} %{?_hardening_cflags} | %{cflags_sed})}
%global legacy_host_cflags \\\
%{expand:%%(echo %{host_cflags} | \\\
%{cflags_sed} \\\
-e 's/-m64//g' \\\
-e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g' \\\
)}
%global legacy_host_cflags \\\
%{expand:%%(echo %{host_cflags} | \\\
%global efi_host_cflags %{expand:%%(echo %{host_cflags})}
%global target_cflags %{expand:%%(echo %{build_cflags} | %{cflags_sed})}
%global legacy_target_cflags \\\
%{expand:%%(echo %{target_cflags} | \\\
%{cflags_sed} \\\
-e 's/-m64//g' \\\
-e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g' \\\
)}
%global efi_host_cflags %{expand:%%(echo %{host_cflags})}
%global efi_target_cflags %{expand:%%(echo %{target_cflags})}
%global ldflags_sed \\\
sed \\\
-e 's/^$//' \\\
%{nil}
%global host_ldflags %{expand:%%(echo %{build_ldflags} %{?_hardening_ldflags} | %{ldflags_sed})}
%global legacy_host_ldflags \\\
%{expand:%%(echo %{host_ldflags} | \\\
%{ldflags_sed} \\\
)}
%global efi_host_ldflags %{expand:%%(echo %{host_ldflags})}
%global target_ldflags %{expand:%%(echo %{build_ldflags} -static | %{ldflags_sed})}
%global legacy_target_ldflags \\\
%{expand:%%(echo %{target_ldflags} | \\\
%{ldflags_sed} \\\
)}
%global efi_target_ldflags %{expand:%%(echo %{target_ldflags})}
%global with_efi_arch 0
%global with_alt_efi_arch 0
%global with_legacy_arch 0
......@@ -314,11 +332,12 @@ PYTHON=python3 ./autogen.sh \
%define do_efi_configure() \
%configure \\\
%{cc_equals} \\\
HOST_CFLAGS="%{3} -I$(pwd)" \\\
HOST_CPPFLAGS="${CPPFLAGS} -I$(pwd)" \\\
TARGET_CFLAGS="%{2} -I$(pwd)" \\\
TARGET_CPPFLAGS="${CPPFLAGS} -I$(pwd)" \\\
TARGET_LDFLAGS=-static \\\
HOST_CFLAGS="%{3}" \\\
HOST_CPPFLAGS="-I$(pwd)" \\\
HOST_LDFLAGS="%{efi_host_ldflags}" \\\
TARGET_CFLAGS="%{2}" \\\
TARGET_CPPFLAGS="-I$(pwd)" \\\
TARGET_LDFLAGS="%{efi_target_ldflags}" \\\
--with-platform=efi \\\
--with-utils=host \\\
--target=%{1} \\\
......@@ -401,9 +420,12 @@ cd .. \
cd grub-%{1}-%{tarversion} \
%configure \\\
%{cc_equals} \\\
HOST_CFLAGS="%{legacy_host_cflags} -I$(pwd)" \\\
TARGET_CFLAGS="%{legacy_target_cflags} -I$(pwd)" \\\
TARGET_LDFLAGS=-static \\\
HOST_CFLAGS="%{legacy_host_cflags}" \\\
HOST_CPPFLAGS="-I$(pwd)" \\\
HOST_LDFLAGS="%{legacy_host_ldflags}" \\\
TARGET_CFLAGS="%{legacy_target_cflags}" \\\
TARGET_CPPFLAGS="-I$(pwd)" \\\
TARGET_LDFLAGS="%{legacy_target_ldflags}" \\\
--with-platform=%{platform} \\\
--with-utils=host \\\
--target=%{_target_platform} \\\
......@@ -412,7 +434,7 @@ cd grub-%{1}-%{tarversion} \
--disable-grub-mount \\\
--disable-werror || ( cat config.log ; exit 1 ) \
git add . \
git commit -m "After legacy configure" \
git commit -m "After legacy configure" \
make %{?_smp_mflags} \
cd .. \
%{nil}
......@@ -532,7 +554,7 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
%dir %attr(0700,root,root)%{efi_esp_dir}/fonts \
%dir %attr(0700,root,root)/boot/loader/entries \
%ghost %config(noreplace) %attr(0700,root,root)%{efi_esp_dir}/grub.cfg \
/boot/grub2/grubenv \
%config(noreplace) /boot/grub2/grubenv \
%ghost %config(noreplace) %attr(0700,root,root)%{efi_esp_dir}/grubenv \
%{expand:%if 0%{?without_efi_modules} \
%exclude %{_libdir}/grub/%{6} \
......
......@@ -256,3 +256,10 @@ Patch0255: 0255-Make-grub2-mkconfig-to-honour-GRUB_CMDLINE_LINUX-in-.patch
Patch0256: 0256-grub-boot-success.timer-Add-a-few-Conditions-for-run.patch
Patch0257: 0257-docs-Stop-using-polkit-pkexec-for-grub-boot-success..patch
Patch0258: 0258-Fix-the-looking-up-grub.cfg-XXX-while-tftp-booting.patch
Patch0259: 0259-HTTP-boot-strncmp-returns-0-on-equal.patch
Patch0260: 0260-Don-t-duplicate-net-name-string-if-not-needed.patch
Patch0261: 0261-Try-to-set-fPIE-and-friends-on-libgnu.a.patch
Patch0262: 0262-blscfg-fallback-to-default_kernelopts-if-BLS-option-.patch
Patch0263: 0263-Remove-bogus-load_env-after-blscfg-command-in-10_lin.patch
Patch0264: 0264-10_linux_bls-use-to-separate-id-argument-due-a-Petit.patch
Patch0265: 0265-10_linux_bls-don-t-add-users-option-to-generated-men.patch
......@@ -7,7 +7,7 @@
Name: grub2
Epoch: 1
Version: 2.02
Release: 66%{?dist}.1
Release: 78%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base
License: GPLv3+
......@@ -498,9 +498,54 @@ fi
%endif
%changelog
* Fri Aug 23 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-66.el8_0.1
* Thu Sep 26 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-77
- 10_linux_bls: don't add --users option to generated menu entries
Resolves: rhbz#1755815
* Fri Aug 09 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-76
- Include regexp module in EFI builds
Resolves: rhbz#1743549
Resolves: rhbz#1737670
* Wed Jun 19 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-75
- Fix setting default entry on ppc64le when using OPAL
Resolves: rhbz#1721815
* Tue Jun 04 2019 Sergio Durigan Junior <sergiodj@redhat.com> - 2.02-74
- Use '-g' instead of '-g3' when compiling grub2.
Related: rhbz#1653961
* Wed May 29 2019 Peter Jones <pjones@redhat.com> - 2.02-73
- Rebuild once again to try to get rpmdiff happy.
Related: rhbz#1653961
* Mon May 27 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-72
- Build with the correct target
Related: rhbz#1653961
* Fri May 24 2019 Peter Jones <pjones@redhat.com> - 2.02-71
- Fix (a fourth time, due to a typo) how LDFLAGS works on non-efi platforms.
Related: rhbz#1653961
* Thu May 23 2019 Peter Jones <pjones@redhat.com> - 2.02-70
- Fix (once again) how CFLAGS and LDFLAGS propogate the settings for hardened
builds, because rpmdiff doesn't like the current way failing.
Related: rhbz#1653961
* Tue May 21 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-69
- Enable package gating
Resolves: rhbz#1653961
* Mon May 20 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-68
- Avoid grub2-efi package to overwrite existing /boot/grub2/grubenv file
Resolves: rhbz#1680572
- Try to set -fPIE and friends on libgnu.a (pjones)
- blscfg: fallback to default_kernelopts if BLS option field isn't set
Related: rhbz#1680572
- Remove bogus load_env after blscfg command in 10_linux
* Mon Apr 29 2019 Javier Martinez Canillas <javierm@redhat.com> - 2.02-67
- Fix failure to request grub.cfg over HTTP
Resolves: rhbz#1490991
* Wed Dec 19 2018 Javier Martinez Canillas <javierm@redhat.com> - 2.02-66
- Fix grub.cfg-XXX look up when booting over TFTP
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment