Compare commits
No commits in common. 'i8' and 'c9' have entirely different histories.
@ -1,9 +1,4 @@
|
|||||||
SOURCES/grub-2.02.tar.xz
|
SOURCES/gnulib-9f48fb992a3d7e96610c4ce8be969cff2d61a01b.tar.gz
|
||||||
SOURCES/redhatsecureboot301.cer
|
SOURCES/grub-2.06.tar.xz
|
||||||
SOURCES/redhatsecureboot502.cer
|
|
||||||
SOURCES/redhatsecureboot601.cer
|
|
||||||
SOURCES/redhatsecureboot701.cer
|
|
||||||
SOURCES/redhatsecurebootca3.cer
|
|
||||||
SOURCES/redhatsecurebootca5.cer
|
|
||||||
SOURCES/theme.tar.bz2
|
SOURCES/theme.tar.bz2
|
||||||
SOURCES/unifont-5.1.20080820.pcf.gz
|
SOURCES/unifont-13.0.06.pcf.gz
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
3d7eb6eaab28b88cb969ba9ab24af959f4d1b178 SOURCES/grub-2.02.tar.xz
|
d08376d97163f99ce0d61fce160d6f7667c5c944 SOURCES/gnulib-9f48fb992a3d7e96610c4ce8be969cff2d61a01b.tar.gz
|
||||||
|
c9f93f1e195ec7a5a21d36a13b469788c0b29f0f SOURCES/grub-2.06.tar.xz
|
||||||
cf0b7763c528902da7e8b05cfa248f20c8825ce5 SOURCES/theme.tar.bz2
|
cf0b7763c528902da7e8b05cfa248f20c8825ce5 SOURCES/theme.tar.bz2
|
||||||
87f8600ba24e521b5d20bdf6c4b71af8ae861e3a SOURCES/unifont-5.1.20080820.pcf.gz
|
3b39cb0830367171760ec536cab805abdbe08bc5 SOURCES/unifont-13.0.06.pcf.gz
|
||||||
57720b361064834b4878229b61aa0a74b66e1037 SOURCES/spheresecureboot001.cer
|
|
||||||
5dfa9ba02dc64f6bf3275f2a150e369a181b9e02 SOURCES/spheresecurebootca.cer
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
Date: Fri, 11 Jun 2021 12:10:45 +0200
|
||||||
|
Subject: [PATCH] Revert "templates: Fix user-facing typo with an incorrect use
|
||||||
|
of "it's""
|
||||||
|
|
||||||
|
This reverts commit 722737630889607c3b5761f1f5a48f1674cd2821.
|
||||||
|
---
|
||||||
|
util/grub.d/30_os-prober.in | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
|
||||||
|
index 5984e92d291..94622481284 100644
|
||||||
|
--- a/util/grub.d/30_os-prober.in
|
||||||
|
+++ b/util/grub.d/30_os-prober.in
|
||||||
|
@@ -36,7 +36,7 @@ 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.")"
|
||||||
|
+grub_warn "$(gettext_printf "os-prober will be executed to detect other bootable partitions.\nIt's 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
|
@ -0,0 +1,71 @@
|
|||||||
|
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 f8cbb8d7a2b..d3e879b8e5c 100644
|
||||||
|
--- a/util/grub-mkconfig.in
|
||||||
|
+++ b/util/grub-mkconfig.in
|
||||||
|
@@ -140,9 +140,6 @@ GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2
|
||||||
|
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
|
||||||
|
GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true
|
||||||
|
|
||||||
|
-# Disable os-prober by default due to security reasons.
|
||||||
|
-GRUB_DISABLE_OS_PROBER="true"
|
||||||
|
-
|
||||||
|
# Filesystem for the device containing our userland. Used for stuff like
|
||||||
|
# choosing Hurd filesystem module.
|
||||||
|
GRUB_FS="`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2> /dev/null || echo unknown`"
|
||||||
|
@@ -204,7 +201,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 \
|
||||||
|
@@ -246,6 +242,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 94622481284..80685b15f4d 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.\nIt's 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() {
|
@ -0,0 +1,70 @@
|
|||||||
|
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 f8b4b3b21a7..69f08d289f9 100644
|
||||||
|
--- a/docs/grub.texi
|
||||||
|
+++ b/docs/grub.texi
|
||||||
|
@@ -1519,13 +1519,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
|
||||||
|
@@ -1853,9 +1850,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 80685b15f4d..1b91c102f35 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() {
|
@ -1,502 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Tue, 8 Aug 2017 12:48:04 -0400
|
|
||||||
Subject: [PATCH] re-write .gitignore
|
|
||||||
|
|
||||||
---
|
|
||||||
.gitignore | 357 +++++++++++++-------------------------
|
|
||||||
build-aux/.gitignore | 9 +
|
|
||||||
docs/.gitignore | 4 +
|
|
||||||
grub-core/.gitignore | 15 ++
|
|
||||||
grub-core/gnulib/.gitignore | 22 +++
|
|
||||||
grub-core/lib/.gitignore | 1 +
|
|
||||||
include/grub/gcrypt/.gitignore | 2 +
|
|
||||||
po/.gitignore | 4 +
|
|
||||||
util/bash-completion.d/.gitignore | 1 +
|
|
||||||
9 files changed, 175 insertions(+), 240 deletions(-)
|
|
||||||
create mode 100644 build-aux/.gitignore
|
|
||||||
create mode 100644 docs/.gitignore
|
|
||||||
create mode 100644 grub-core/.gitignore
|
|
||||||
create mode 100644 grub-core/gnulib/.gitignore
|
|
||||||
create mode 100644 grub-core/lib/.gitignore
|
|
||||||
create mode 100644 include/grub/gcrypt/.gitignore
|
|
||||||
create mode 100644 po/.gitignore
|
|
||||||
create mode 100644 util/bash-completion.d/.gitignore
|
|
||||||
|
|
||||||
diff --git a/.gitignore b/.gitignore
|
|
||||||
index eca17bec9..43f04d472 100644
|
|
||||||
--- a/.gitignore
|
|
||||||
+++ b/.gitignore
|
|
||||||
@@ -1,249 +1,126 @@
|
|
||||||
-00_header
|
|
||||||
-10_*
|
|
||||||
-20_linux_xen
|
|
||||||
-30_os-prober
|
|
||||||
-40_custom
|
|
||||||
-41_custom
|
|
||||||
-*.1
|
|
||||||
-*.8
|
|
||||||
-aclocal.m4
|
|
||||||
-ahci_test
|
|
||||||
-ascii.bitmaps
|
|
||||||
-ascii.h
|
|
||||||
-autom4te.cache
|
|
||||||
-build-grub-gen-asciih
|
|
||||||
-build-grub-gen-widthspec
|
|
||||||
-build-grub-mkfont
|
|
||||||
-cdboot_test
|
|
||||||
-cmp_test
|
|
||||||
-config.cache
|
|
||||||
-config.guess
|
|
||||||
-config.h
|
|
||||||
-config-util.h
|
|
||||||
-config-util.h.in
|
|
||||||
-config.log
|
|
||||||
-config.status
|
|
||||||
-config.sub
|
|
||||||
-configure
|
|
||||||
-core_compress_test
|
|
||||||
-DISTLIST
|
|
||||||
-docs/*.info
|
|
||||||
-docs/stamp-vti
|
|
||||||
-docs/version.texi
|
|
||||||
-ehci_test
|
|
||||||
-example_grub_script_test
|
|
||||||
-example_scripted_test
|
|
||||||
-example_unit_test
|
|
||||||
+# things ./autogen.sh will create
|
|
||||||
+/Makefile.utilgcry.def
|
|
||||||
+/aclocal.m4
|
|
||||||
+/autom4te.cache
|
|
||||||
+/configure
|
|
||||||
+Makefile
|
|
||||||
+# we want to enable building in a subdirectory, but we don't want to exclude
|
|
||||||
+# /build-aux so explicitly don't ignore it.
|
|
||||||
+/build*/
|
|
||||||
+!/build-aux/
|
|
||||||
+
|
|
||||||
+# things very common editors create that we never want
|
|
||||||
+*~
|
|
||||||
+.*.sw?
|
|
||||||
+*.patch
|
|
||||||
+
|
|
||||||
+# built objects across the whole tree
|
|
||||||
+Makefile.in
|
|
||||||
+*.a
|
|
||||||
+*.am
|
|
||||||
*.exec
|
|
||||||
-*.exec.exe
|
|
||||||
-fddboot_test
|
|
||||||
-genkernsyms.sh
|
|
||||||
-gensymlist.sh
|
|
||||||
-gentrigtables
|
|
||||||
-gentrigtables.exe
|
|
||||||
-gettext_strings_test
|
|
||||||
-grub-bin2h
|
|
||||||
-/grub-bios-setup
|
|
||||||
-/grub-bios-setup.exe
|
|
||||||
-grub_cmd_date
|
|
||||||
-grub_cmd_echo
|
|
||||||
-grub_cmd_regexp
|
|
||||||
-grub_cmd_set_date
|
|
||||||
-grub_cmd_sleep
|
|
||||||
-/grub-editenv
|
|
||||||
-/grub-editenv.exe
|
|
||||||
-grub-emu
|
|
||||||
-grub-emu-lite
|
|
||||||
-grub-emu.exe
|
|
||||||
-grub-emu-lite.exe
|
|
||||||
-grub_emu_init.c
|
|
||||||
-grub_emu_init.h
|
|
||||||
-/grub-file
|
|
||||||
-/grub-file.exe
|
|
||||||
-grub-fstest
|
|
||||||
-grub-fstest.exe
|
|
||||||
-grub_fstest_init.c
|
|
||||||
-grub_fstest_init.h
|
|
||||||
-grub_func_test
|
|
||||||
-grub-install
|
|
||||||
-grub-install.exe
|
|
||||||
-grub-kbdcomp
|
|
||||||
-/grub-macbless
|
|
||||||
-/grub-macbless.exe
|
|
||||||
-grub-macho2img
|
|
||||||
-/grub-menulst2cfg
|
|
||||||
-/grub-menulst2cfg.exe
|
|
||||||
-/grub-mk*
|
|
||||||
-grub-mount
|
|
||||||
-/grub-ofpathname
|
|
||||||
-/grub-ofpathname.exe
|
|
||||||
-grub-core/build-grub-pe2elf.exe
|
|
||||||
-/grub-probe
|
|
||||||
-/grub-probe.exe
|
|
||||||
-grub_probe_init.c
|
|
||||||
-grub_probe_init.h
|
|
||||||
-/grub-reboot
|
|
||||||
-grub_script_blanklines
|
|
||||||
-grub_script_blockarg
|
|
||||||
-grub_script_break
|
|
||||||
-grub-script-check
|
|
||||||
-grub-script-check.exe
|
|
||||||
-grub_script_check_init.c
|
|
||||||
-grub_script_check_init.h
|
|
||||||
-grub_script_comments
|
|
||||||
-grub_script_continue
|
|
||||||
-grub_script_dollar
|
|
||||||
-grub_script_echo1
|
|
||||||
-grub_script_echo_keywords
|
|
||||||
-grub_script_escape_comma
|
|
||||||
-grub_script_eval
|
|
||||||
-grub_script_expansion
|
|
||||||
-grub_script_final_semicolon
|
|
||||||
-grub_script_for1
|
|
||||||
-grub_script_functions
|
|
||||||
-grub_script_gettext
|
|
||||||
-grub_script_if
|
|
||||||
-grub_script_leading_whitespace
|
|
||||||
-grub_script_no_commands
|
|
||||||
-grub_script_not
|
|
||||||
-grub_script_return
|
|
||||||
-grub_script_setparams
|
|
||||||
-grub_script_shift
|
|
||||||
-grub_script_strcmp
|
|
||||||
-grub_script_test
|
|
||||||
-grub_script_vars1
|
|
||||||
-grub_script_while1
|
|
||||||
-grub_script.tab.c
|
|
||||||
-grub_script.tab.h
|
|
||||||
-grub_script.yy.c
|
|
||||||
-grub_script.yy.h
|
|
||||||
-grub-set-default
|
|
||||||
-grub_setup_init.c
|
|
||||||
-grub_setup_init.h
|
|
||||||
-grub-shell
|
|
||||||
-grub-shell-tester
|
|
||||||
-grub-sparc64-setup
|
|
||||||
-grub-sparc64-setup.exe
|
|
||||||
-/grub-syslinux2cfg
|
|
||||||
-/grub-syslinux2cfg.exe
|
|
||||||
-gzcompress_test
|
|
||||||
-hddboot_test
|
|
||||||
-help_test
|
|
||||||
-*.img
|
|
||||||
*.image
|
|
||||||
-*.image.exe
|
|
||||||
-include/grub/cpu
|
|
||||||
-include/grub/machine
|
|
||||||
-install-sh
|
|
||||||
-lib/libgcrypt-grub
|
|
||||||
-libgrub_a_init.c
|
|
||||||
-*.log
|
|
||||||
+*.img
|
|
||||||
+*.info
|
|
||||||
*.lst
|
|
||||||
-lzocompress_test
|
|
||||||
*.marker
|
|
||||||
-Makefile
|
|
||||||
*.mod
|
|
||||||
-mod-*.c
|
|
||||||
-missing
|
|
||||||
-netboot_test
|
|
||||||
+*.module
|
|
||||||
*.o
|
|
||||||
-*.a
|
|
||||||
-ohci_test
|
|
||||||
-partmap_test
|
|
||||||
-pata_test
|
|
||||||
*.pf2
|
|
||||||
-*.pp
|
|
||||||
-po/*.mo
|
|
||||||
-po/grub.pot
|
|
||||||
-po/POTFILES
|
|
||||||
-po/stamp-po
|
|
||||||
-printf_test
|
|
||||||
-priority_queue_unit_test
|
|
||||||
-pseries_test
|
|
||||||
-stamp-h
|
|
||||||
-stamp-h1
|
|
||||||
-stamp-h.in
|
|
||||||
-symlist.c
|
|
||||||
-symlist.h
|
|
||||||
-trigtables.c
|
|
||||||
-*.trs
|
|
||||||
-uhci_test
|
|
||||||
-update-grub_lib
|
|
||||||
-unidata.c
|
|
||||||
-xzcompress_test
|
|
||||||
-Makefile.in
|
|
||||||
-GPATH
|
|
||||||
-GRTAGS
|
|
||||||
-GSYMS
|
|
||||||
-GTAGS
|
|
||||||
-compile
|
|
||||||
-depcomp
|
|
||||||
-mdate-sh
|
|
||||||
-texinfo.tex
|
|
||||||
-grub-core/lib/libgcrypt-grub
|
|
||||||
-.deps
|
|
||||||
-.deps-util
|
|
||||||
-.deps-core
|
|
||||||
+*.yy.[ch]
|
|
||||||
+.deps/
|
|
||||||
+.deps-core/
|
|
||||||
+.deps-util/
|
|
||||||
.dirstamp
|
|
||||||
-Makefile.util.am
|
|
||||||
-contrib
|
|
||||||
-grub-core/bootinfo.txt
|
|
||||||
-grub-core/Makefile.core.am
|
|
||||||
-grub-core/Makefile.gcry.def
|
|
||||||
-grub-core/contrib
|
|
||||||
-grub-core/gdb_grub
|
|
||||||
-grub-core/genmod.sh
|
|
||||||
-grub-core/gensyminfo.sh
|
|
||||||
-grub-core/gmodule.pl
|
|
||||||
-grub-core/grub.chrp
|
|
||||||
-grub-core/modinfo.sh
|
|
||||||
-grub-core/*.module
|
|
||||||
-grub-core/*.module.exe
|
|
||||||
-grub-core/*.pp
|
|
||||||
-grub-core/kernel.img.bin
|
|
||||||
-util/bash-completion.d/grub
|
|
||||||
-grub-core/gnulib/alloca.h
|
|
||||||
-grub-core/gnulib/arg-nonnull.h
|
|
||||||
-grub-core/gnulib/c++defs.h
|
|
||||||
-grub-core/gnulib/charset.alias
|
|
||||||
-grub-core/gnulib/configmake.h
|
|
||||||
-grub-core/gnulib/float.h
|
|
||||||
-grub-core/gnulib/getopt.h
|
|
||||||
-grub-core/gnulib/langinfo.h
|
|
||||||
-grub-core/gnulib/ref-add.sed
|
|
||||||
-grub-core/gnulib/ref-del.sed
|
|
||||||
-grub-core/gnulib/stdio.h
|
|
||||||
-grub-core/gnulib/stdlib.h
|
|
||||||
-grub-core/gnulib/string.h
|
|
||||||
-grub-core/gnulib/strings.h
|
|
||||||
-grub-core/gnulib/sys
|
|
||||||
-grub-core/gnulib/unistd.h
|
|
||||||
-grub-core/gnulib/warn-on-use.h
|
|
||||||
-grub-core/gnulib/wchar.h
|
|
||||||
-grub-core/gnulib/wctype.h
|
|
||||||
-grub-core/rs_decoder.h
|
|
||||||
-widthspec.bin
|
|
||||||
-widthspec.h
|
|
||||||
-docs/stamp-1
|
|
||||||
-docs/version-dev.texi
|
|
||||||
-Makefile.utilgcry.def
|
|
||||||
-po/*.po
|
|
||||||
-po/*.gmo
|
|
||||||
-po/LINGUAS
|
|
||||||
-po/remove-potcdate.sed
|
|
||||||
-include/grub/gcrypt/gcrypt.h
|
|
||||||
-include/grub/gcrypt/g10lib.h
|
|
||||||
-po/POTFILES.in
|
|
||||||
-po/POTFILES-shell.in
|
|
||||||
-/grub-glue-efi
|
|
||||||
-/grub-render-label
|
|
||||||
-/grub-glue-efi.exe
|
|
||||||
-/grub-render-label.exe
|
|
||||||
-grub-core/gnulib/locale.h
|
|
||||||
-grub-core/gnulib/unitypes.h
|
|
||||||
-grub-core/gnulib/uniwidth.h
|
|
||||||
-build-aux/test-driver
|
|
||||||
+
|
|
||||||
+# next are things you get if you do ./configure in the topdir (for e.g.
|
|
||||||
+# "make dist" invocation.
|
|
||||||
+/config-util.h
|
|
||||||
+/config.h
|
|
||||||
+/include/grub/cpu
|
|
||||||
+/include/grub/machine
|
|
||||||
+/po/POTFILES
|
|
||||||
+/stamp-h
|
|
||||||
+/stamp-h1
|
|
||||||
+config.log
|
|
||||||
+config.status
|
|
||||||
+
|
|
||||||
+# stuff "make dist" creates
|
|
||||||
+ChangeLog
|
|
||||||
+grub-*.tar
|
|
||||||
+grub-*.tar.*
|
|
||||||
+
|
|
||||||
+# stuff "make" creates
|
|
||||||
+/[[:digit:]][[:digit:]]_?*
|
|
||||||
+/ascii.h
|
|
||||||
+/build-grub-gen-asciih
|
|
||||||
+/build-grub-gen-widthspec
|
|
||||||
+/build-grub-mkfont
|
|
||||||
+/config-util.h.in
|
|
||||||
/garbage-gen
|
|
||||||
-/garbage-gen.exe
|
|
||||||
-/grub-fs-tester
|
|
||||||
-grub-core/build-grub-module-verifier
|
|
||||||
+/grub*-bios-setup
|
|
||||||
+/grub*-bios-setup.8
|
|
||||||
+/grub*-editenv
|
|
||||||
+/grub*-editenv.1
|
|
||||||
+/grub*-file
|
|
||||||
+/grub*-file.1
|
|
||||||
+/grub*-fs-tester
|
|
||||||
+/grub*-fstest
|
|
||||||
+/grub*-fstest.1
|
|
||||||
+/grub*-glue-efi
|
|
||||||
+/grub*-glue-efi.1
|
|
||||||
+/grub*-install
|
|
||||||
+/grub*-install.8
|
|
||||||
+/grub*-kbdcomp
|
|
||||||
+/grub*-kbdcomp.1
|
|
||||||
+/grub*-macbless
|
|
||||||
+/grub*-macbless.8
|
|
||||||
+/grub*-menulst2cfg
|
|
||||||
+/grub*-menulst2cfg.1
|
|
||||||
+/grub*-mkconfig
|
|
||||||
+/grub*-mkconfig.8
|
|
||||||
+/grub*-mkconfig_lib
|
|
||||||
+/grub*-mkfont
|
|
||||||
+/grub*-mkfont.1
|
|
||||||
+/grub*-mkimage
|
|
||||||
+/grub*-mkimage.1
|
|
||||||
+/grub*-mklayout
|
|
||||||
+/grub*-mklayout.1
|
|
||||||
+/grub*-mknetdir
|
|
||||||
+/grub*-mknetdir.1
|
|
||||||
+/grub*-mkpasswd-pbkdf2
|
|
||||||
+/grub*-mkpasswd-pbkdf2.1
|
|
||||||
+/grub*-mkrelpath
|
|
||||||
+/grub*-mkrelpath.1
|
|
||||||
+/grub*-mkrescue
|
|
||||||
+/grub*-mkrescue.1
|
|
||||||
+/grub*-mkstandalone
|
|
||||||
+/grub*-mkstandalone.1
|
|
||||||
+/grub*-ofpathname
|
|
||||||
+/grub*-ofpathname.8
|
|
||||||
+/grub*-probe
|
|
||||||
+/grub*-probe.8
|
|
||||||
+/grub*-reboot
|
|
||||||
+/grub*-reboot.8
|
|
||||||
+/grub*-render-label
|
|
||||||
+/grub*-render-label.1
|
|
||||||
+/grub*-script-check
|
|
||||||
+/grub*-script-check.1
|
|
||||||
+/grub*-set-default
|
|
||||||
+/grub*-set-default.8
|
|
||||||
+/grub*-shell
|
|
||||||
+/grub*-shell-tester
|
|
||||||
+/grub*-sparc64-setup
|
|
||||||
+/grub*-sparc64-setup.8
|
|
||||||
+/grub*-syslinux2cfg
|
|
||||||
+/grub*-syslinux2cfg.1
|
|
||||||
+/grub_fstest.pp
|
|
||||||
+/grub_fstest_init.c
|
|
||||||
+/grub_fstest_init.lst
|
|
||||||
+/grub_script.tab.[ch]
|
|
||||||
+/libgrub.pp
|
|
||||||
+/libgrub_a_init.c
|
|
||||||
+/libgrub_a_init.lst
|
|
||||||
+/stamp-h.in
|
|
||||||
+/widthspec.h
|
|
||||||
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..f2f17aab9
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/build-aux/.gitignore
|
|
||||||
@@ -0,0 +1,9 @@
|
|
||||||
+/compile
|
|
||||||
+/config.guess
|
|
||||||
+/config.sub
|
|
||||||
+/depcomp
|
|
||||||
+/install-sh
|
|
||||||
+/mdate-sh
|
|
||||||
+/missing
|
|
||||||
+/test-driver
|
|
||||||
+/texinfo.tex
|
|
||||||
diff --git a/docs/.gitignore b/docs/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..91aee84d3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/docs/.gitignore
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+/*.in
|
|
||||||
+/stamp-1
|
|
||||||
+/stamp-vti
|
|
||||||
+/version*.texi
|
|
||||||
diff --git a/grub-core/.gitignore b/grub-core/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..c738ac6c6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/grub-core/.gitignore
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+/*.lst
|
|
||||||
+/Makefile.gcry.def
|
|
||||||
+/unidata.c
|
|
||||||
+/build-grub-module-verifier
|
|
||||||
+/gdb_grub
|
|
||||||
+/genmod.sh
|
|
||||||
+/gensyminfo.sh
|
|
||||||
+/gentrigtables
|
|
||||||
+/gmodule.pl
|
|
||||||
+/grub_script.tab.[ch]
|
|
||||||
+/modinfo.sh
|
|
||||||
+/rs_decoder.h
|
|
||||||
+/symlist.c
|
|
||||||
+/symlist.h
|
|
||||||
+/trigtables.c
|
|
||||||
diff --git a/grub-core/gnulib/.gitignore b/grub-core/gnulib/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..29e199c2d
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/grub-core/gnulib/.gitignore
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+/alloca.h
|
|
||||||
+/arg-nonnull.h
|
|
||||||
+/c++defs.h
|
|
||||||
+/charset.alias
|
|
||||||
+/configmake.h
|
|
||||||
+/getopt.h
|
|
||||||
+/langinfo.h
|
|
||||||
+/libgnu.a
|
|
||||||
+/locale.h
|
|
||||||
+/ref-add.sed
|
|
||||||
+/ref-del.sed
|
|
||||||
+/stdio.h
|
|
||||||
+/stdlib.h
|
|
||||||
+/string.h
|
|
||||||
+/strings.h
|
|
||||||
+/sys/
|
|
||||||
+/unistd.h
|
|
||||||
+/unitypes.h
|
|
||||||
+/uniwidth.h
|
|
||||||
+/warn-on-use.h
|
|
||||||
+/wchar.h
|
|
||||||
+/wctype.h
|
|
||||||
diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..681545914
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/grub-core/lib/.gitignore
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+/libgcrypt-grub/
|
|
||||||
diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..8fbf56462
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/grub/gcrypt/.gitignore
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+g10lib.h
|
|
||||||
+gcrypt.h
|
|
||||||
diff --git a/po/.gitignore b/po/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..97b679c31
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/po/.gitignore
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+/POTFILES*.in
|
|
||||||
+/grub.pot
|
|
||||||
+/remove-potcdate.sed
|
|
||||||
+/stamp-po
|
|
||||||
diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..b7e1eb124
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/util/bash-completion.d/.gitignore
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+grub
|
|
@ -0,0 +1,246 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Mon, 8 Jul 2019 12:55:29 +0200
|
||||||
|
Subject: [PATCH] re-write .gitignore
|
||||||
|
|
||||||
|
---
|
||||||
|
.gitignore | 150 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
docs/.gitignore | 5 ++
|
||||||
|
grub-core/.gitignore | 16 ++++
|
||||||
|
grub-core/lib/.gitignore | 1 +
|
||||||
|
include/grub/gcrypt/.gitignore | 2 +
|
||||||
|
po/.gitignore | 5 ++
|
||||||
|
util/bash-completion.d/.gitignore | 2 +
|
||||||
|
7 files changed, 181 insertions(+)
|
||||||
|
create mode 100644 docs/.gitignore
|
||||||
|
create mode 100644 grub-core/.gitignore
|
||||||
|
create mode 100644 grub-core/lib/.gitignore
|
||||||
|
create mode 100644 include/grub/gcrypt/.gitignore
|
||||||
|
create mode 100644 po/.gitignore
|
||||||
|
create mode 100644 util/bash-completion.d/.gitignore
|
||||||
|
|
||||||
|
diff --git a/.gitignore b/.gitignore
|
||||||
|
index f6a1bd0517..208d1d2325 100644
|
||||||
|
--- a/.gitignore
|
||||||
|
+++ b/.gitignore
|
||||||
|
@@ -275,3 +275,153 @@ widthspec.bin
|
||||||
|
/xfs_test
|
||||||
|
/xzcompress_test
|
||||||
|
/zfs_test
|
||||||
|
+=======
|
||||||
|
+# things ./autogen.sh will create
|
||||||
|
+/Makefile.utilgcry.def
|
||||||
|
+/ABOUT-NLS
|
||||||
|
+/aclocal.m4
|
||||||
|
+/autom4te.cache
|
||||||
|
+/build-aux
|
||||||
|
+/configure
|
||||||
|
+/gnulib
|
||||||
|
+/grub-core/lib/gnulib/
|
||||||
|
+/Makefile
|
||||||
|
+
|
||||||
|
+# things very common editors create that we never want
|
||||||
|
+*~
|
||||||
|
+.*.sw?
|
||||||
|
+*.patch
|
||||||
|
+
|
||||||
|
+# stuff you're likely to make while building test trees
|
||||||
|
+grub.cfg
|
||||||
|
+/build*/
|
||||||
|
+
|
||||||
|
+# built objects across the whole tree
|
||||||
|
+Makefile.in
|
||||||
|
+*.a
|
||||||
|
+*.am
|
||||||
|
+*.efi
|
||||||
|
+*.exec
|
||||||
|
+*.image
|
||||||
|
+*.img
|
||||||
|
+*.info
|
||||||
|
+*.lst
|
||||||
|
+*.marker
|
||||||
|
+/m4
|
||||||
|
+*.mod
|
||||||
|
+*.module
|
||||||
|
+*.o
|
||||||
|
+*.pf2
|
||||||
|
+*.yy.[ch]
|
||||||
|
+.deps/
|
||||||
|
+.deps-core/
|
||||||
|
+.deps-util/
|
||||||
|
+.dirstamp
|
||||||
|
+
|
||||||
|
+# next are things you get if you do ./configure in the topdir (for e.g.
|
||||||
|
+# "make dist" invocation.
|
||||||
|
+/config-util.h
|
||||||
|
+/config.h
|
||||||
|
+/include/grub/cpu
|
||||||
|
+/include/grub/machine
|
||||||
|
+/INSTALL
|
||||||
|
+/INSTALL.grub
|
||||||
|
+/po/Makefile.in.in
|
||||||
|
+/po/Makevars
|
||||||
|
+/po/Makevars.template
|
||||||
|
+/po/POTFILES
|
||||||
|
+/po/Rules-quot
|
||||||
|
+/stamp-h
|
||||||
|
+/stamp-h1
|
||||||
|
+bootstrap.log
|
||||||
|
+config.log
|
||||||
|
+config.status
|
||||||
|
+
|
||||||
|
+# stuff "make dist" creates
|
||||||
|
+ChangeLog
|
||||||
|
+grub-*.tar
|
||||||
|
+grub-*.tar.*
|
||||||
|
+
|
||||||
|
+# stuff "make" creates
|
||||||
|
+/[[:digit:]][[:digit:]]_?*
|
||||||
|
+/ascii.h
|
||||||
|
+/build-grub-gen-asciih
|
||||||
|
+/build-grub-gen-widthspec
|
||||||
|
+/build-grub-mkfont
|
||||||
|
+/config-util.h.in
|
||||||
|
+/garbage-gen
|
||||||
|
+/grub*-bios-setup
|
||||||
|
+/grub*-bios-setup.8
|
||||||
|
+/grub*-editenv
|
||||||
|
+/grub*-editenv.1
|
||||||
|
+/grub*-file
|
||||||
|
+/grub*-file.1
|
||||||
|
+/grub*-fs-tester
|
||||||
|
+/grub*-fstest
|
||||||
|
+/grub*-fstest.1
|
||||||
|
+/grub*-get-kernel-settings
|
||||||
|
+/grub*-get-kernel-settings.3
|
||||||
|
+/grub*-glue-efi
|
||||||
|
+/grub*-glue-efi.1
|
||||||
|
+/grub*-install
|
||||||
|
+/grub*-install.8
|
||||||
|
+/grub*-kbdcomp
|
||||||
|
+/grub*-kbdcomp.1
|
||||||
|
+/grub*-macbless
|
||||||
|
+/grub*-macbless.8
|
||||||
|
+/grub*-menulst2cfg
|
||||||
|
+/grub*-menulst2cfg.1
|
||||||
|
+/grub*-mount
|
||||||
|
+/grub*-mount.1
|
||||||
|
+/grub*-mkconfig
|
||||||
|
+/grub*-mkconfig.8
|
||||||
|
+/grub*-mkconfig_lib
|
||||||
|
+/grub*-mkfont
|
||||||
|
+/grub*-mkfont.1
|
||||||
|
+/grub*-mkimage
|
||||||
|
+/grub*-mkimage.1
|
||||||
|
+/grub*-mklayout
|
||||||
|
+/grub*-mklayout.1
|
||||||
|
+/grub*-mknetdir
|
||||||
|
+/grub*-mknetdir.1
|
||||||
|
+/grub*-mkpasswd-pbkdf2
|
||||||
|
+/grub*-mkpasswd-pbkdf2.1
|
||||||
|
+/grub*-mkrelpath
|
||||||
|
+/grub*-mkrelpath.1
|
||||||
|
+/grub*-mkrescue
|
||||||
|
+/grub*-mkrescue.1
|
||||||
|
+/grub*-mkstandalone
|
||||||
|
+/grub*-mkstandalone.1
|
||||||
|
+/grub*-ofpathname
|
||||||
|
+/grub*-ofpathname.8
|
||||||
|
+/grub*-probe
|
||||||
|
+/grub*-probe.8
|
||||||
|
+/grub*-reboot
|
||||||
|
+/grub*-reboot.8
|
||||||
|
+/grub*-render-label
|
||||||
|
+/grub*-render-label.1
|
||||||
|
+/grub*-script-check
|
||||||
|
+/grub*-script-check.1
|
||||||
|
+/grub*-set-bootflag
|
||||||
|
+/grub*-set-bootflag.1
|
||||||
|
+/grub*-set-default
|
||||||
|
+/grub*-set-default.8
|
||||||
|
+/grub*-set-password
|
||||||
|
+/grub*-set-password.8
|
||||||
|
+/grub*-shell
|
||||||
|
+/grub*-shell-tester
|
||||||
|
+/grub*-sparc64-setup
|
||||||
|
+/grub*-sparc64-setup.8
|
||||||
|
+/grub*-syslinux2cfg
|
||||||
|
+/grub*-syslinux2cfg.1
|
||||||
|
+/grub*-switch-to-blscfg
|
||||||
|
+/grub*-switch-to-blscfg.8
|
||||||
|
+/grub_fstest.pp
|
||||||
|
+/grub_fstest_init.c
|
||||||
|
+/grub_fstest_init.lst
|
||||||
|
+/grub_script.tab.[ch]
|
||||||
|
+/libgrub.pp
|
||||||
|
+/libgrub_a_init.c
|
||||||
|
+/libgrub_a_init.lst
|
||||||
|
+/stamp-h.in
|
||||||
|
+/widthspec.h
|
||||||
|
diff --git a/docs/.gitignore b/docs/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e1d849ef95
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/docs/.gitignore
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+/*.in
|
||||||
|
+/Makefile
|
||||||
|
+/stamp-1
|
||||||
|
+/stamp-vti
|
||||||
|
+/version*.texi
|
||||||
|
diff --git a/grub-core/.gitignore b/grub-core/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..2acce28115
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/grub-core/.gitignore
|
||||||
|
@@ -0,0 +1,16 @@
|
||||||
|
+/*.lst
|
||||||
|
+/Makefile
|
||||||
|
+/Makefile.gcry.def
|
||||||
|
+/unidata.c
|
||||||
|
+/build-grub-module-verifier
|
||||||
|
+/gdb_grub
|
||||||
|
+/genmod.sh
|
||||||
|
+/gensyminfo.sh
|
||||||
|
+/gentrigtables
|
||||||
|
+/gmodule.pl
|
||||||
|
+/grub_script.tab.[ch]
|
||||||
|
+/modinfo.sh
|
||||||
|
+/rs_decoder.h
|
||||||
|
+/symlist.c
|
||||||
|
+/symlist.h
|
||||||
|
+/trigtables.c
|
||||||
|
diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..6815459140
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/grub-core/lib/.gitignore
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+/libgcrypt-grub/
|
||||||
|
diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..8fbf564624
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/grub/gcrypt/.gitignore
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+g10lib.h
|
||||||
|
+gcrypt.h
|
||||||
|
diff --git a/po/.gitignore b/po/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..f507e7741e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/po/.gitignore
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+/Makefile
|
||||||
|
+/POTFILES*.in
|
||||||
|
+/grub.pot
|
||||||
|
+/remove-potcdate.sed
|
||||||
|
+/stamp-po
|
||||||
|
diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..6813a527ad
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/util/bash-completion.d/.gitignore
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+Makefile
|
||||||
|
+grub
|
@ -1,26 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marcel Kolaja <mkolaja@redhat.com>
|
|
||||||
Date: Tue, 21 Jan 2014 10:57:08 -0500
|
|
||||||
Subject: [PATCH] Honor a symlink when generating configuration by
|
|
||||||
grub2-mkconfig
|
|
||||||
|
|
||||||
Honor a symlink when generating configuration by grub2-mkconfig, so that
|
|
||||||
the -o option follows it rather than overwriting it with a regular file.
|
|
||||||
---
|
|
||||||
util/grub-mkconfig.in | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
|
||||||
index 33332360e..bc5a3f175 100644
|
|
||||||
--- a/util/grub-mkconfig.in
|
|
||||||
+++ b/util/grub-mkconfig.in
|
|
||||||
@@ -287,7 +287,8 @@ and /etc/grub.d/* files or please file a bug report with
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
# none of the children aborted with error, install the new grub.cfg
|
|
||||||
- mv -f ${grub_cfg}.new ${grub_cfg}
|
|
||||||
+ cat ${grub_cfg}.new > ${grub_cfg}
|
|
||||||
+ rm -f ${grub_cfg}.new
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,106 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 4 Sep 2014 16:49:25 -0400
|
|
||||||
Subject: [PATCH] Add GRUB_DISABLE_UUID.
|
|
||||||
|
|
||||||
This will cause "search --fs-uuid --set=root ..." not to be generated by
|
|
||||||
grub2-mkconfig, and instead simply attempt to use the grub device name
|
|
||||||
as it understands it.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
docs/grub.texi | 7 +++++++
|
|
||||||
util/grub-mkconfig.in | 22 +++++++++++++++++++---
|
|
||||||
util/grub-mkconfig_lib.in | 4 ++--
|
|
||||||
3 files changed, 28 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/docs/grub.texi b/docs/grub.texi
|
|
||||||
index 2adfa97be..2fd32608c 100644
|
|
||||||
--- a/docs/grub.texi
|
|
||||||
+++ b/docs/grub.texi
|
|
||||||
@@ -1441,6 +1441,13 @@ enable the use of partition UUIDs, set this option to @samp{false}.
|
|
||||||
If this option is set to @samp{true}, disable the generation of recovery
|
|
||||||
mode menu entries.
|
|
||||||
|
|
||||||
+@item GRUB_DISABLE_UUID
|
|
||||||
+Normally, @command{grub-mkconfig} will generate menu entries that use
|
|
||||||
+universally-unique identifiers (UUIDs) to identify various filesystems to
|
|
||||||
+search for files. This is usually more reliable, but in some cases it may
|
|
||||||
+not be appropriate. To disable this use of UUIDs, set this option to
|
|
||||||
+@samp{true}.
|
|
||||||
+
|
|
||||||
@item GRUB_VIDEO_BACKEND
|
|
||||||
If graphical video support is required, either because the @samp{gfxterm}
|
|
||||||
graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set,
|
|
||||||
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
|
||||||
index bc5a3f175..b0a8626dd 100644
|
|
||||||
--- a/util/grub-mkconfig.in
|
|
||||||
+++ b/util/grub-mkconfig.in
|
|
||||||
@@ -133,12 +133,12 @@ fi
|
|
||||||
|
|
||||||
# Device containing our userland. Typically used for root= parameter.
|
|
||||||
GRUB_DEVICE="`${grub_probe} --target=device /`"
|
|
||||||
-GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true
|
|
||||||
-GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true
|
|
||||||
+GRUB_DEVICE_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true
|
|
||||||
+GRUB_DEVICE_PARTUUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true
|
|
||||||
|
|
||||||
# Device containing our /boot partition. Usually the same as GRUB_DEVICE.
|
|
||||||
GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
|
|
||||||
-GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true
|
|
||||||
+GRUB_DEVICE_BOOT_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true
|
|
||||||
|
|
||||||
# Filesystem for the device containing our userland. Used for stuff like
|
|
||||||
# choosing Hurd filesystem module.
|
|
||||||
@@ -158,6 +158,21 @@ if test -f ${sysconfdir}/default/grub ; then
|
|
||||||
. ${sysconfdir}/default/grub
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]; then
|
|
||||||
+ if [ -z "$GRUB_DEVICE_UUID" ]; then
|
|
||||||
+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED"
|
|
||||||
+ fi
|
|
||||||
+ if [ -z "$GRUB_DEVICE_BOOT_UUID" ]; then
|
|
||||||
+ GRUB_DEVICE_BOOT_UUID="$GRUB_DEVICE_BOOT_UUID_GENERATED"
|
|
||||||
+ fi
|
|
||||||
+ if [ -z "$GRUB_DEVICE_UUID" ]; then
|
|
||||||
+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED"
|
|
||||||
+ fi
|
|
||||||
+ if [ -z "$GRUB_DEVICE_PART_UUID" ]; then
|
|
||||||
+ GRUB_DEVICE_PART_UUID="$GRUB_DEVICE_PART_UUID_GENERATED"
|
|
||||||
+ fi
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
# XXX: should this be deprecated at some point?
|
|
||||||
if [ "x${GRUB_TERMINAL}" != "x" ] ; then
|
|
||||||
GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}"
|
|
||||||
@@ -227,6 +242,7 @@ export GRUB_DEFAULT \
|
|
||||||
GRUB_DISABLE_LINUX_UUID \
|
|
||||||
GRUB_DISABLE_LINUX_PARTUUID \
|
|
||||||
GRUB_DISABLE_RECOVERY \
|
|
||||||
+ GRUB_DISABLE_UUID \
|
|
||||||
GRUB_VIDEO_BACKEND \
|
|
||||||
GRUB_GFXMODE \
|
|
||||||
GRUB_BACKGROUND \
|
|
||||||
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
|
|
||||||
index 0f801cab3..1001a1223 100644
|
|
||||||
--- a/util/grub-mkconfig_lib.in
|
|
||||||
+++ b/util/grub-mkconfig_lib.in
|
|
||||||
@@ -156,7 +156,7 @@ prepare_grub_to_access_device ()
|
|
||||||
if [ "x$fs_hint" != x ]; then
|
|
||||||
echo "set root='$fs_hint'"
|
|
||||||
fi
|
|
||||||
- if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then
|
|
||||||
+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then
|
|
||||||
hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints=
|
|
||||||
echo "if [ x\$feature_platform_search_hint = xy ]; then"
|
|
||||||
echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}"
|
|
||||||
@@ -173,7 +173,7 @@ grub_get_device_id ()
|
|
||||||
IFS='
|
|
||||||
'
|
|
||||||
device="$1"
|
|
||||||
- if fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then
|
|
||||||
+ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then
|
|
||||||
echo "$fs_uuid";
|
|
||||||
else
|
|
||||||
echo $device |sed 's, ,_,g'
|
|
@ -1,19 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Wed, 22 Jul 2015 11:21:01 -0400
|
|
||||||
Subject: [PATCH] Mark po/exclude.pot as binary so git won't try to diff
|
|
||||||
nonprintables.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
.gitattributes | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
create mode 100644 .gitattributes
|
|
||||||
|
|
||||||
diff --git a/.gitattributes b/.gitattributes
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..33ffaa404
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/.gitattributes
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+po/exclude.pot binary
|
|
@ -1,142 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
|
|
||||||
Date: Tue, 27 Nov 2012 17:18:53 -0200
|
|
||||||
Subject: [PATCH] DHCP client ID and UUID options added.
|
|
||||||
|
|
||||||
---
|
|
||||||
grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++-----
|
|
||||||
include/grub/net.h | 2 ++
|
|
||||||
2 files changed, 81 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
|
|
||||||
index 9e2fdb795..f03eeab2f 100644
|
|
||||||
--- a/grub-core/net/bootp.c
|
|
||||||
+++ b/grub-core/net/bootp.c
|
|
||||||
@@ -25,6 +25,49 @@
|
|
||||||
#include <grub/net/udp.h>
|
|
||||||
#include <grub/datetime.h>
|
|
||||||
|
|
||||||
+static char *
|
|
||||||
+grub_env_write_readonly (struct grub_env_var *var __attribute__ ((unused)),
|
|
||||||
+ const char *val __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ return NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+set_env_limn_ro (const char *intername, const char *suffix,
|
|
||||||
+ const char *value, grub_size_t len)
|
|
||||||
+{
|
|
||||||
+ char *varname, *varvalue;
|
|
||||||
+ char *ptr;
|
|
||||||
+ varname = grub_xasprintf ("net_%s_%s", intername, suffix);
|
|
||||||
+ if (!varname)
|
|
||||||
+ return;
|
|
||||||
+ for (ptr = varname; *ptr; ptr++)
|
|
||||||
+ if (*ptr == ':')
|
|
||||||
+ *ptr = '_';
|
|
||||||
+ varvalue = grub_malloc (len + 1);
|
|
||||||
+ if (!varvalue)
|
|
||||||
+ {
|
|
||||||
+ grub_free (varname);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ grub_memcpy (varvalue, value, len);
|
|
||||||
+ varvalue[len] = 0;
|
|
||||||
+ grub_env_set (varname, varvalue);
|
|
||||||
+ grub_register_variable_hook (varname, 0, grub_env_write_readonly);
|
|
||||||
+ grub_env_export (varname);
|
|
||||||
+ grub_free (varname);
|
|
||||||
+ grub_free (varvalue);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static char
|
|
||||||
+hexdigit (grub_uint8_t val)
|
|
||||||
+{
|
|
||||||
+ if (val < 10)
|
|
||||||
+ return val + '0';
|
|
||||||
+ return val + 'a' - 10;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask)
|
|
||||||
{
|
|
||||||
@@ -55,6 +98,9 @@ parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask)
|
|
||||||
|
|
||||||
taglength = *ptr++;
|
|
||||||
|
|
||||||
+ grub_dprintf("net", "DHCP option %u (0x%02x) found with length %u.\n",
|
|
||||||
+ tagtype, tagtype, taglength);
|
|
||||||
+
|
|
||||||
switch (tagtype)
|
|
||||||
{
|
|
||||||
case GRUB_NET_BOOTP_NETMASK:
|
|
||||||
@@ -120,6 +166,39 @@ parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask)
|
|
||||||
taglength);
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ case GRUB_NET_BOOTP_CLIENT_ID:
|
|
||||||
+ set_env_limn_ro (name, "clientid", (char *) ptr, taglength);
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case GRUB_NET_BOOTP_CLIENT_UUID:
|
|
||||||
+ {
|
|
||||||
+ if (taglength != 17)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ /* The format is 9cfe245e-d0c8-bd45-a79f-54ea5fbd3d97 */
|
|
||||||
+
|
|
||||||
+ ptr += 1;
|
|
||||||
+ taglength -= 1;
|
|
||||||
+
|
|
||||||
+ char *val = grub_malloc (2 * taglength + 4 + 1);
|
|
||||||
+ int i = 0;
|
|
||||||
+ int j = 0;
|
|
||||||
+ for (i = 0; i < taglength; i++)
|
|
||||||
+ {
|
|
||||||
+ val[2 * i + j] = hexdigit (ptr[i] >> 4);
|
|
||||||
+ val[2 * i + 1 + j] = hexdigit (ptr[i] & 0xf);
|
|
||||||
+
|
|
||||||
+ if ((i == 3) || (i == 5) || (i == 7) || (i == 9))
|
|
||||||
+ {
|
|
||||||
+ j++;
|
|
||||||
+ val[2 * i + 1+ j] = '-';
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ set_env_limn_ro (name, "clientuuid", (char *) val, 2 * taglength + 4);
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
/* If you need any other options please contact GRUB
|
|
||||||
development team. */
|
|
||||||
}
|
|
||||||
@@ -302,14 +381,6 @@ grub_net_process_dhcp (struct grub_net_buff *nb,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-static char
|
|
||||||
-hexdigit (grub_uint8_t val)
|
|
||||||
-{
|
|
||||||
- if (val < 10)
|
|
||||||
- return val + '0';
|
|
||||||
- return val + 'a' - 10;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static grub_err_t
|
|
||||||
grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)),
|
|
||||||
int argc, char **args)
|
|
||||||
diff --git a/include/grub/net.h b/include/grub/net.h
|
|
||||||
index 1096b2432..e266bae23 100644
|
|
||||||
--- a/include/grub/net.h
|
|
||||||
+++ b/include/grub/net.h
|
|
||||||
@@ -457,6 +457,8 @@ enum
|
|
||||||
GRUB_NET_BOOTP_DOMAIN = 0x0f,
|
|
||||||
GRUB_NET_BOOTP_ROOT_PATH = 0x11,
|
|
||||||
GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12,
|
|
||||||
+ GRUB_NET_BOOTP_CLIENT_ID = 0x3d,
|
|
||||||
+ GRUB_NET_BOOTP_CLIENT_UUID = 0x61,
|
|
||||||
GRUB_NET_BOOTP_END = 0xff
|
|
||||||
};
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
|
|
||||||
Date: Wed, 5 Feb 2014 09:42:42 -0200
|
|
||||||
Subject: [PATCH] trim arp packets with abnormal size
|
|
||||||
|
|
||||||
GRUB uses arp request to create the arp response. If the incoming packet
|
|
||||||
is foobared, GRUB needs to trim the arp response packet before sending it.
|
|
||||||
---
|
|
||||||
grub-core/net/arp.c | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c
|
|
||||||
index 54306e3b1..d1c69ed2b 100644
|
|
||||||
--- a/grub-core/net/arp.c
|
|
||||||
+++ b/grub-core/net/arp.c
|
|
||||||
@@ -150,6 +150,12 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card,
|
|
||||||
if (grub_net_addr_cmp (&inf->address, &target_addr) == 0
|
|
||||||
&& arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST))
|
|
||||||
{
|
|
||||||
+ if ((nb->tail - nb->data) > 50)
|
|
||||||
+ {
|
|
||||||
+ grub_dprintf ("net", "arp packet with abnormal size (%ld bytes).\n",
|
|
||||||
+ nb->tail - nb->data);
|
|
||||||
+ nb->tail = nb->data + 50;
|
|
||||||
+ }
|
|
||||||
grub_net_link_level_address_t target;
|
|
||||||
struct grub_net_buff nb_reply;
|
|
||||||
struct arppkt *arp_reply;
|
|
@ -1,38 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Prarit Bhargava <prarit@redhat.com>
|
|
||||||
Date: Wed, 12 Mar 2014 10:58:16 -0400
|
|
||||||
Subject: [PATCH] Fix bad test on GRUB_DISABLE_SUBMENU.
|
|
||||||
|
|
||||||
The file /etc/grub.d/10_linux does
|
|
||||||
|
|
||||||
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
|
|
||||||
|
|
||||||
when it should do
|
|
||||||
|
|
||||||
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
|
|
||||||
|
|
||||||
which results in submenus in /boot/grub2/grub.cfg when
|
|
||||||
GRUB_DISABLE_SUBMENU="yes".
|
|
||||||
|
|
||||||
Resolves: rhbz#1063414
|
|
||||||
---
|
|
||||||
util/grub.d/10_linux.in | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
|
||||||
index 61ebd7dc7..87a7da349 100644
|
|
||||||
--- a/util/grub.d/10_linux.in
|
|
||||||
+++ b/util/grub.d/10_linux.in
|
|
||||||
@@ -261,7 +261,11 @@ while [ "x$list" != "x" ] ; do
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
|
|
||||||
+ if [ "x${GRUB_DISABLE_SUBMENU}" = "xyes" ] || [ "x${GRUB_DISABLE_SUBMENU}" = "xy" ]; then
|
|
||||||
+ GRUB_DISABLE_SUBMENU="true"
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
|
|
||||||
linux_entry "${OS}" "${version}" simple \
|
|
||||||
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,46 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
|
||||||
Date: Wed, 12 Jun 2013 11:51:49 -0400
|
|
||||||
Subject: [PATCH] Add support for UEFI operating systems returned by os-prober
|
|
||||||
|
|
||||||
os-prober returns UEFI operating systems in the form:
|
|
||||||
|
|
||||||
path:long-name:name
|
|
||||||
|
|
||||||
where path is the path under the EFI directory on the ESP. This is in
|
|
||||||
contrast to legacy OSes, where path is the device string. Handle this case.
|
|
||||||
---
|
|
||||||
util/grub.d/30_os-prober.in | 21 ++++++++++++++++++---
|
|
||||||
1 file changed, 18 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
|
|
||||||
index 515a68c7a..9b8f5968e 100644
|
|
||||||
--- a/util/grub.d/30_os-prober.in
|
|
||||||
+++ b/util/grub.d/30_os-prober.in
|
|
||||||
@@ -328,8 +328,23 @@ EOF
|
|
||||||
EOF
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
- # TRANSLATORS: %s is replaced by OS name.
|
|
||||||
- gettext_printf "%s is not yet supported by grub-mkconfig.\n" " ${LONGNAME}" >&2
|
|
||||||
- ;;
|
|
||||||
+ case ${DEVICE} in
|
|
||||||
+ *.efi)
|
|
||||||
+ cat << EOF
|
|
||||||
+menuentry '$(echo "${LONGNAME}" | grub_quote)' {
|
|
||||||
+EOF
|
|
||||||
+ save_default_entry | grub_add_tab
|
|
||||||
+ cat << EOF
|
|
||||||
+ chainloader /EFI/${DEVICE}
|
|
||||||
+ boot
|
|
||||||
+}
|
|
||||||
+EOF
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ echo -n " "
|
|
||||||
+ # TRANSLATORS: %s is replaced by OS name.
|
|
||||||
+ gettext_printf "%s is not yet supported by grub-mkconfig.\n" "${LONGNAME}" >&2
|
|
||||||
+ ;;
|
|
||||||
+ esac
|
|
||||||
esac
|
|
||||||
done
|
|
@ -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
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
|
|
||||||
Date: Tue, 27 Nov 2012 16:58:39 -0200
|
|
||||||
Subject: [PATCH] Add %X option to printf functions.
|
|
||||||
|
|
||||||
---
|
|
||||||
grub-core/kern/misc.c | 7 +++++--
|
|
||||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
|
|
||||||
index 952411d5d..8344526be 100644
|
|
||||||
--- a/grub-core/kern/misc.c
|
|
||||||
+++ b/grub-core/kern/misc.c
|
|
||||||
@@ -588,7 +588,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r)
|
|
||||||
static inline char *
|
|
||||||
grub_lltoa (char *str, int c, unsigned long long n)
|
|
||||||
{
|
|
||||||
- unsigned base = (c == 'x') ? 16 : 10;
|
|
||||||
+ unsigned base = ((c == 'x') || (c == 'X')) ? 16 : 10;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
if ((long long) n < 0 && c == 'd')
|
|
||||||
@@ -603,7 +603,7 @@ grub_lltoa (char *str, int c, unsigned long long n)
|
|
||||||
do
|
|
||||||
{
|
|
||||||
unsigned d = (unsigned) (n & 0xf);
|
|
||||||
- *p++ = (d > 9) ? d + 'a' - 10 : d + '0';
|
|
||||||
+ *p++ = (d > 9) ? d + ((c == 'x') ? 'a' : 'A') - 10 : d + '0';
|
|
||||||
}
|
|
||||||
while (n >>= 4);
|
|
||||||
else
|
|
||||||
@@ -676,6 +676,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args,
|
|
||||||
{
|
|
||||||
case 'p':
|
|
||||||
case 'x':
|
|
||||||
+ case 'X':
|
|
||||||
case 'u':
|
|
||||||
case 'd':
|
|
||||||
case 'c':
|
|
||||||
@@ -762,6 +763,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args,
|
|
||||||
switch (c)
|
|
||||||
{
|
|
||||||
case 'x':
|
|
||||||
+ case 'X':
|
|
||||||
case 'u':
|
|
||||||
args->ptr[curn].type = UNSIGNED_INT + longfmt;
|
|
||||||
break;
|
|
||||||
@@ -900,6 +902,7 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0,
|
|
||||||
c = 'x';
|
|
||||||
/* Fall through. */
|
|
||||||
case 'x':
|
|
||||||
+ case 'X':
|
|
||||||
case 'u':
|
|
||||||
case 'd':
|
|
||||||
{
|
|
@ -1,200 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
|
|
||||||
Date: Tue, 27 Nov 2012 17:22:07 -0200
|
|
||||||
Subject: [PATCH] Search for specific config file for netboot
|
|
||||||
|
|
||||||
This patch implements a search for a specific configuration when the config
|
|
||||||
file is on a remoteserver. It uses the following order:
|
|
||||||
1) DHCP client UUID option.
|
|
||||||
2) MAC address (in lower case hexadecimal with dash separators);
|
|
||||||
3) IP (in upper case hexadecimal) or IPv6;
|
|
||||||
4) The original grub.cfg file.
|
|
||||||
|
|
||||||
This procedure is similar to what is used by pxelinux and yaboot:
|
|
||||||
http://www.syslinux.org/wiki/index.php/PXELINUX#config
|
|
||||||
|
|
||||||
This should close the bugzilla:
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=873406
|
|
||||||
---
|
|
||||||
grub-core/net/net.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
grub-core/normal/main.c | 18 ++++++--
|
|
||||||
include/grub/net.h | 3 ++
|
|
||||||
3 files changed, 135 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/net/net.c b/grub-core/net/net.c
|
|
||||||
index 10773fc34..0769bf850 100644
|
|
||||||
--- a/grub-core/net/net.c
|
|
||||||
+++ b/grub-core/net/net.c
|
|
||||||
@@ -1735,6 +1735,124 @@ grub_net_restore_hw (void)
|
|
||||||
return GRUB_ERR_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+grub_err_t
|
|
||||||
+grub_net_search_configfile (char *config)
|
|
||||||
+{
|
|
||||||
+ grub_size_t config_len;
|
|
||||||
+ char *suffix;
|
|
||||||
+
|
|
||||||
+ auto int search_through (grub_size_t num_tries, grub_size_t slice_size);
|
|
||||||
+ int search_through (grub_size_t num_tries, grub_size_t slice_size)
|
|
||||||
+ {
|
|
||||||
+ while (num_tries-- > 0)
|
|
||||||
+ {
|
|
||||||
+ grub_dprintf ("net", "probe %s\n", config);
|
|
||||||
+
|
|
||||||
+ grub_file_t file;
|
|
||||||
+ file = grub_file_open (config);
|
|
||||||
+
|
|
||||||
+ if (file)
|
|
||||||
+ {
|
|
||||||
+ grub_file_close (file);
|
|
||||||
+ grub_dprintf ("net", "found!\n");
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ if (grub_errno == GRUB_ERR_IO)
|
|
||||||
+ grub_errno = GRUB_ERR_NONE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (grub_strlen (suffix) < slice_size)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ config[grub_strlen (config) - slice_size] = '\0';
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ config_len = grub_strlen (config);
|
|
||||||
+ config[config_len] = '-';
|
|
||||||
+ suffix = config + config_len + 1;
|
|
||||||
+
|
|
||||||
+ struct grub_net_network_level_interface *inf;
|
|
||||||
+ FOR_NET_NETWORK_LEVEL_INTERFACES (inf)
|
|
||||||
+ {
|
|
||||||
+ /* By the Client UUID. */
|
|
||||||
+
|
|
||||||
+ char client_uuid_var[sizeof ("net_") + grub_strlen (inf->name) +
|
|
||||||
+ sizeof ("_clientuuid") + 1];
|
|
||||||
+ grub_snprintf (client_uuid_var, sizeof (client_uuid_var),
|
|
||||||
+ "net_%s_clientuuid", inf->name);
|
|
||||||
+
|
|
||||||
+ const char *client_uuid;
|
|
||||||
+ client_uuid = grub_env_get (client_uuid_var);
|
|
||||||
+
|
|
||||||
+ if (client_uuid)
|
|
||||||
+ {
|
|
||||||
+ grub_strcpy (suffix, client_uuid);
|
|
||||||
+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* By the MAC address. */
|
|
||||||
+
|
|
||||||
+ /* Add ethernet type */
|
|
||||||
+ grub_strcpy (suffix, "01-");
|
|
||||||
+
|
|
||||||
+ grub_net_hwaddr_to_str (&inf->hwaddress, suffix + 3);
|
|
||||||
+
|
|
||||||
+ char *ptr;
|
|
||||||
+ for (ptr = suffix; *ptr; ptr++)
|
|
||||||
+ if (*ptr == ':')
|
|
||||||
+ *ptr = '-';
|
|
||||||
+
|
|
||||||
+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE;
|
|
||||||
+
|
|
||||||
+ /* By IP address */
|
|
||||||
+
|
|
||||||
+ switch ((&inf->address)->type)
|
|
||||||
+ {
|
|
||||||
+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4:
|
|
||||||
+ {
|
|
||||||
+ grub_uint32_t n = grub_be_to_cpu32 ((&inf->address)->ipv4);
|
|
||||||
+ grub_snprintf (suffix, GRUB_NET_MAX_STR_ADDR_LEN, "%02X%02X%02X%02X", \
|
|
||||||
+ ((n >> 24) & 0xff), ((n >> 16) & 0xff), \
|
|
||||||
+ ((n >> 8) & 0xff), ((n >> 0) & 0xff));
|
|
||||||
+
|
|
||||||
+ if (search_through (8, 1) == 0) return GRUB_ERR_NONE;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6:
|
|
||||||
+ {
|
|
||||||
+ char buf[GRUB_NET_MAX_STR_ADDR_LEN];
|
|
||||||
+ struct grub_net_network_level_address base;
|
|
||||||
+ base.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6;
|
|
||||||
+ grub_memcpy (&base.ipv6, ((&inf->address)->ipv6), 16);
|
|
||||||
+ grub_net_addr_to_str (&base, buf);
|
|
||||||
+
|
|
||||||
+ for (ptr = buf; *ptr; ptr++)
|
|
||||||
+ if (*ptr == ':')
|
|
||||||
+ *ptr = '-';
|
|
||||||
+
|
|
||||||
+ grub_snprintf (suffix, GRUB_NET_MAX_STR_ADDR_LEN, "%s", buf);
|
|
||||||
+ if (search_through (1, 0) == 0) return GRUB_ERR_NONE;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ case GRUB_NET_NETWORK_LEVEL_PROTOCOL_DHCP_RECV:
|
|
||||||
+ return grub_error (GRUB_ERR_BUG, "shouldn't reach here");
|
|
||||||
+ default:
|
|
||||||
+ return grub_error (GRUB_ERR_BUG,
|
|
||||||
+ "unsupported address type %d", (&inf->address)->type);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Remove the remaining minus sign at the end. */
|
|
||||||
+ config[config_len] = '\0';
|
|
||||||
+
|
|
||||||
+ return GRUB_ERR_NONE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static struct grub_preboot *fini_hnd;
|
|
||||||
|
|
||||||
static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute;
|
|
||||||
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
|
|
||||||
index 759c475c4..b2654ef62 100644
|
|
||||||
--- a/grub-core/normal/main.c
|
|
||||||
+++ b/grub-core/normal/main.c
|
|
||||||
@@ -33,6 +33,7 @@
|
|
||||||
#include <grub/charset.h>
|
|
||||||
#include <grub/script_sh.h>
|
|
||||||
#include <grub/bufio.h>
|
|
||||||
+#include <grub/net.h>
|
|
||||||
#ifdef GRUB_MACHINE_IEEE1275
|
|
||||||
#include <grub/ieee1275/ieee1275.h>
|
|
||||||
#endif
|
|
||||||
@@ -365,10 +366,19 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
|
|
||||||
|
|
||||||
prefix = grub_env_get ("prefix");
|
|
||||||
if (prefix)
|
|
||||||
- {
|
|
||||||
- config = grub_xasprintf ("%s/grub.cfg", prefix);
|
|
||||||
- if (! config)
|
|
||||||
- goto quit;
|
|
||||||
+ {
|
|
||||||
+ grub_size_t config_len;
|
|
||||||
+ config_len = grub_strlen (prefix) +
|
|
||||||
+ sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
|
|
||||||
+ config = grub_malloc (config_len);
|
|
||||||
+
|
|
||||||
+ if (! config)
|
|
||||||
+ goto quit;
|
|
||||||
+
|
|
||||||
+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
|
|
||||||
+
|
|
||||||
+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0)
|
|
||||||
+ grub_net_search_configfile (config);
|
|
||||||
|
|
||||||
grub_enter_normal_mode (config);
|
|
||||||
grub_free (config);
|
|
||||||
diff --git a/include/grub/net.h b/include/grub/net.h
|
|
||||||
index e266bae23..50d62ab0c 100644
|
|
||||||
--- a/include/grub/net.h
|
|
||||||
+++ b/include/grub/net.h
|
|
||||||
@@ -566,4 +566,7 @@ extern char *grub_net_default_server;
|
|
||||||
|
|
||||||
#define VLANTAG_IDENTIFIER 0x8100
|
|
||||||
|
|
||||||
+grub_err_t
|
|
||||||
+grub_net_search_configfile (char *config);
|
|
||||||
+
|
|
||||||
#endif /* ! GRUB_NET_HEADER */
|
|
@ -0,0 +1,127 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Mon, 8 Jul 2019 17:33:22 +0200
|
||||||
|
Subject: [PATCH] Try mac/guid/etc before grub.cfg on tftp config files.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
grub-core/normal/main.c | 97 ++++++++++++++++++++++++++-----------------------
|
||||||
|
1 file changed, 51 insertions(+), 46 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
|
||||||
|
index bf24e65713..0a99768f75 100644
|
||||||
|
--- a/grub-core/normal/main.c
|
||||||
|
+++ b/grub-core/normal/main.c
|
||||||
|
@@ -345,61 +345,66 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
|
||||||
|
/* Guess the config filename. It is necessary to make CONFIG static,
|
||||||
|
so that it won't get broken by longjmp. */
|
||||||
|
char *config;
|
||||||
|
- const char *prefix, *fw_path;
|
||||||
|
-
|
||||||
|
- prefix = fw_path = grub_env_get ("fw_path");
|
||||||
|
- if (fw_path)
|
||||||
|
- {
|
||||||
|
- config = grub_xasprintf ("%s/grub.cfg", fw_path);
|
||||||
|
- if (config)
|
||||||
|
- {
|
||||||
|
- grub_file_t file;
|
||||||
|
-
|
||||||
|
- file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
|
||||||
|
- if (file)
|
||||||
|
- {
|
||||||
|
- grub_file_close (file);
|
||||||
|
- grub_enter_normal_mode (config);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- /* Ignore all errors. */
|
||||||
|
- grub_errno = 0;
|
||||||
|
- }
|
||||||
|
- grub_free (config);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ const char *prefix;
|
||||||
|
+ const char *net_search_cfg;
|
||||||
|
+ int disable_net_search = 0;
|
||||||
|
|
||||||
|
+ prefix = grub_env_get ("fw_path");
|
||||||
|
if (! prefix)
|
||||||
|
prefix = grub_env_get ("prefix");
|
||||||
|
+
|
||||||
|
+ net_search_cfg = grub_env_get ("feature_net_search_cfg");
|
||||||
|
+ if (net_search_cfg && net_search_cfg[0] == 'n')
|
||||||
|
+ disable_net_search = 1;
|
||||||
|
+
|
||||||
|
if (prefix)
|
||||||
|
{
|
||||||
|
- grub_size_t config_len;
|
||||||
|
- int disable_net_search = 0;
|
||||||
|
- const char *net_search_cfg;
|
||||||
|
-
|
||||||
|
- config_len = grub_strlen (prefix) +
|
||||||
|
- sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
|
||||||
|
- config = grub_malloc (config_len);
|
||||||
|
-
|
||||||
|
- if (!config)
|
||||||
|
- goto quit;
|
||||||
|
-
|
||||||
|
- grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
|
||||||
|
-
|
||||||
|
- net_search_cfg = grub_env_get ("feature_net_search_cfg");
|
||||||
|
- if (net_search_cfg && net_search_cfg[0] == 'n')
|
||||||
|
- disable_net_search = 1;
|
||||||
|
-
|
||||||
|
if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0 &&
|
||||||
|
!disable_net_search)
|
||||||
|
- grub_net_search_config_file (config);
|
||||||
|
+ {
|
||||||
|
+ grub_size_t config_len;
|
||||||
|
+ config_len = grub_strlen (prefix) +
|
||||||
|
+ sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
|
||||||
|
+ config = grub_malloc (config_len);
|
||||||
|
|
||||||
|
- grub_enter_normal_mode (config);
|
||||||
|
- grub_free (config);
|
||||||
|
- }
|
||||||
|
+ if (! config)
|
||||||
|
+ goto quit;
|
||||||
|
+
|
||||||
|
+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
|
||||||
|
+
|
||||||
|
+ grub_net_search_configfile (config);
|
||||||
|
+
|
||||||
|
+ grub_enter_normal_mode (config);
|
||||||
|
+ grub_free (config);
|
||||||
|
+ config = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!config)
|
||||||
|
+ {
|
||||||
|
+ config = grub_xasprintf ("%s/grub.cfg", prefix);
|
||||||
|
+ if (config)
|
||||||
|
+ {
|
||||||
|
+ grub_file_t file;
|
||||||
|
+
|
||||||
|
+ file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
|
||||||
|
+ if (file)
|
||||||
|
+ {
|
||||||
|
+ grub_file_close (file);
|
||||||
|
+ grub_enter_normal_mode (config);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* Ignore all errors. */
|
||||||
|
+ grub_errno = 0;
|
||||||
|
+ }
|
||||||
|
+ grub_free (config);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
- grub_enter_normal_mode (0);
|
||||||
|
+ {
|
||||||
|
+ grub_enter_normal_mode (0);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
grub_enter_normal_mode (argv[0]);
|
@ -1,248 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fedora Ninjas <grub2-owner@fedoraproject.org>
|
|
||||||
Date: Tue, 22 Jan 2013 06:31:38 +0100
|
|
||||||
Subject: [PATCH] blscfg: add blscfg module to parse Boot Loader Specification
|
|
||||||
snippets
|
|
||||||
|
|
||||||
http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
|
|
||||||
|
|
||||||
Works like this:
|
|
||||||
|
|
||||||
insmod blscfg
|
|
||||||
bls_import
|
|
||||||
|
|
||||||
Done! You should now have menu items for your snippets in place.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <grub2-owner@fedoraproject.org>
|
|
||||||
---
|
|
||||||
grub-core/Makefile.core.def | 8 ++
|
|
||||||
grub-core/commands/blscfg.c | 201 ++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 209 insertions(+)
|
|
||||||
create mode 100644 grub-core/commands/blscfg.c
|
|
||||||
|
|
||||||
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
|
|
||||||
index f80653882..cd0902b46 100644
|
|
||||||
--- a/grub-core/Makefile.core.def
|
|
||||||
+++ b/grub-core/Makefile.core.def
|
|
||||||
@@ -768,6 +768,14 @@ module = {
|
|
||||||
common = commands/blocklist.c;
|
|
||||||
};
|
|
||||||
|
|
||||||
+module = {
|
|
||||||
+ name = blscfg;
|
|
||||||
+ common = commands/blscfg.c;
|
|
||||||
+ enable = i386_efi;
|
|
||||||
+ enable = x86_64_efi;
|
|
||||||
+ enable = i386_pc;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
module = {
|
|
||||||
name = boot;
|
|
||||||
common = commands/boot.c;
|
|
||||||
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..4274aca5a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/grub-core/commands/blscfg.c
|
|
||||||
@@ -0,0 +1,201 @@
|
|
||||||
+/*-*- Mode: C; c-basic-offset: 2; indent-tabs-mode: t -*-*/
|
|
||||||
+
|
|
||||||
+/* bls.c - implementation of the boot loader spec */
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * GRUB -- GRand Unified Bootloader
|
|
||||||
+ *
|
|
||||||
+ * 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/types.h>
|
|
||||||
+#include <grub/misc.h>
|
|
||||||
+#include <grub/mm.h>
|
|
||||||
+#include <grub/err.h>
|
|
||||||
+#include <grub/dl.h>
|
|
||||||
+#include <grub/extcmd.h>
|
|
||||||
+#include <grub/i18n.h>
|
|
||||||
+#include <grub/fs.h>
|
|
||||||
+#include <grub/env.h>
|
|
||||||
+#include <grub/file.h>
|
|
||||||
+#include <grub/normal.h>
|
|
||||||
+
|
|
||||||
+GRUB_MOD_LICENSE ("GPLv3+");
|
|
||||||
+
|
|
||||||
+#ifdef GRUB_MACHINE_EFI
|
|
||||||
+#define GRUB_LINUX_CMD "linuxefi"
|
|
||||||
+#define GRUB_INITRD_CMD "initrdefi"
|
|
||||||
+#define GRUB_BLS_CONFIG_PATH "/EFI/fedora/loader/entries/"
|
|
||||||
+#define GRUB_BOOT_DEVICE "($boot)"
|
|
||||||
+#else
|
|
||||||
+#define GRUB_LINUX_CMD "linux"
|
|
||||||
+#define GRUB_INITRD_CMD "initrd"
|
|
||||||
+#define GRUB_BLS_CONFIG_PATH "/loader/entries/"
|
|
||||||
+#define GRUB_BOOT_DEVICE "($root)"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+static int parse_entry (
|
|
||||||
+ const char *filename,
|
|
||||||
+ const struct grub_dirhook_info *info __attribute__ ((unused)),
|
|
||||||
+ void *data __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ grub_size_t n;
|
|
||||||
+ char *p;
|
|
||||||
+ grub_file_t f = NULL;
|
|
||||||
+ grub_off_t sz;
|
|
||||||
+ char *title = NULL, *options = NULL, *clinux = NULL, *initrd = NULL, *src = NULL;
|
|
||||||
+ const char *args[2] = { NULL, NULL };
|
|
||||||
+
|
|
||||||
+ if (filename[0] == '.')
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ n = grub_strlen (filename);
|
|
||||||
+ if (n <= 5)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ if (grub_strcmp (filename + n - 5, ".conf") != 0)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ p = grub_xasprintf (GRUB_BLS_CONFIG_PATH "%s", filename);
|
|
||||||
+
|
|
||||||
+ f = grub_file_open (p);
|
|
||||||
+ if (!f)
|
|
||||||
+ goto finish;
|
|
||||||
+
|
|
||||||
+ sz = grub_file_size (f);
|
|
||||||
+ if (sz == GRUB_FILE_SIZE_UNKNOWN || sz > 1024*1024)
|
|
||||||
+ goto finish;
|
|
||||||
+
|
|
||||||
+ for (;;)
|
|
||||||
+ {
|
|
||||||
+ char *buf;
|
|
||||||
+
|
|
||||||
+ buf = grub_file_getline (f);
|
|
||||||
+ if (!buf)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ if (grub_strncmp (buf, "title ", 6) == 0)
|
|
||||||
+ {
|
|
||||||
+ grub_free (title);
|
|
||||||
+ title = grub_strdup (buf + 6);
|
|
||||||
+ if (!title)
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+ else if (grub_strncmp (buf, "options ", 8) == 0)
|
|
||||||
+ {
|
|
||||||
+ grub_free (options);
|
|
||||||
+ options = grub_strdup (buf + 8);
|
|
||||||
+ if (!options)
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+ else if (grub_strncmp (buf, "linux ", 6) == 0)
|
|
||||||
+ {
|
|
||||||
+ grub_free (clinux);
|
|
||||||
+ clinux = grub_strdup (buf + 6);
|
|
||||||
+ if (!clinux)
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+ else if (grub_strncmp (buf, "initrd ", 7) == 0)
|
|
||||||
+ {
|
|
||||||
+ grub_free (initrd);
|
|
||||||
+ initrd = grub_strdup (buf + 7);
|
|
||||||
+ if (!initrd)
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ grub_free(buf);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!linux)
|
|
||||||
+ {
|
|
||||||
+ grub_printf ("Skipping file %s with no 'linux' key.", p);
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ args[0] = title ? title : filename;
|
|
||||||
+
|
|
||||||
+ src = grub_xasprintf ("load_video\n"
|
|
||||||
+ "set gfx_payload=keep\n"
|
|
||||||
+ "insmod gzio\n"
|
|
||||||
+ GRUB_LINUX_CMD " %s%s%s%s\n"
|
|
||||||
+ "%s%s%s%s",
|
|
||||||
+ GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "",
|
|
||||||
+ initrd ? GRUB_INITRD_CMD " " : "", initrd ? GRUB_BOOT_DEVICE : "", initrd ? initrd : "", initrd ? "\n" : "");
|
|
||||||
+
|
|
||||||
+ grub_normal_add_menu_entry (1, args, NULL, NULL, "bls", NULL, NULL, src, 0);
|
|
||||||
+
|
|
||||||
+finish:
|
|
||||||
+ grub_free (p);
|
|
||||||
+ grub_free (title);
|
|
||||||
+ grub_free (options);
|
|
||||||
+ grub_free (clinux);
|
|
||||||
+ grub_free (initrd);
|
|
||||||
+ grub_free (src);
|
|
||||||
+
|
|
||||||
+ if (f)
|
|
||||||
+ grub_file_close (f);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static grub_err_t
|
|
||||||
+grub_cmd_bls_import (grub_extcmd_context_t ctxt __attribute__ ((unused)),
|
|
||||||
+ int argc __attribute__ ((unused)),
|
|
||||||
+ char **args __attribute__ ((unused)))
|
|
||||||
+{
|
|
||||||
+ grub_fs_t fs;
|
|
||||||
+ grub_device_t dev;
|
|
||||||
+ static grub_err_t r;
|
|
||||||
+ const char *devid;
|
|
||||||
+
|
|
||||||
+ devid = grub_env_get ("root");
|
|
||||||
+ if (!devid)
|
|
||||||
+ return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "root");
|
|
||||||
+
|
|
||||||
+ dev = grub_device_open (devid);
|
|
||||||
+ if (!dev)
|
|
||||||
+ return grub_errno;
|
|
||||||
+
|
|
||||||
+ fs = grub_fs_probe (dev);
|
|
||||||
+ if (!fs)
|
|
||||||
+ {
|
|
||||||
+ r = grub_errno;
|
|
||||||
+ goto finish;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ r = fs->dir (dev, GRUB_BLS_CONFIG_PATH, parse_entry, NULL);
|
|
||||||
+
|
|
||||||
+finish:
|
|
||||||
+ if (dev)
|
|
||||||
+ grub_device_close (dev);
|
|
||||||
+
|
|
||||||
+ return r;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static grub_extcmd_t cmd;
|
|
||||||
+
|
|
||||||
+GRUB_MOD_INIT(bls)
|
|
||||||
+{
|
|
||||||
+ cmd = grub_register_extcmd ("bls_import",
|
|
||||||
+ grub_cmd_bls_import,
|
|
||||||
+ 0,
|
|
||||||
+ NULL,
|
|
||||||
+ N_("Import Boot Loader Specification snippets."),
|
|
||||||
+ NULL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+GRUB_MOD_FINI(bls)
|
|
||||||
+{
|
|
||||||
+ grub_unregister_extcmd (cmd);
|
|
||||||
+}
|
|
@ -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 4880cefe3..b22e1bcc9 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 8ab7794c4..da47b18b5 100644
|
|
||||||
--- a/grub-core/kern/main.c
|
|
||||||
+++ b/grub-core/kern/main.c
|
|
||||||
@@ -268,11 +268,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);
|
|
||||||
-
|
|
||||||
grub_load_config ();
|
|
||||||
|
|
||||||
grub_boot_time ("Before loading embedded modules.");
|
|
||||||
diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S
|
|
||||||
index 2bd0b2d28..ea167fe12 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 c1addc0df..68d31de0c 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 233754ff2..3a5aa0f8d 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
|
|
@ -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 b2654ef62..f57b7508a 100644
|
|
||||||
--- a/grub-core/normal/main.c
|
|
||||||
+++ b/grub-core/normal/main.c
|
|
||||||
@@ -202,15 +202,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)
|
|
||||||
@@ -235,6 +236,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
|
|
@ -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 e22bb91f6..a3d1f23f6 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,
|
|
@ -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 a3d1f23f6..64a83862f 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 64a83862f..1062d64ee 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;
|
|
||||||
|
|
@ -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 f57b7508a..0ce59fdc3 100644
|
|
||||||
--- a/grub-core/normal/main.c
|
|
||||||
+++ b/grub-core/normal/main.c
|
|
||||||
@@ -426,8 +426,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);
|
|
@ -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 1062d64ee..ecc60f99f 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 ecc60f99f..0e43f2c10 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 */;
|
|
@ -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 0e43f2c10..537d4bf86 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*/
|
|
||||||
|
|
@ -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 537d4bf86..452d55bf9 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 3a5aa0f8d..6299836b5 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 e8143b079..972a4b5a0 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
|
|
||||||
|
|
@ -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 452d55bf9..1ed2bd92c 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
|
|
@ -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 1ed2bd92c..7681f7d28 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Mon, 30 Jun 2014 14:16:46 -0400
|
|
||||||
Subject: [PATCH] Don't munge raw spaces when we're doing our cmdline escaping
|
|
||||||
(#923374)
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
grub-core/lib/cmdline.c | 11 +----------
|
|
||||||
1 file changed, 1 insertion(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c
|
|
||||||
index 0a5b2afb9..970ea868c 100644
|
|
||||||
--- a/grub-core/lib/cmdline.c
|
|
||||||
+++ b/grub-core/lib/cmdline.c
|
|
||||||
@@ -97,16 +97,7 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf,
|
|
||||||
|
|
||||||
while (*c)
|
|
||||||
{
|
|
||||||
- if (*c == ' ')
|
|
||||||
- {
|
|
||||||
- *buf++ = '\\';
|
|
||||||
- *buf++ = 'x';
|
|
||||||
- *buf++ = '2';
|
|
||||||
- *buf++ = '0';
|
|
||||||
- c++;
|
|
||||||
- continue;
|
|
||||||
- }
|
|
||||||
- else if (*c == '\\' && *(c+1) == 'x' &&
|
|
||||||
+ if (*c == '\\' && *(c+1) == 'x' &&
|
|
||||||
is_hex(*(c+2)) && is_hex(*(c+3)))
|
|
||||||
{
|
|
||||||
*buf++ = *c++;
|
|
@ -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 d2f64b05e..5e2f5283d 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 cdf3590a3..5785f67ee 100644
|
|
||||||
--- a/grub-core/normal/menu_entry.c
|
|
||||||
+++ b/grub-core/normal/menu_entry.c
|
|
||||||
@@ -1167,9 +1167,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;
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,111 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 6 Mar 2014 11:51:33 -0500
|
|
||||||
Subject: [PATCH] Try mac/guid/etc before grub.cfg on tftp config files.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
grub-core/normal/main.c | 80 ++++++++++++++++++++++++++-----------------------
|
|
||||||
1 file changed, 43 insertions(+), 37 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
|
|
||||||
index a3713efcd..7d9c4f09b 100644
|
|
||||||
--- a/grub-core/normal/main.c
|
|
||||||
+++ b/grub-core/normal/main.c
|
|
||||||
@@ -341,53 +341,59 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)),
|
|
||||||
/* Guess the config filename. It is necessary to make CONFIG static,
|
|
||||||
so that it won't get broken by longjmp. */
|
|
||||||
char *config;
|
|
||||||
- const char *prefix, *fw_path;
|
|
||||||
-
|
|
||||||
- prefix = fw_path = grub_env_get ("fw_path");
|
|
||||||
- if (fw_path)
|
|
||||||
- {
|
|
||||||
- config = grub_xasprintf ("%s/grub.cfg", fw_path);
|
|
||||||
- if (config)
|
|
||||||
- {
|
|
||||||
- grub_file_t file;
|
|
||||||
-
|
|
||||||
- file = grub_file_open (config);
|
|
||||||
- if (file)
|
|
||||||
- {
|
|
||||||
- grub_file_close (file);
|
|
||||||
- grub_enter_normal_mode (config);
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- /* Ignore all errors. */
|
|
||||||
- grub_errno = 0;
|
|
||||||
- }
|
|
||||||
- grub_free (config);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+ const char *prefix;
|
|
||||||
|
|
||||||
+ prefix = grub_env_get ("fw_path");
|
|
||||||
if (! prefix)
|
|
||||||
prefix = grub_env_get ("prefix");
|
|
||||||
+
|
|
||||||
if (prefix)
|
|
||||||
- {
|
|
||||||
- grub_size_t config_len;
|
|
||||||
- config_len = grub_strlen (prefix) +
|
|
||||||
- sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
|
|
||||||
- config = grub_malloc (config_len);
|
|
||||||
+ {
|
|
||||||
+ if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0)
|
|
||||||
+ {
|
|
||||||
+ grub_size_t config_len;
|
|
||||||
+ config_len = grub_strlen (prefix) +
|
|
||||||
+ sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
|
|
||||||
+ config = grub_malloc (config_len);
|
|
||||||
|
|
||||||
- if (! config)
|
|
||||||
- goto quit;
|
|
||||||
+ if (! config)
|
|
||||||
+ goto quit;
|
|
||||||
|
|
||||||
- grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
|
|
||||||
+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix);
|
|
||||||
|
|
||||||
- if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0)
|
|
||||||
- grub_net_search_configfile (config);
|
|
||||||
+ grub_net_search_configfile (config);
|
|
||||||
|
|
||||||
- grub_enter_normal_mode (config);
|
|
||||||
- grub_free (config);
|
|
||||||
+ grub_enter_normal_mode (config);
|
|
||||||
+ grub_free (config);
|
|
||||||
+ config = NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!config)
|
|
||||||
+ {
|
|
||||||
+ config = grub_xasprintf ("%s/grub.cfg", prefix);
|
|
||||||
+ if (config)
|
|
||||||
+ {
|
|
||||||
+ grub_file_t file;
|
|
||||||
+
|
|
||||||
+ file = grub_file_open (config);
|
|
||||||
+ if (file)
|
|
||||||
+ {
|
|
||||||
+ grub_file_close (file);
|
|
||||||
+ grub_enter_normal_mode (config);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /* Ignore all errors. */
|
|
||||||
+ grub_errno = 0;
|
|
||||||
+ }
|
|
||||||
+ grub_free (config);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- grub_enter_normal_mode (0);
|
|
||||||
+ {
|
|
||||||
+ grub_enter_normal_mode (0);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
grub_enter_normal_mode (argv[0]);
|
|
@ -1,56 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Tue, 18 Feb 2014 11:34:00 -0500
|
|
||||||
Subject: [PATCH] Fix convert function to support NVMe devices
|
|
||||||
|
|
||||||
This is adapted from the patch at
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against
|
|
||||||
the now very old version of convert_system_partition_to_system_disk().
|
|
||||||
|
|
||||||
As such, it certainly not the right thing for upstream, but should
|
|
||||||
function for now.
|
|
||||||
|
|
||||||
Resolves: rhbz#1019660
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <grub2-owner@fedoraproject.org>
|
|
||||||
---
|
|
||||||
util/getroot.c | 19 +++++++++++++++++++
|
|
||||||
1 file changed, 19 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/util/getroot.c b/util/getroot.c
|
|
||||||
index 847406fba..fa3460d6c 100644
|
|
||||||
--- a/util/getroot.c
|
|
||||||
+++ b/util/getroot.c
|
|
||||||
@@ -153,6 +153,7 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part)
|
|
||||||
{
|
|
||||||
#if GRUB_UTIL_FD_STAT_IS_FUNCTIONAL
|
|
||||||
struct stat st;
|
|
||||||
+ char *path = xmalloc(PATH_MAX);
|
|
||||||
|
|
||||||
if (stat (os_dev, &st) < 0)
|
|
||||||
{
|
|
||||||
@@ -165,6 +166,24 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part)
|
|
||||||
|
|
||||||
*is_part = 0;
|
|
||||||
|
|
||||||
+ if (realpath(os_dev, path))
|
|
||||||
+ {
|
|
||||||
+ if ((strncmp ("/dev/nvme", path, 9) == 0))
|
|
||||||
+ {
|
|
||||||
+ char *p = path + 5;
|
|
||||||
+ p = strchr(p, 'p');
|
|
||||||
+ if (p)
|
|
||||||
+ {
|
|
||||||
+ *is_part = 1;
|
|
||||||
+ *p = '\0';
|
|
||||||
+ }
|
|
||||||
+ return path;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ grub_free (path);
|
|
||||||
+ *is_part = 0;
|
|
||||||
+
|
|
||||||
if (grub_util_device_is_mapped_stat (&st))
|
|
||||||
return grub_util_devmapper_part_to_disk (&st, is_part, os_dev);
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fedora Ninjas <grub2-owner@fedoraproject.org>
|
|
||||||
Date: Sat, 15 Feb 2014 15:10:22 -0500
|
|
||||||
Subject: [PATCH] reopen SNP protocol for exclusive use by grub
|
|
||||||
|
|
||||||
---
|
|
||||||
grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++
|
|
||||||
1 file changed, 16 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
|
|
||||||
index 5388f952b..ea0e0ca36 100644
|
|
||||||
--- a/grub-core/net/drivers/efi/efinet.c
|
|
||||||
+++ b/grub-core/net/drivers/efi/efinet.c
|
|
||||||
@@ -330,6 +330,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
|
|
||||||
{
|
|
||||||
struct grub_net_card *card;
|
|
||||||
grub_efi_device_path_t *dp;
|
|
||||||
+ grub_efi_simple_network_t *net;
|
|
||||||
|
|
||||||
dp = grub_efi_get_device_path (hnd);
|
|
||||||
if (! dp)
|
|
||||||
@@ -383,6 +384,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
|
|
||||||
&pxe_mode->dhcp_ack,
|
|
||||||
sizeof (pxe_mode->dhcp_ack),
|
|
||||||
1, device, path);
|
|
||||||
+ net = grub_efi_open_protocol (card->efi_handle, &net_io_guid,
|
|
||||||
+ GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE);
|
|
||||||
+ if (net) {
|
|
||||||
+ if (net->mode->state == GRUB_EFI_NETWORK_STOPPED
|
|
||||||
+ && efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ if (net->mode->state == GRUB_EFI_NETWORK_STOPPED)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ if (net->mode->state == GRUB_EFI_NETWORK_STARTED
|
|
||||||
+ && efi_call_3 (net->initialize, net, 0, 0) != GRUB_EFI_SUCCESS)
|
|
||||||
+ continue;
|
|
||||||
+ card->efi_net = net;
|
|
||||||
+ }
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Fri, 4 Mar 2016 15:13:59 -0500
|
|
||||||
Subject: [PATCH] Revert "reopen SNP protocol for exclusive use by grub"
|
|
||||||
|
|
||||||
This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is
|
|
||||||
obsoleted by these:
|
|
||||||
|
|
||||||
49426e9 efinet: open Simple Network Protocol exclusively
|
|
||||||
f348aee efinet: enable hardware filters when opening interface
|
|
||||||
c52ae40 efinet: skip virtual IPv4 and IPv6 devices when enumerating cards
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
grub-core/net/drivers/efi/efinet.c | 16 ----------------
|
|
||||||
1 file changed, 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c
|
|
||||||
index ea0e0ca36..5388f952b 100644
|
|
||||||
--- a/grub-core/net/drivers/efi/efinet.c
|
|
||||||
+++ b/grub-core/net/drivers/efi/efinet.c
|
|
||||||
@@ -330,7 +330,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
|
|
||||||
{
|
|
||||||
struct grub_net_card *card;
|
|
||||||
grub_efi_device_path_t *dp;
|
|
||||||
- grub_efi_simple_network_t *net;
|
|
||||||
|
|
||||||
dp = grub_efi_get_device_path (hnd);
|
|
||||||
if (! dp)
|
|
||||||
@@ -384,21 +383,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device,
|
|
||||||
&pxe_mode->dhcp_ack,
|
|
||||||
sizeof (pxe_mode->dhcp_ack),
|
|
||||||
1, device, path);
|
|
||||||
- net = grub_efi_open_protocol (card->efi_handle, &net_io_guid,
|
|
||||||
- GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE);
|
|
||||||
- if (net) {
|
|
||||||
- if (net->mode->state == GRUB_EFI_NETWORK_STOPPED
|
|
||||||
- && efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS)
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- if (net->mode->state == GRUB_EFI_NETWORK_STOPPED)
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- if (net->mode->state == GRUB_EFI_NETWORK_STARTED
|
|
||||||
- && efi_call_3 (net->initialize, net, 0, 0) != GRUB_EFI_SUCCESS)
|
|
||||||
- continue;
|
|
||||||
- card->efi_net = net;
|
|
||||||
- }
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,47 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Tue, 9 Jul 2019 14:31:19 +0200
|
||||||
|
Subject: [PATCH] 20_linux_xen: load xen or multiboot{,2} modules as needed.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
---
|
||||||
|
util/grub.d/20_linux_xen.in | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
|
||||||
|
index e9e73b815f..c23b064be6 100644
|
||||||
|
--- a/util/grub.d/20_linux_xen.in
|
||||||
|
+++ b/util/grub.d/20_linux_xen.in
|
||||||
|
@@ -153,6 +153,7 @@ linux_entry_xsm ()
|
||||||
|
else
|
||||||
|
xen_rm_opts="no-real-mode edd=off"
|
||||||
|
fi
|
||||||
|
+ insmod ${xen_module}
|
||||||
|
${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
|
||||||
|
echo '$(echo "$lmessage" | grub_quote)'
|
||||||
|
${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
|
||||||
|
@@ -166,6 +167,7 @@ EOF
|
||||||
|
done
|
||||||
|
sed "s/^/$submenu_indentation/" << EOF
|
||||||
|
echo '$(echo "$message" | grub_quote)'
|
||||||
|
+ insmod ${xen_module}
|
||||||
|
${module_loader} --nounzip $(echo $initrd_path)
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
@@ -253,13 +255,16 @@ while [ "x${xen_list}" != "x" ] ; do
|
||||||
|
echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {"
|
||||||
|
fi
|
||||||
|
if ($grub_file --is-arm64-efi $current_xen); then
|
||||||
|
+ xen_module="xen_boot"
|
||||||
|
xen_loader="xen_hypervisor"
|
||||||
|
module_loader="xen_module"
|
||||||
|
else
|
||||||
|
if ($grub_file --is-x86-multiboot2 $current_xen); then
|
||||||
|
+ xen_module="multiboot2"
|
||||||
|
xen_loader="multiboot2"
|
||||||
|
module_loader="module2"
|
||||||
|
else
|
||||||
|
+ xen_module="multiboot"
|
||||||
|
xen_loader="multiboot"
|
||||||
|
module_loader="module"
|
||||||
|
fi
|
@ -1,102 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Wed, 3 Sep 2014 10:38:00 -0400
|
|
||||||
Subject: [PATCH] Make editenv chase symlinks including those across devices.
|
|
||||||
|
|
||||||
This lets us make /boot/grub2/grubenv a symlink to
|
|
||||||
/boot/efi/EFI/fedora/grubenv even though they're different mount points,
|
|
||||||
which allows /usr/bin/grub2-editenv to be the same across platforms
|
|
||||||
(i.e. UEFI vs BIOS).
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
|
||||||
---
|
|
||||||
Makefile.util.def | 9 +++++++++
|
|
||||||
util/editenv.c | 46 ++++++++++++++++++++++++++++++++++++++++++++--
|
|
||||||
2 files changed, 53 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.util.def b/Makefile.util.def
|
|
||||||
index c7b775bce..d08713b55 100644
|
|
||||||
--- a/Makefile.util.def
|
|
||||||
+++ b/Makefile.util.def
|
|
||||||
@@ -231,8 +231,17 @@ program = {
|
|
||||||
|
|
||||||
common = util/grub-editenv.c;
|
|
||||||
common = util/editenv.c;
|
|
||||||
+ common = util/grub-install-common.c;
|
|
||||||
common = grub-core/osdep/init.c;
|
|
||||||
+ common = grub-core/osdep/compress.c;
|
|
||||||
+ extra_dist = grub-core/osdep/unix/compress.c;
|
|
||||||
+ extra_dist = grub-core/osdep/basic/compress.c;
|
|
||||||
+ common = util/mkimage.c;
|
|
||||||
+ common = grub-core/osdep/config.c;
|
|
||||||
+ common = util/config.c;
|
|
||||||
+ common = util/resolve.c;
|
|
||||||
|
|
||||||
+ ldadd = '$(LIBLZMA)';
|
|
||||||
ldadd = libgrubmods.a;
|
|
||||||
ldadd = libgrubgcry.a;
|
|
||||||
ldadd = libgrubkern.a;
|
|
||||||
diff --git a/util/editenv.c b/util/editenv.c
|
|
||||||
index c6f8d2298..d8d1dad6a 100644
|
|
||||||
--- a/util/editenv.c
|
|
||||||
+++ b/util/editenv.c
|
|
||||||
@@ -37,6 +37,7 @@ grub_util_create_envblk_file (const char *name)
|
|
||||||
FILE *fp;
|
|
||||||
char *buf;
|
|
||||||
char *namenew;
|
|
||||||
+ char *rename_target = xstrdup(name);
|
|
||||||
|
|
||||||
buf = xmalloc (DEFAULT_ENVBLK_SIZE);
|
|
||||||
|
|
||||||
@@ -59,7 +60,48 @@ grub_util_create_envblk_file (const char *name)
|
|
||||||
free (buf);
|
|
||||||
fclose (fp);
|
|
||||||
|
|
||||||
- if (grub_util_rename (namenew, name) < 0)
|
|
||||||
- grub_util_error (_("cannot rename the file %s to %s"), namenew, name);
|
|
||||||
+ ssize_t size = 1;
|
|
||||||
+ while (1)
|
|
||||||
+ {
|
|
||||||
+ char *linkbuf;
|
|
||||||
+ ssize_t retsize;
|
|
||||||
+
|
|
||||||
+ linkbuf = xmalloc(size+1);
|
|
||||||
+ retsize = grub_util_readlink (rename_target, linkbuf, size);
|
|
||||||
+ if (retsize < 0 && (errno == ENOENT || errno == EINVAL))
|
|
||||||
+ {
|
|
||||||
+ free (linkbuf);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ else if (retsize < 0)
|
|
||||||
+ {
|
|
||||||
+ grub_util_error (_("cannot rename the file %s to %s: %m"), namenew, name);
|
|
||||||
+ free (linkbuf);
|
|
||||||
+ free (namenew);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ else if (retsize == size)
|
|
||||||
+ {
|
|
||||||
+ free(linkbuf);
|
|
||||||
+ size += 128;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ free (rename_target);
|
|
||||||
+ linkbuf[retsize] = '\0';
|
|
||||||
+ rename_target = linkbuf;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ int rc = grub_util_rename (namenew, rename_target);
|
|
||||||
+ if (rc < 0 && errno == EXDEV)
|
|
||||||
+ {
|
|
||||||
+ rc = grub_install_copy_file (namenew, rename_target, 1);
|
|
||||||
+ grub_util_unlink (namenew);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (rc < 0)
|
|
||||||
+ grub_util_error (_("cannot rename the file %s to %s: %m"), namenew, name);
|
|
||||||
+
|
|
||||||
free (namenew);
|
|
||||||
+ free (rename_target);
|
|
||||||
}
|
|
@ -0,0 +1,382 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Jones <pjones@redhat.com>
|
||||||
|
Date: Fri, 9 Dec 2016 15:40:29 -0500
|
||||||
|
Subject: [PATCH] Add BLS support to grub-mkconfig
|
||||||
|
|
||||||
|
GRUB now has BootLoaderSpec support, the user can choose to use this by
|
||||||
|
setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup,
|
||||||
|
the boot menu entries are not added to the grub.cfg, instead BLS config
|
||||||
|
files are parsed by blscfg command and the entries created dynamically.
|
||||||
|
|
||||||
|
A 10_linux_bls grub.d snippet to generate menu entries from BLS files
|
||||||
|
is also added that can be used on platforms where the bootloader doesn't
|
||||||
|
have BLS support and only can parse a normal grub configuration file.
|
||||||
|
|
||||||
|
Portions of the 10_linux_bls were taken from the ostree-grub-generator
|
||||||
|
script that's included in the OSTree project.
|
||||||
|
|
||||||
|
Fixes to support multi-devices and generate a BLS section even if no
|
||||||
|
kernels are found in the boot directory were proposed by Yclept Nemo
|
||||||
|
and Tom Gundersen respectively.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||||
|
[javierm: remove outdated URL for BLS document]
|
||||||
|
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.in | 9 +-
|
||||||
|
util/grub-mkconfig_lib.in | 22 ++++-
|
||||||
|
util/grub.d/10_linux.in | 218 +++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
3 files changed, 243 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
|
||||||
|
index 535c0f0249..f55339a3f6 100644
|
||||||
|
--- a/util/grub-mkconfig.in
|
||||||
|
+++ b/util/grub-mkconfig.in
|
||||||
|
@@ -50,6 +50,8 @@ grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@"
|
||||||
|
export TEXTDOMAIN=@PACKAGE@
|
||||||
|
export TEXTDOMAINDIR="@localedir@"
|
||||||
|
|
||||||
|
+export GRUB_GRUBENV_UPDATE="yes"
|
||||||
|
+
|
||||||
|
. "${pkgdatadir}/grub-mkconfig_lib"
|
||||||
|
|
||||||
|
# Usage: usage
|
||||||
|
@@ -59,6 +61,7 @@ usage () {
|
||||||
|
gettext "Generate a grub config file"; echo
|
||||||
|
echo
|
||||||
|
print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")"
|
||||||
|
+ print_option_help "--no-grubenv-update" "$(gettext "do not update variables in the grubenv file")"
|
||||||
|
print_option_help "-h, --help" "$(gettext "print this message and exit")"
|
||||||
|
print_option_help "-V, --version" "$(gettext "print the version information and exit")"
|
||||||
|
echo
|
||||||
|
@@ -94,6 +97,9 @@ do
|
||||||
|
--output=*)
|
||||||
|
grub_cfg=`echo "$option" | sed 's/--output=//'`
|
||||||
|
;;
|
||||||
|
+ --no-grubenv-update)
|
||||||
|
+ GRUB_GRUBENV_UPDATE="no"
|
||||||
|
+ ;;
|
||||||
|
-*)
|
||||||
|
gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2
|
||||||
|
usage
|
||||||
|
@@ -253,7 +259,8 @@ export GRUB_DEFAULT \
|
||||||
|
GRUB_OS_PROBER_SKIP_LIST \
|
||||||
|
GRUB_DISABLE_SUBMENU \
|
||||||
|
GRUB_DEFAULT_DTB \
|
||||||
|
- SUSE_BTRFS_SNAPSHOT_BOOTING
|
||||||
|
+ SUSE_BTRFS_SNAPSHOT_BOOTING \
|
||||||
|
+ GRUB_ENABLE_BLSCFG
|
||||||
|
|
||||||
|
if test "x${grub_cfg}" != "x"; then
|
||||||
|
rm -f "${grub_cfg}.new"
|
||||||
|
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
|
||||||
|
index 5e96f6cc5d..301d8a8a1e 100644
|
||||||
|
--- a/util/grub-mkconfig_lib.in
|
||||||
|
+++ b/util/grub-mkconfig_lib.in
|
||||||
|
@@ -30,6 +30,9 @@ fi
|
||||||
|
if test "x$grub_file" = x; then
|
||||||
|
grub_file="${bindir}/@grub_file@"
|
||||||
|
fi
|
||||||
|
+if test "x$grub_editenv" = x; then
|
||||||
|
+ grub_editenv="${bindir}/@grub_editenv@"
|
||||||
|
+fi
|
||||||
|
if test "x$grub_mkrelpath" = x; then
|
||||||
|
grub_mkrelpath="${bindir}/@grub_mkrelpath@"
|
||||||
|
fi
|
||||||
|
@@ -122,8 +125,19 @@ EOF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
+prepare_grub_to_access_device_with_variable ()
|
||||||
|
+{
|
||||||
|
+ device_variable="$1"
|
||||||
|
+ shift
|
||||||
|
+ prepare_grub_to_access_device "$@"
|
||||||
|
+ unset "device_variable"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
prepare_grub_to_access_device ()
|
||||||
|
{
|
||||||
|
+ if [ -z "$device_variable" ]; then
|
||||||
|
+ device_variable="root"
|
||||||
|
+ fi
|
||||||
|
old_ifs="$IFS"
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
@@ -158,18 +172,18 @@ prepare_grub_to_access_device ()
|
||||||
|
# otherwise set root as per value in device.map.
|
||||||
|
fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`"
|
||||||
|
if [ "x$fs_hint" != x ]; then
|
||||||
|
- echo "set root='$fs_hint'"
|
||||||
|
+ echo "set ${device_variable}='$fs_hint'"
|
||||||
|
fi
|
||||||
|
if [ "x${GRUB_DISABLE_UUID}" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then
|
||||||
|
hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints=
|
||||||
|
if [ "x$hints" != x ]; then
|
||||||
|
echo "if [ x\$feature_platform_search_hint = xy ]; then"
|
||||||
|
- echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}"
|
||||||
|
+ echo " search --no-floppy --fs-uuid --set=${device_variable} ${hints} ${fs_uuid}"
|
||||||
|
echo "else"
|
||||||
|
- echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}"
|
||||||
|
+ echo " search --no-floppy --fs-uuid --set=${device_variable} ${fs_uuid}"
|
||||||
|
echo "fi"
|
||||||
|
else
|
||||||
|
- echo "search --no-floppy --fs-uuid --set=root ${fs_uuid}"
|
||||||
|
+ echo "search --no-floppy --fs-uuid --set=${device_variable} ${fs_uuid}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
IFS="$old_ifs"
|
||||||
|
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||||
|
index 7bb3a211a7..2851952659 100644
|
||||||
|
--- a/util/grub.d/10_linux.in
|
||||||
|
+++ b/util/grub.d/10_linux.in
|
||||||
|
@@ -82,6 +82,218 @@ case x"$GRUB_FS" in
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
+populate_header_warn()
|
||||||
|
+{
|
||||||
|
+if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then
|
||||||
|
+ bls_parser="10_linux script"
|
||||||
|
+else
|
||||||
|
+ bls_parser="blscfg command"
|
||||||
|
+fi
|
||||||
|
+cat <<EOF
|
||||||
|
+
|
||||||
|
+# This section was generated by a script. Do not modify the generated file - all changes
|
||||||
|
+# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
|
||||||
|
+#
|
||||||
|
+# 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
|
||||||
|
+# for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.
|
||||||
|
+
|
||||||
|
+EOF
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+read_config()
|
||||||
|
+{
|
||||||
|
+ config_file=${1}
|
||||||
|
+ title=""
|
||||||
|
+ initrd=""
|
||||||
|
+ options=""
|
||||||
|
+ linux=""
|
||||||
|
+ grub_arg=""
|
||||||
|
+
|
||||||
|
+ while read -r line
|
||||||
|
+ do
|
||||||
|
+ record=$(echo ${line} | cut -f 1 -d ' ')
|
||||||
|
+ value=$(echo ${line} | cut -s -f2- -d ' ')
|
||||||
|
+ case "${record}" in
|
||||||
|
+ "title")
|
||||||
|
+ title=${value}
|
||||||
|
+ ;;
|
||||||
|
+ "initrd")
|
||||||
|
+ initrd=${value}
|
||||||
|
+ ;;
|
||||||
|
+ "linux")
|
||||||
|
+ linux=${value}
|
||||||
|
+ ;;
|
||||||
|
+ "options")
|
||||||
|
+ options=${value}
|
||||||
|
+ ;;
|
||||||
|
+ "grub_arg")
|
||||||
|
+ grub_arg=${value}
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+ done < ${config_file}
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+blsdir="/boot/loader/entries"
|
||||||
|
+
|
||||||
|
+get_sorted_bls()
|
||||||
|
+{
|
||||||
|
+ if ! [ -d "${blsdir}" ]; then
|
||||||
|
+ return
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ local IFS=$'\n'
|
||||||
|
+
|
||||||
|
+ files=($(for bls in ${blsdir}/*.conf; do
|
||||||
|
+ if ! [[ -e "${bls}" ]] ; then
|
||||||
|
+ continue
|
||||||
|
+ fi
|
||||||
|
+ bls="${bls%.conf}"
|
||||||
|
+ bls="${bls##*/}"
|
||||||
|
+ echo "${bls}"
|
||||||
|
+ done | sort -Vr 2>/dev/null)) || :
|
||||||
|
+
|
||||||
|
+ echo "${files[@]}"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+update_bls_cmdline()
|
||||||
|
+{
|
||||||
|
+ local cmdline="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||||
|
+ local -a files=($(get_sorted_bls))
|
||||||
|
+
|
||||||
|
+ for bls in "${files[@]}"; do
|
||||||
|
+ local options="${cmdline}"
|
||||||
|
+ if [ -z "${bls##*debug*}" ]; then
|
||||||
|
+ options="${options} ${GRUB_CMDLINE_LINUX_DEBUG}"
|
||||||
|
+ fi
|
||||||
|
+ options="$(echo "${options}" | sed -e 's/\//\\\//g')"
|
||||||
|
+ sed -i -e "s/^options.*/options ${options}/" "${blsdir}/${bls}.conf"
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+populate_menu()
|
||||||
|
+{
|
||||||
|
+ local -a files=($(get_sorted_bls))
|
||||||
|
+
|
||||||
|
+ gettext_printf "Generating boot entries from BLS files...\n" >&2
|
||||||
|
+
|
||||||
|
+ for bls in "${files[@]}"; do
|
||||||
|
+ read_config "${blsdir}/${bls}.conf"
|
||||||
|
+
|
||||||
|
+ menu="${menu}menuentry '${title}' ${grub_arg} --id=${bls} {\n"
|
||||||
|
+ menu="${menu}\t linux ${linux} ${options}\n"
|
||||||
|
+ if [ -n "${initrd}" ] ; then
|
||||||
|
+ menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
|
||||||
|
+ fi
|
||||||
|
+ menu="${menu}}\n\n"
|
||||||
|
+ done
|
||||||
|
+ # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation
|
||||||
|
+ printf "$menu"
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# Make BLS the default if GRUB_ENABLE_BLSCFG was not set and grubby is not installed.
|
||||||
|
+if [ -z "${GRUB_ENABLE_BLSCFG}" ] && ! command -v new-kernel-pkg >/dev/null; then
|
||||||
|
+ GRUB_ENABLE_BLSCFG="true"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
|
||||||
|
+ if [ x$dirname = x/ ]; then
|
||||||
|
+ if [ -z "${prepare_root_cache}" ]; then
|
||||||
|
+ prepare_grub_to_access_device ${GRUB_DEVICE}
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ if [ -z "${prepare_boot_cache}" ]; then
|
||||||
|
+ prepare_grub_to_access_device ${GRUB_DEVICE_BOOT}
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ -d /sys/firmware/efi ]; then
|
||||||
|
+ bootefi_device="`${grub_probe} --target=device /boot/efi/`"
|
||||||
|
+ prepare_grub_to_access_device_with_variable boot ${bootefi_device}
|
||||||
|
+ else
|
||||||
|
+ boot_device="`${grub_probe} --target=device /boot/`"
|
||||||
|
+ prepare_grub_to_access_device_with_variable boot ${boot_device}
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ arch="$(uname -m)"
|
||||||
|
+ if [ "x${arch}" = "xppc64le" ] && [ -d /sys/firmware/opal ]; then
|
||||||
|
+
|
||||||
|
+ BLS_POPULATE_MENU="true"
|
||||||
|
+ petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot"
|
||||||
|
+
|
||||||
|
+ if test -e ${petitboot_path}; then
|
||||||
|
+ read -r -d '' petitboot_version < ${petitboot_path}
|
||||||
|
+ petitboot_version="$(echo ${petitboot_version//v})"
|
||||||
|
+
|
||||||
|
+ if test -n ${petitboot_version}; then
|
||||||
|
+ major_version="$(echo ${petitboot_version} | cut -d . -f1)"
|
||||||
|
+ minor_version="$(echo ${petitboot_version} | cut -d . -f2)"
|
||||||
|
+
|
||||||
|
+ re='^[0-9]+$'
|
||||||
|
+ if [[ $major_version =~ $re ]] && [[ $minor_version =~ $re ]] &&
|
||||||
|
+ ([[ ${major_version} -gt 1 ]] ||
|
||||||
|
+ [[ ${major_version} -eq 1 &&
|
||||||
|
+ ${minor_version} -ge 8 ]]); then
|
||||||
|
+ BLS_POPULATE_MENU="false"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ populate_header_warn
|
||||||
|
+
|
||||||
|
+ cat << EOF
|
||||||
|
+# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
|
||||||
|
+# entries populated from BootLoaderSpec files that use this variable work correctly even
|
||||||
|
+# without a grubenv file, define a fallback kernelopts variable if this has not been set.
|
||||||
|
+#
|
||||||
|
+# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
|
||||||
|
+# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
|
||||||
|
+# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
|
||||||
|
+# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
|
||||||
|
+if [ -z "\${kernelopts}" ]; then
|
||||||
|
+ set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||||||
|
+fi
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+ update_bls_cmdline
|
||||||
|
+
|
||||||
|
+ if [ "x${BLS_POPULATE_MENU}" = "xtrue" ]; then
|
||||||
|
+ populate_menu
|
||||||
|
+ else
|
||||||
|
+ cat << EOF
|
||||||
|
+
|
||||||
|
+insmod blscfg
|
||||||
|
+blscfg
|
||||||
|
+EOF
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ "x${GRUB_GRUBENV_UPDATE}" = "xyes" ]; then
|
||||||
|
+ blsdir="/boot/loader/entries"
|
||||||
|
+ [ -d "${blsdir}" ] && GRUB_BLS_FS="$(${grub_probe} --target=fs ${blsdir})"
|
||||||
|
+ if [ "x${GRUB_BLS_FS}" = "xbtrfs" ] || [ "x${GRUB_BLS_FS}" = "xzfs" ]; then
|
||||||
|
+ blsdir=$(make_system_path_relative_to_its_root "${blsdir}")
|
||||||
|
+ if [ "x${blsdir}" != "x/loader/entries" ] && [ "x${blsdir}" != "x/boot/loader/entries" ]; then
|
||||||
|
+ ${grub_editenv} - set blsdir="${blsdir}"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ -n "${GRUB_EARLY_INITRD_LINUX_CUSTOM}" ]; then
|
||||||
|
+ ${grub_editenv} - set early_initrd="${GRUB_EARLY_INITRD_LINUX_CUSTOM}"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ -n "${GRUB_DEFAULT_DTB}" ]; then
|
||||||
|
+ ${grub_editenv} - set devicetree="${GRUB_DEFAULT_DTB}"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ -n "${GRUB_SAVEDEFAULT}" ]; then
|
||||||
|
+ ${grub_editenv} - set save_default="${GRUB_SAVEDEFAULT}"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ exit 0
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
mktitle ()
|
||||||
|
{
|
||||||
|
local title_type
|
||||||
|
@@ -121,6 +333,7 @@ linux_entry ()
|
||||||
|
if [ -z "$boot_device_id" ]; then
|
||||||
|
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
|
||||||
|
fi
|
||||||
|
+
|
||||||
|
if [ x$type != xsimple ] ; then
|
||||||
|
title=$(mktitle "$type" "$version")
|
||||||
|
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
|
||||||
|
@@ -231,6 +444,7 @@ is_top_level=true
|
||||||
|
while [ "x$list" != "x" ] ; do
|
||||||
|
linux=`version_find_latest $list`
|
||||||
|
gettext_printf "Found linux image: %s\n" "$linux" >&2
|
||||||
|
+
|
||||||
|
basename=`basename $linux`
|
||||||
|
dirname=`dirname $linux`
|
||||||
|
rel_dirname=`make_system_path_relative_to_its_root $dirname`
|
||||||
|
@@ -269,7 +483,9 @@ while [ "x$list" != "x" ] ; do
|
||||||
|
for i in ${initrd}; do
|
||||||
|
initrd_display="${initrd_display} ${dirname}/${i}"
|
||||||
|
done
|
||||||
|
- gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
|
||||||
|
+ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then
|
||||||
|
+ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
|
||||||
|
+ fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fdt=
|
@ -1,66 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Marshall <rmarshall@redhat.com>
|
|
||||||
Date: Mon, 16 Mar 2015 16:34:51 -0400
|
|
||||||
Subject: [PATCH] Update info with grub.cfg netboot selection order (#1148650)
|
|
||||||
|
|
||||||
Added documentation to the grub info page that specifies the order
|
|
||||||
netboot clients will use to select a grub configuration file.
|
|
||||||
|
|
||||||
Resolves rhbz#1148650
|
|
||||||
---
|
|
||||||
docs/grub.texi | 42 ++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 42 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/docs/grub.texi b/docs/grub.texi
|
|
||||||
index 2fd32608c..a7155c22f 100644
|
|
||||||
--- a/docs/grub.texi
|
|
||||||
+++ b/docs/grub.texi
|
|
||||||
@@ -2493,6 +2493,48 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38
|
|
||||||
Then follow instructions printed out by grub-mknetdir on configuring your DHCP
|
|
||||||
server.
|
|
||||||
|
|
||||||
+The grub.cfg file is placed in the same directory as the path output by
|
|
||||||
+grub-mknetdir hereafter referred to as FWPATH. GRUB will search for its
|
|
||||||
+configuration files in order using the following rules where the appended
|
|
||||||
+value corresponds to a value on the client machine.
|
|
||||||
+
|
|
||||||
+@example
|
|
||||||
+@group
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-@samp{(UUID OF NIC)}
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-@samp{(MAC ADDRESS OF NIC)}
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-@samp{(IPv4 OR IPv6 ADDRESS)}
|
|
||||||
+@samp{(FWPATH)}/grub.cfg
|
|
||||||
+@end group
|
|
||||||
+@end example
|
|
||||||
+
|
|
||||||
+The client will only attempt to look up an IPv6 address config once, however,
|
|
||||||
+it will try the IPv4 multiple times. The concrete example below shows what
|
|
||||||
+would happen under the IPv4 case.
|
|
||||||
+
|
|
||||||
+@example
|
|
||||||
+@group
|
|
||||||
+UUID: 7726a678-7fc0-4853-a4f6-c85ac36a120a
|
|
||||||
+MAC: 52:54:00:ec:33:81
|
|
||||||
+IPV4: 10.0.0.130 (0A000082)
|
|
||||||
+@end group
|
|
||||||
+@end example
|
|
||||||
+
|
|
||||||
+@example
|
|
||||||
+@group
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-7726a678-7fc0-4853-a4f6-c85ac36a120a
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-52-54-00-ec-33-81
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A000082
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A00008
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A0000
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A000
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A00
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A0
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0A
|
|
||||||
+@samp{(FWPATH)}/grub.cfg-0
|
|
||||||
+@samp{(FWPATH)}/grub.cfg
|
|
||||||
+@end group
|
|
||||||
+@end example
|
|
||||||
+
|
|
||||||
After GRUB has started, files on the TFTP server will be accessible via the
|
|
||||||
@samp{(tftp)} device.
|
|
||||||
|
|
@ -1,447 +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
|
|
||||||
---
|
|
||||||
configure.ac | 29 +++++
|
|
||||||
Makefile.util.def | 16 +++
|
|
||||||
util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
.gitignore | 2 +
|
|
||||||
util/grub-mkconfig_lib.in | 8 +-
|
|
||||||
util/grub-rpm-sort.8 | 12 ++
|
|
||||||
6 files changed, 347 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 d5db2803e..056df1cba 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -65,6 +65,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])
|
|
||||||
@@ -88,6 +89,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])
|
|
||||||
@@ -1790,6 +1792,33 @@ 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
|
|
||||||
+
|
|
||||||
+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 d08713b55..406d96861 100644
|
|
||||||
--- a/Makefile.util.def
|
|
||||||
+++ b/Makefile.util.def
|
|
||||||
@@ -685,6 +685,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 = grub-core/gnulib/libgnu.a;
|
|
||||||
+ ldadd = libgrubkern.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 000000000..f33bd1ed5
|
|
||||||
--- /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/.gitignore b/.gitignore
|
|
||||||
index 43f04d472..fa2e5b609 100644
|
|
||||||
--- a/.gitignore
|
|
||||||
+++ b/.gitignore
|
|
||||||
@@ -105,6 +105,8 @@ grub-*.tar.*
|
|
||||||
/grub*-reboot.8
|
|
||||||
/grub*-render-label
|
|
||||||
/grub*-render-label.1
|
|
||||||
+/grub*-rpm-sort
|
|
||||||
+/grub*-rpm-sort.8
|
|
||||||
/grub*-script-check
|
|
||||||
/grub*-script-check.1
|
|
||||||
/grub*-set-default
|
|
||||||
diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
|
|
||||||
index 1a4a57898..7fe359843 100644
|
|
||||||
--- a/util/grub-mkconfig_lib.in
|
|
||||||
+++ b/util/grub-mkconfig_lib.in
|
|
||||||
@@ -214,6 +214,12 @@ version_sort ()
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
+if [ "x$RPMLIB" = x ]; then
|
|
||||||
+ kernel_sort=version_sort
|
|
||||||
+else
|
|
||||||
+ kernel_sort="${sbindir}/grub-rpm-sort"
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
version_test_numeric ()
|
|
||||||
{
|
|
||||||
version_test_numeric_a="$1"
|
|
||||||
@@ -230,7 +236,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 000000000..8ce214884
|
|
||||||
--- /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"
|
|
@ -1,36 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Tue, 30 Jun 2015 15:50:41 -0400
|
|
||||||
Subject: [PATCH] Handle rssd storage devices.
|
|
||||||
|
|
||||||
Resolves: rhbz#1087962
|
|
||||||
|
|
||||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
||||||
---
|
|
||||||
grub-core/osdep/linux/getroot.c | 13 +++++++++++++
|
|
||||||
1 file changed, 13 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c
|
|
||||||
index 90d92d3ad..6d9f4e5fa 100644
|
|
||||||
--- a/grub-core/osdep/linux/getroot.c
|
|
||||||
+++ b/grub-core/osdep/linux/getroot.c
|
|
||||||
@@ -921,6 +921,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st,
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* If this is an rssd device. */
|
|
||||||
+ if ((strncmp ("rssd", p, 4) == 0) && p[4] >= 'a' && p[4] <= 'z')
|
|
||||||
+ {
|
|
||||||
+ char *pp = p + 4;
|
|
||||||
+ while (*pp >= 'a' && *pp <= 'z')
|
|
||||||
+ pp++;
|
|
||||||
+ if (*pp)
|
|
||||||
+ *is_part = 1;
|
|
||||||
+ /* /dev/rssd[a-z]+[0-9]* */
|
|
||||||
+ *pp = '\0';
|
|
||||||
+ return path;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* If this is a loop device */
|
|
||||||
if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9')
|
|
||||||
{
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue