!390 [sync] PR-388: sync patches from 22.03-LTS-SP3
From: @openeuler-sync-bot Reviewed-by: @zhangqiumiao Signed-off-by: @zhangqiumiao
This commit is contained in:
commit
d86712f2ce
@ -0,0 +1,75 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
Date: Fri, 11 Jun 2021 12:10:54 +0200
|
||||||
|
Subject: [PATCH] Revert "templates: Properly disable the os-prober by
|
||||||
|
default"
|
||||||
|
|
||||||
|
This reverts commit 54e0a1bbf1e9106901a557195bb35e5e20fb3925.
|
||||||
|
---
|
||||||
|
util/grub-mkconfig.in | 5 +----
|
||||||
|
util/grub.d/30_os-prober.in | 8 ++++----
|
||||||
|
2 files changed, 5 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
||||||
|
index 908afa8..f939872 100644
|
||||||
|
--- a/util/grub-mkconfig.in
|
||||||
|
+++ b/util/grub-mkconfig.in
|
||||||
|
@@ -154,9 +154,6 @@ probe_nfsroot_device () {
|
||||||
|
|
||||||
|
NFSROOT_DEVICE="`awk '($9!="autofs")&&($9!="securityfs")' /proc/self/mountinfo | probe_nfsroot_device`"
|
||||||
|
|
||||||
|
-# Disable os-prober by default due to security reasons.
|
||||||
|
-GRUB_DISABLE_OS_PROBER="true"
|
||||||
|
-
|
||||||
|
if [ "x${NFSROOT_DEVICE}" != "x" ]; then
|
||||||
|
GRUB_DEVICE=""
|
||||||
|
GRUB_DEVICE_UUID=""
|
||||||
|
@@ -254,7 +251,6 @@ export GRUB_DEVICE \
|
||||||
|
GRUB_DEVICE_PARTUUID \
|
||||||
|
GRUB_DEVICE_BOOT \
|
||||||
|
GRUB_DEVICE_BOOT_UUID \
|
||||||
|
- GRUB_DISABLE_OS_PROBER \
|
||||||
|
GRUB_FS \
|
||||||
|
GRUB_FONT \
|
||||||
|
GRUB_PRELOAD_MODULES \
|
||||||
|
@@ -300,6 +296,7 @@ export GRUB_DEFAULT \
|
||||||
|
GRUB_BACKGROUND \
|
||||||
|
GRUB_THEME \
|
||||||
|
GRUB_GFXPAYLOAD_LINUX \
|
||||||
|
+ GRUB_DISABLE_OS_PROBER \
|
||||||
|
GRUB_INIT_TUNE \
|
||||||
|
GRUB_SAVEDEFAULT \
|
||||||
|
GRUB_ENABLE_CRYPTODISK \
|
||||||
|
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
|
||||||
|
index 2221090..8de62d5 100644
|
||||||
|
--- a/util/grub.d/30_os-prober.in
|
||||||
|
+++ b/util/grub.d/30_os-prober.in
|
||||||
|
@@ -26,8 +26,8 @@ export TEXTDOMAINDIR="@localedir@"
|
||||||
|
|
||||||
|
. "$pkgdatadir/grub-mkconfig_lib"
|
||||||
|
|
||||||
|
-if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
|
||||||
|
- grub_warn "$(gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.")"
|
||||||
|
+if [ "x${GRUB_DISABLE_OS_PROBER}" = "xfalse" ]; then
|
||||||
|
+ gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.\n"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -36,12 +36,12 @@ if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/n
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
-grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIts output will be used to detect bootable binaries on them and create new boot entries.")"
|
||||||
|
-
|
||||||
|
OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
|
||||||
|
if [ -z "${OSPROBED}" ] ; then
|
||||||
|
# empty os-prober output, nothing doing
|
||||||
|
exit 0
|
||||||
|
+else
|
||||||
|
+ grub_warn "$(gettext_printf "os-prober was executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
osx_entry() {
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
73
0003-Revert-templates-Disable-the-os-prober-by-default.patch
Normal file
73
0003-Revert-templates-Disable-the-os-prober-by-default.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
Date: Fri, 11 Jun 2021 12:10:58 +0200
|
||||||
|
Subject: [PATCH] Revert "templates: Disable the os-prober by default"
|
||||||
|
|
||||||
|
This reverts commit e346414725a70e5c74ee87ca14e580c66f517666.
|
||||||
|
---
|
||||||
|
docs/grub.texi | 18 ++++++++----------
|
||||||
|
util/grub.d/30_os-prober.in | 5 +----
|
||||||
|
2 files changed, 9 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/docs/grub.texi b/docs/grub.texi
|
||||||
|
index fcd6cad..1603432 100644
|
||||||
|
--- a/docs/grub.texi
|
||||||
|
+++ b/docs/grub.texi
|
||||||
|
@@ -1552,13 +1552,10 @@ boot sequence. If you have problems, set this option to @samp{text} and
|
||||||
|
GRUB will tell Linux to boot in normal text mode.
|
||||||
|
|
||||||
|
@item GRUB_DISABLE_OS_PROBER
|
||||||
|
-The @command{grub-mkconfig} has a feature to use the external
|
||||||
|
-@command{os-prober} program to discover other operating systems installed on
|
||||||
|
-the same machine and generate appropriate menu entries for them. It is disabled
|
||||||
|
-by default since automatic and silent execution of @command{os-prober}, and
|
||||||
|
-creating boot entries based on that data, is a potential attack vector. Set
|
||||||
|
-this option to @samp{false} to enable this feature in the
|
||||||
|
-@command{grub-mkconfig} command.
|
||||||
|
+Normally, @command{grub-mkconfig} will try to use the external
|
||||||
|
+@command{os-prober} program, if installed, to discover other operating
|
||||||
|
+systems installed on the same system and generate appropriate menu entries
|
||||||
|
+for them. Set this option to @samp{true} to disable this.
|
||||||
|
|
||||||
|
@item GRUB_OS_PROBER_SKIP_LIST
|
||||||
|
List of space-separated FS UUIDs of filesystems to be ignored from os-prober
|
||||||
|
@@ -1889,9 +1886,10 @@ than zero; otherwise 0.
|
||||||
|
@section Multi-boot manual config
|
||||||
|
|
||||||
|
Currently autogenerating config files for multi-boot environments depends on
|
||||||
|
-os-prober and has several shortcomings. Due to that it is disabled by default.
|
||||||
|
-It is advised to use the power of GRUB syntax and do it yourself. A possible
|
||||||
|
-configuration is detailed here, feel free to adjust to your needs.
|
||||||
|
+os-prober and has several shortcomings. While fixing it is scheduled for the
|
||||||
|
+next release, meanwhile you can make use of the power of GRUB syntax and do it
|
||||||
|
+yourself. A possible configuration is detailed here, feel free to adjust to your
|
||||||
|
+needs.
|
||||||
|
|
||||||
|
First create a separate GRUB partition, big enough to hold GRUB. Some of the
|
||||||
|
following entries show how to load OS installer images from this same partition,
|
||||||
|
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
|
||||||
|
index 8de62d5..affff6b 100644
|
||||||
|
--- a/util/grub.d/30_os-prober.in
|
||||||
|
+++ b/util/grub.d/30_os-prober.in
|
||||||
|
@@ -26,8 +26,7 @@ export TEXTDOMAINDIR="@localedir@"
|
||||||
|
|
||||||
|
. "$pkgdatadir/grub-mkconfig_lib"
|
||||||
|
|
||||||
|
-if [ "x${GRUB_DISABLE_OS_PROBER}" = "xfalse" ]; then
|
||||||
|
- gettext_printf "os-prober will not be executed to detect other bootable partitions.\nSystems on them will not be added to the GRUB boot configuration.\nCheck GRUB_DISABLE_OS_PROBER documentation entry.\n"
|
||||||
|
+if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -40,8 +39,6 @@ OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
|
||||||
|
if [ -z "${OSPROBED}" ] ; then
|
||||||
|
# empty os-prober output, nothing doing
|
||||||
|
exit 0
|
||||||
|
-else
|
||||||
|
- grub_warn "$(gettext_printf "os-prober was executed to detect other bootable partitions.\nIt's output will be used to detect bootable binaries on them and create new boot entries.")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
osx_entry() {
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
1959
0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch
Normal file
1959
0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch
Normal file
File diff suppressed because it is too large
Load Diff
296
0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch
Normal file
296
0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Thu, 23 Jun 2016 11:01:39 -0400
|
||||||
|
Subject: [PATCH] Add grub-get-kernel-settings and use it in 10_linux
|
||||||
|
|
||||||
|
This patch adds grub-get-kernel-settings, which reads the system kernel
|
||||||
|
installation configuration from /etc/sysconfig/kernel, and outputs
|
||||||
|
${GRUB_...} variables suitable for evaluation by grub-mkconfig. Those
|
||||||
|
variables are then used by 10_linux to choose whether or not to create
|
||||||
|
debug stanzas.
|
||||||
|
|
||||||
|
Resolves: rhbz#1226325
|
||||||
|
---
|
||||||
|
configure.ac | 2 +
|
||||||
|
Makefile.util.def | 7 ++
|
||||||
|
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-mkconfig.in | 3 +
|
||||||
|
util/grub.d/10_linux.in | 23 +++++--
|
||||||
|
7 files changed, 160 insertions(+), 5 deletions(-)
|
||||||
|
create mode 100644 util/grub-get-kernel-settings.3
|
||||||
|
create mode 100644 util/grub-get-kernel-settings.in
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 25e1abb59b9..58e57a745fa 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -65,6 +65,7 @@ grub_TRANSFORM([grub-install])
|
||||||
|
grub_TRANSFORM([grub-mkconfig])
|
||||||
|
grub_TRANSFORM([grub-mkfont])
|
||||||
|
grub_TRANSFORM([grub-mkimage])
|
||||||
|
+grub_TRANSFORM([grub-get-kernel-settings])
|
||||||
|
grub_TRANSFORM([grub-glue-efi])
|
||||||
|
grub_TRANSFORM([grub-mklayout])
|
||||||
|
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
|
||||||
|
index 8ca4c14f0b9..43a1c7453b1 100644
|
||||||
|
--- a/Makefile.util.def
|
||||||
|
+++ b/Makefile.util.def
|
||||||
|
@@ -733,6 +733,13 @@ script = {
|
||||||
|
installdir = sbin;
|
||||||
|
};
|
||||||
|
|
||||||
|
+script = {
|
||||||
|
+ name = grub-get-kernel-settings;
|
||||||
|
+ common = util/grub-get-kernel-settings.in;
|
||||||
|
+ mansection = 3;
|
||||||
|
+ installdir = sbin;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
script = {
|
||||||
|
name = grub-set-default;
|
||||||
|
common = util/grub-set-default.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
|
||||||
|
--- a/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} && \
|
||||||
|
unset __grub_sparc64_setup_program
|
||||||
|
|
||||||
|
|
||||||
|
+#
|
||||||
|
+# grub-get-kernel-settings
|
||||||
|
+#
|
||||||
|
+_grub_get_kernel_settings () {
|
||||||
|
+ local cur
|
||||||
|
+
|
||||||
|
+ COMPREPLY=()
|
||||||
|
+ cur=`_get_cword`
|
||||||
|
+
|
||||||
|
+ if [[ "$cur" == -* ]]; then
|
||||||
|
+ __grubcomp "$(__grub_get_options_from_help)"
|
||||||
|
+ else
|
||||||
|
+ # Default complete with a filename
|
||||||
|
+ _filedir
|
||||||
|
+ fi
|
||||||
|
+}
|
||||||
|
+__grub_get_kernel_settings_program="@grub_get_kernel_settings@"
|
||||||
|
+have ${__grub_get_kernel_settings_program} && \
|
||||||
|
+ complete -F _grub_get_kernel_settings -o filenames ${__grub_get_kernel_settings_program}
|
||||||
|
+unset __grub_get_kernel_settings_program
|
||||||
|
+
|
||||||
|
+
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..7e87dfccc0e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/util/grub-get-kernel-settings.in
|
||||||
|
@@ -0,0 +1,88 @@
|
||||||
|
+#!/bin/sh
|
||||||
|
+set -e
|
||||||
|
+
|
||||||
|
+# Evaluate new-kernel-pkg's configuration file.
|
||||||
|
+# Copyright (C) 2016 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/>.
|
||||||
|
+
|
||||||
|
+PACKAGE_NAME=@PACKAGE_NAME@
|
||||||
|
+PACKAGE_VERSION=@PACKAGE_VERSION@
|
||||||
|
+datadir="@datadir@"
|
||||||
|
+if [ "x$pkgdatadir" = x ]; then
|
||||||
|
+ pkgdatadir="${datadir}/@PACKAGE@"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+self=`basename $0`
|
||||||
|
+
|
||||||
|
+export TEXTDOMAIN=@PACKAGE@
|
||||||
|
+export TEXTDOMAINDIR="@localedir@"
|
||||||
|
+
|
||||||
|
+. "${pkgdatadir}/grub-mkconfig_lib"
|
||||||
|
+
|
||||||
|
+# Usage: usage
|
||||||
|
+# Print the usage.
|
||||||
|
+usage () {
|
||||||
|
+ gettext_printf "Usage: %s [OPTION]\n" "$self"
|
||||||
|
+ gettext "Evaluate new-kernel-pkg configuration"; echo
|
||||||
|
+ echo
|
||||||
|
+ print_option_help "-h, --help" "$(gettext "print this message and exit")"
|
||||||
|
+ print_option_help "-v, --version" "$(gettext "print the version information and exit")"
|
||||||
|
+ echo
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# Check the arguments.
|
||||||
|
+while test $# -gt 0
|
||||||
|
+do
|
||||||
|
+ option=$1
|
||||||
|
+ shift
|
||||||
|
+
|
||||||
|
+ case "$option" in
|
||||||
|
+ -h | --help)
|
||||||
|
+ usage
|
||||||
|
+ exit 0 ;;
|
||||||
|
+ -v | --version)
|
||||||
|
+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
|
||||||
|
+ exit 0 ;;
|
||||||
|
+ -*)
|
||||||
|
+ gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2
|
||||||
|
+ usage
|
||||||
|
+ exit 1
|
||||||
|
+ ;;
|
||||||
|
+ # Explicitly ignore non-option arguments, for compatibility.
|
||||||
|
+ esac
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
+if test -f /etc/sysconfig/kernel ; then
|
||||||
|
+ . /etc/sysconfig/kernel
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if [ "$MAKEDEBUG" = "yes" ]; then
|
||||||
|
+ echo GRUB_LINUX_MAKE_DEBUG=true
|
||||||
|
+ echo export GRUB_LINUX_MAKE_DEBUG
|
||||||
|
+ echo GRUB_CMDLINE_LINUX_DEBUG=\"systemd.log_level=debug systemd.log_target=kmsg\"
|
||||||
|
+ echo export GRUB_CMDLINE_LINUX_DEBUG
|
||||||
|
+ echo GRUB_LINUX_DEBUG_TITLE_POSTFIX=\" with debugging\"
|
||||||
|
+ echo export GRUB_LINUX_DEBUG_TITLE_POSTFIX
|
||||||
|
+fi
|
||||||
|
+if [ "$DEFAULTDEBUG" = "yes" ]; then
|
||||||
|
+ echo GRUB_DEFAULT_TO_DEBUG=true
|
||||||
|
+else
|
||||||
|
+ echo GRUB_DEFAULT_TO_DEBUG=false
|
||||||
|
+fi
|
||||||
|
+echo export GRUB_DEFAULT_TO_DEBUG
|
||||||
|
+if [ "$UPDATEDEFAULT" = "yes" ]; then
|
||||||
|
+ echo GRUB_UPDATE_DEFAULT_KERNEL=true
|
||||||
|
+ echo export GRUB_UPDATE_DEFAULT_KERNEL
|
||||||
|
+fi
|
||||||
|
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
||||||
|
index ba14cf6261c..005f093809b 100644
|
||||||
|
--- a/util/grub-mkconfig.in
|
||||||
|
+++ b/util/grub-mkconfig.in
|
||||||
|
@@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@"
|
||||||
|
grub_file="${bindir}/@grub_file@"
|
||||||
|
grub_editenv="${bindir}/@grub_editenv@"
|
||||||
|
grub_script_check="${bindir}/@grub_script_check@"
|
||||||
|
+grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@"
|
||||||
|
|
||||||
|
export TEXTDOMAIN=@PACKAGE@
|
||||||
|
export TEXTDOMAINDIR="@localedir@"
|
||||||
|
@@ -158,6 +159,8 @@ if test -f ${sysconfdir}/default/grub ; then
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
+eval "$("${grub_get_kernel_settings}")" || true
|
||||||
|
+
|
||||||
|
if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then
|
||||||
|
if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then
|
||||||
|
GRUB_DISABLE_LINUX_UUID="true"
|
||||||
|
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||||
|
index 786dbabb4a8..292e333324b 100644
|
||||||
|
--- a/util/grub.d/10_linux.in
|
||||||
|
+++ b/util/grub.d/10_linux.in
|
||||||
|
@@ -140,7 +140,8 @@ linux_entry ()
|
||||||
|
os="$1"
|
||||||
|
version="$2"
|
||||||
|
type="$3"
|
||||||
|
- args="$4"
|
||||||
|
+ isdebug="$4"
|
||||||
|
+ args="$5"
|
||||||
|
|
||||||
|
if [ -n "${linux_root_device_thisversion}" ]; then
|
||||||
|
root_device="root=${linux_root_device_thisversion}"
|
||||||
|
@@ -158,6 +158,9 @@ linux_entry ()
|
||||||
|
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
|
||||||
|
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
|
||||||
|
fi
|
||||||
|
+ if [ x$isdebug = xdebug ]; then
|
||||||
|
+ title="$title${GRUB_LINUX_DEBUG_TITLE_POSTFIX}"
|
||||||
|
+ fi
|
||||||
|
echo "menuentry '$(echo "$title" | grub_quote)' $(print_hotkey) ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
|
||||||
|
hotkey=$(incr_hotkey)
|
||||||
|
else
|
||||||
|
@@ -440,11 +444,15 @@ while [ "x$list" != "x" ] ; do
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
|
||||||
|
- linux_entry "${OS}" "${version}" simple \
|
||||||
|
+ linux_entry "${OS}" "${version}" simple standard \
|
||||||
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||||
|
+ if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then
|
||||||
|
+ linux_entry "${OS}" "${version}" simple debug \
|
||||||
|
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}"
|
||||||
|
+ fi
|
||||||
|
|
||||||
|
submenu_indentation="$grub_tab"
|
||||||
|
-
|
||||||
|
+
|
||||||
|
if [ -z "$boot_device_id" ]; then
|
||||||
|
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
|
||||||
|
fi
|
||||||
|
@@ -454,10 +454,15 @@ for linux in ${reverse_sorted_list}; do
|
||||||
|
is_top_level=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
- linux_entry "${OS}" "${version}" advanced \
|
||||||
|
+ linux_entry "${OS}" "${version}" advanced standard \
|
||||||
|
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||||
|
+ if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then
|
||||||
|
+ linux_entry "${OS}" "${version}" advanced debug \
|
||||||
|
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} ${GRUB_CMDLINE_LINUX_DEBUG}"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
|
||||||
|
- linux_entry "${OS}" "${version}" recovery \
|
||||||
|
+ linux_entry "${OS}" "${version}" recovery standard \
|
||||||
|
"${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
@ -0,0 +1,96 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 4 Jun 2018 19:49:47 +0200
|
||||||
|
Subject: [PATCH] grub-editenv: Add "incr" command to increment integer
|
||||||
|
value
|
||||||
|
env. variables
|
||||||
|
|
||||||
|
To be able to automatically detect if the last boot was successful,
|
||||||
|
We want to keep count of succesful / failed boots in some integer
|
||||||
|
environment variable.
|
||||||
|
|
||||||
|
This commit adds a grub-editenvt "incr" command to increment such
|
||||||
|
integer value env. variables by 1 for use from various boot scripts.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
util/grub-editenv.c | 49 +++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 49 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/util/grub-editenv.c b/util/grub-editenv.c
|
||||||
|
index af30aab..e336bcd 100644
|
||||||
|
--- a/util/grub-editenv.c
|
||||||
|
+++ b/util/grub-editenv.c
|
||||||
|
@@ -56,6 +56,9 @@ static struct argp_option options[] = {
|
||||||
|
/* TRANSLATORS: "unset" is a keyword. It's a summary of "unset" subcommand. */
|
||||||
|
{N_("unset [NAME ...]"), 0, 0, OPTION_DOC|OPTION_NO_USAGE,
|
||||||
|
N_("Delete variables."), 0},
|
||||||
|
+ /* TRANSLATORS: "incr" is a keyword. It's a summary of "incr" subcommand. */
|
||||||
|
+ {N_("incr [NAME ...]"), 0, 0, OPTION_DOC|OPTION_NO_USAGE,
|
||||||
|
+ N_("Increase value of integer variables."), 0},
|
||||||
|
|
||||||
|
{0, 0, 0, OPTION_DOC, N_("Options:"), -1},
|
||||||
|
{"verbose", 'v', 0, 0, N_("print verbose messages."), 0},
|
||||||
|
@@ -577,6 +580,50 @@ probe_fs_envblk (fs_envblk_spec_t spec)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
+struct get_int_value_params {
|
||||||
|
+ char *varname;
|
||||||
|
+ int value;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int
|
||||||
|
+get_int_value (const char *varname, const char *value, void *hook_data)
|
||||||
|
+{
|
||||||
|
+ struct get_int_value_params *params = hook_data;
|
||||||
|
+
|
||||||
|
+ if (strcmp (varname, params->varname) == 0) {
|
||||||
|
+ params->value = strtol (value, NULL, 10);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+incr_variables (const char *name, int argc, char *argv[])
|
||||||
|
+{
|
||||||
|
+ grub_envblk_t envblk;
|
||||||
|
+ char buf[16];
|
||||||
|
+
|
||||||
|
+ envblk = open_envblk_file (name);
|
||||||
|
+ while (argc)
|
||||||
|
+ {
|
||||||
|
+ struct get_int_value_params params = {
|
||||||
|
+ .varname = argv[0],
|
||||||
|
+ .value = 0, /* Consider unset variables 0 */
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ grub_envblk_iterate (envblk, ¶ms, get_int_value);
|
||||||
|
+ snprintf(buf, sizeof(buf), "%d", params.value + 1);
|
||||||
|
+
|
||||||
|
+ if (! grub_envblk_set (envblk, argv[0], buf))
|
||||||
|
+ grub_util_error ("%s", _("environment block too small"));
|
||||||
|
+
|
||||||
|
+ argc--;
|
||||||
|
+ argv++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ write_envblk (name, envblk);
|
||||||
|
+ grub_envblk_close (envblk);
|
||||||
|
+}
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
@@ -620,6 +667,8 @@ main (int argc, char *argv[])
|
||||||
|
set_variables (filename, argc - curindex, argv + curindex);
|
||||||
|
else if (strcmp (command, "unset") == 0)
|
||||||
|
unset_variables (filename, argc - curindex, argv + curindex);
|
||||||
|
+ else if (strcmp (command, "incr") == 0)
|
||||||
|
+ incr_variables (filename, argc - curindex, argv + curindex);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *program = xstrdup(program_name);
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -446,8 +446,8 @@ GRUB_MODULES=" all_video boot btrfs \\\
|
|||||||
gcry_sha256 gcry_twofish gcry_whirlpool \\\
|
gcry_sha256 gcry_twofish gcry_whirlpool \\\
|
||||||
gfxmenu gfxterm gzio \\\
|
gfxmenu gfxterm gzio \\\
|
||||||
halt http iso9660 jpeg \\\
|
halt http iso9660 jpeg \\\
|
||||||
loadenv loopback linux luks \\\
|
loadenv loopback linux lvm lsefi lsefimmap luks \\\
|
||||||
luks2 minicmd net \\\
|
luks2 mdraid09 mdraid1x minicmd net \\\
|
||||||
normal part_apple part_msdos part_gpt \\\
|
normal part_apple part_msdos part_gpt \\\
|
||||||
password_pbkdf2 png reboot \\\
|
password_pbkdf2 png reboot \\\
|
||||||
search search_fs_uuid search_fs_file \\\
|
search search_fs_uuid search_fs_file \\\
|
||||||
|
|||||||
@ -222,3 +222,8 @@ Patch221: fix-setupmode-not-available-in-some-machine.patch
|
|||||||
Patch222: fix-compressed-kernel-verification-failed.patch
|
Patch222: fix-compressed-kernel-verification-failed.patch
|
||||||
Patch223: support-TPM2.0.patch
|
Patch223: support-TPM2.0.patch
|
||||||
Patch224: use-default-timestamp.patch
|
Patch224: use-default-timestamp.patch
|
||||||
|
Patch225: 0027-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch
|
||||||
|
Patch226: 0038-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch
|
||||||
|
Patch227: 0084-grub-editenv-Add-incr-command-to-increment-integer-v.patch
|
||||||
|
Patch228: 0002-Revert-templates-Properly-disable-the-os-prober-by-d.patch
|
||||||
|
Patch229: 0003-Revert-templates-Disable-the-os-prober-by-default.patch
|
||||||
|
|||||||
22
grub2.spec
22
grub2.spec
@ -14,7 +14,7 @@
|
|||||||
Name: grub2
|
Name: grub2
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.12
|
Version: 2.12
|
||||||
Release: 8
|
Release: 9
|
||||||
Summary: Bootloader with support for Linux, Multiboot and more
|
Summary: Bootloader with support for Linux, Multiboot and more
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: http://www.gnu.org/software/grub/
|
URL: http://www.gnu.org/software/grub/
|
||||||
@ -199,10 +199,10 @@ makeinfo --info --no-split -I docs -o docs/grub.info docs/grub.texi
|
|||||||
makeinfo --html --no-split -I docs -o docs/grub-dev.html docs/grub-dev.texi
|
makeinfo --html --no-split -I docs -o docs/grub-dev.html docs/grub-dev.texi
|
||||||
makeinfo --html --no-split -I docs -o docs/grub.html docs/grub.texi
|
makeinfo --html --no-split -I docs -o docs/grub.html docs/grub.texi
|
||||||
%if 0%{?openEuler_sign_rsa}
|
%if 0%{?openEuler_sign_rsa}
|
||||||
sh /usr/lib/rpm/brp-ebs-sign --efi %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname}
|
sh /usr/lib/rpm/brp-ebs-sign --efi %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname} || [ $? -eq 2 ] && echo "failed to sign, skip signature."
|
||||||
sh /usr/lib/rpm/brp-ebs-sign --efi %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname}
|
sh /usr/lib/rpm/brp-ebs-sign --efi %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname} || [ $? -eq 2 ] && echo "failed to sign, skip signature."
|
||||||
mv %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname}.sig %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname}
|
mv %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname}.sig %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubefiname} ||:
|
||||||
mv %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname}.sig %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname}
|
mv %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname}.sig %{_builddir}/grub-%{version}/grub-%{grubefiarch}-%{tarversion}/%{grubeficdname} ||:
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%check
|
%check
|
||||||
@ -392,7 +392,7 @@ fi
|
|||||||
%files tools-minimal
|
%files tools-minimal
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
#%attr(4755, root, root) %{_sbindir}/%{name}-set-bootflag
|
#%attr(4755, root, root) %{_sbindir}/%{name}-set-bootflag
|
||||||
#%{_sbindir}/%{name}-get-kernel-settings
|
%{_sbindir}/%{name}-get-kernel-settings
|
||||||
%{_sbindir}/%{name}-set*password
|
%{_sbindir}/%{name}-set*password
|
||||||
%{_sbindir}/%{name}-set-default
|
%{_sbindir}/%{name}-set-default
|
||||||
%{_bindir}/%{name}-editenv
|
%{_bindir}/%{name}-editenv
|
||||||
@ -447,6 +447,16 @@ fi
|
|||||||
%{_datadir}/man/man*
|
%{_datadir}/man/man*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 7 2024 zhangqiumiao <zhangqiumiao1@huawei.com> - 1:2.12-9
|
||||||
|
- Type:bugfix
|
||||||
|
- CVE:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:ignore signing failure
|
||||||
|
Revert "templates: Disable the os-prober by default"
|
||||||
|
Revert "templates: Properly disable the os-prober by default"
|
||||||
|
Add grub-get-kernel-settings and use it in 10_linux
|
||||||
|
Replace a lot of man pages with slightly nicer ones
|
||||||
|
|
||||||
* Tue Apr 9 2024 zhangqiumiao <zhangqiumiao1@huawei.com> - 1:2.12-8
|
* Tue Apr 9 2024 zhangqiumiao <zhangqiumiao1@huawei.com> - 1:2.12-8
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- CVE:NA
|
- CVE:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user