Petitboot: Carry build-time fixes from upstream
Some upstream fixes are still not available as a release after 1.10.4,
add them as build-time patches.
In support of that, force gettext and autoreconf on petitboot.mk since
we're touching Makefile.am files (so that we can build fine)
Summary of changes for post 1.10.4 patches:
Jeremy Kerr (15):
discover/grub2: 'search' set-variable defaults to root
discover/grub2: Use getopt for `search` argument parsing
discover/grub2: test for (ignored) --no-floppy argument
discover/grub2: Add support for UUID and label for 'search' command
discover/grub2: expose a struct for grub2 file references
discover/grub2: Add parsing code for grub2 file specifiers
discover/grub2: add support for grub2-style path specifiers in resources
discover/grub2: Allow (device)/path references in general script usage
discover/grub2: Add a reference from script to parser
discover/grub2: expose internal parse function
discover/grub2: make statements_execute non-static
discover/grub2: implement 'source' command
test/parser: Add test for recent RHCOS grub2 config
test/parser: Add RHEL8 grub config test
lib/pb-protocol: fix ordering of system info length calculation
Maxim Polyakov (3):
discover/platform-powerpc: add missing mbox block selector
discover/platform-powerpc: limit mailbox response size
discover/platform-powerpc: return the actual mailbox size
Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
diff --git a/openpower/package/petitboot/0017-test-parser-Add-RHEL8-grub-config-test.patch b/openpower/package/petitboot/0017-test-parser-Add-RHEL8-grub-config-test.patch
new file mode 100644
index 0000000..51bcb74
--- /dev/null
+++ b/openpower/package/petitboot/0017-test-parser-Add-RHEL8-grub-config-test.patch
@@ -0,0 +1,254 @@
+From 1e8fc53f15c4703a76911e75d906965e3d967e8f Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 14 Nov 2019 15:22:35 +0800
+Subject: [PATCH 17/18] test/parser: Add RHEL8 grub config test
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+(cherry picked from commit 057dce2dadee2e2fca370d4497c8c792b001c2d3)
+Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+---
+ test/parser/Makefile.am | 1 +
+ test/parser/data/grub2-rhel8.conf | 190 ++++++++++++++++++++++++++++++
+ test/parser/test-grub2-rhel8.c | 21 ++++
+ 3 files changed, 212 insertions(+)
+ create mode 100644 test/parser/data/grub2-rhel8.conf
+ create mode 100644 test/parser/test-grub2-rhel8.c
+
+diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
+index 5f7922c..9d1141c 100644
+--- a/test/parser/Makefile.am
++++ b/test/parser/Makefile.am
+@@ -43,6 +43,7 @@ parser_TESTS = \
+ test/parser/test-grub2-f20-ppc64 \
+ test/parser/test-grub2-ubuntu-13_04-x86 \
+ test/parser/test-grub2-sles-btrfs-snapshot \
++ test/parser/test-grub2-rhel8 \
+ test/parser/test-grub2-rhcos-ootpa \
+ test/parser/test-grub2-lexer-error \
+ test/parser/test-grub2-parser-error \
+diff --git a/test/parser/data/grub2-rhel8.conf b/test/parser/data/grub2-rhel8.conf
+new file mode 100644
+index 0000000..563b3e5
+--- /dev/null
++++ b/test/parser/data/grub2-rhel8.conf
+@@ -0,0 +1,190 @@
++#
++# DO NOT EDIT THIS FILE
++#
++# It is automatically generated by grub2-mkconfig using templates
++# from /etc/grub.d and settings from /etc/default/grub
++#
++
++### BEGIN /etc/grub.d/00_header ###
++set pager=1
++
++if [ -f ${config_directory}/grubenv ]; then
++ load_env -f ${config_directory}/grubenv
++elif [ -s $prefix/grubenv ]; then
++ load_env
++fi
++if [ "${next_entry}" ] ; then
++ set default="${next_entry}"
++ set next_entry=
++ save_env next_entry
++ set boot_once=true
++else
++ set default="${saved_entry}"
++fi
++
++if [ x"${feature_menuentry_id}" = xy ]; then
++ menuentry_id_option="--id"
++else
++ menuentry_id_option=""
++fi
++
++export menuentry_id_option
++
++if [ "${prev_saved_entry}" ]; then
++ set saved_entry="${prev_saved_entry}"
++ save_env saved_entry
++ set prev_saved_entry=
++ save_env prev_saved_entry
++ set boot_once=true
++fi
++
++function savedefault {
++ if [ -z "${boot_once}" ]; then
++ saved_entry="${chosen}"
++ save_env saved_entry
++ fi
++}
++
++function load_video {
++ if [ x$feature_all_video_module = xy ]; then
++ insmod all_video
++ else
++ insmod efi_gop
++ insmod efi_uga
++ insmod ieee1275_fb
++ insmod vbe
++ insmod vga
++ insmod video_bochs
++ insmod video_cirrus
++ fi
++}
++
++terminal_output ofconsole
++if [ x$feature_timeout_style = xy ] ; then
++ set timeout_style=menu
++ set timeout=5
++# Fallback normal timeout code in case the timeout_style feature is
++# unavailable.
++else
++ set timeout=5
++fi
++### END /etc/grub.d/00_header ###
++
++### BEGIN /etc/grub.d/00_tuned ###
++set tuned_params=""
++set tuned_initrd=""
++### END /etc/grub.d/00_tuned ###
++
++### BEGIN /etc/grub.d/01_menu_auto_hide ###
++if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
++ set last_boot_ok=1
++else
++ set last_boot_ok=0
++fi
++
++# Reset boot_indeterminate after a successful boot
++if [ "${boot_success}" = "1" ] ; then
++ set boot_indeterminate=0
++# Avoid boot_indeterminate causing the menu to be hidden more then once
++elif [ "${boot_indeterminate}" = "1" ]; then
++ set boot_indeterminate=2
++fi
++set boot_success=0
++save_env boot_success boot_indeterminate
++
++if [ x$feature_timeout_style = xy ] ; then
++ if [ "${menu_show_once}" ]; then
++ unset menu_show_once
++ save_env menu_show_once
++ set timeout_style=menu
++ set timeout=60
++ elif [ "${menu_auto_hide}" -a "${last_boot_ok}" = "1" ]; then
++ set orig_timeout_style=${timeout_style}
++ set orig_timeout=${timeout}
++ if [ "${fastboot}" = "1" ]; then
++ # timeout_style=menu + timeout=0 avoids the countdown code keypress check
++ set timeout_style=menu
++ set timeout=0
++ else
++ set timeout_style=hidden
++ set timeout=1
++ fi
++ fi
++fi
++### END /etc/grub.d/01_menu_auto_hide ###
++
++### BEGIN /etc/grub.d/01_users ###
++if [ -f ${prefix}/user.cfg ]; then
++ source ${prefix}/user.cfg
++ if [ -n "${GRUB2_PASSWORD}" ]; then
++ set superusers="root"
++ export superusers
++ password_pbkdf2 root ${GRUB2_PASSWORD}
++ fi
++fi
++### END /etc/grub.d/01_users ###
++
++### BEGIN /etc/grub.d/10_linux_bls ###
++insmod part_msdos
++insmod xfs
++set root='hd0,msdos2'
++if [ x$feature_platform_search_hint = xy ]; then
++ search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//pciex@600c3c0100000/pci@0/pci@0/pci@9/raid@0/disk@8,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2' 9a8ea027-4829-45b9-829b-18ed6cc1f33b
++else
++ search --no-floppy --fs-uuid --set=root 9a8ea027-4829-45b9-829b-18ed6cc1f33b
++fi
++insmod part_msdos
++insmod xfs
++set boot='hd0,msdos2'
++if [ x$feature_platform_search_hint = xy ]; then
++ search --no-floppy --fs-uuid --set=boot --hint-ieee1275='ieee1275//pciex@600c3c0100000/pci@0/pci@0/pci@9/raid@0/disk@8,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2' 9a8ea027-4829-45b9-829b-18ed6cc1f33b
++else
++ search --no-floppy --fs-uuid --set=boot 9a8ea027-4829-45b9-829b-18ed6cc1f33b
++fi
++
++# 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.
++
++menuentry 'Red Hat Enterprise Linux (4.18.0-80.11.2.el8_0.ppc64le) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-4.18.0-80.11.2.el8_0.ppc64le {
++ linux /vmlinuz-4.18.0-80.11.2.el8_0.ppc64le $kernelopts $tuned_params
++ initrd /initramfs-4.18.0-80.11.2.el8_0.ppc64le.img $tuned_initrd
++}
++
++menuentry 'Red Hat Enterprise Linux (4.18.0-80.el8.ppc64le) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-4.18.0-80.el8.ppc64le {
++ linux /vmlinuz-4.18.0-80.el8.ppc64le $kernelopts $tuned_params
++ initrd /initramfs-4.18.0-80.el8.ppc64le.img $tuned_initrd
++}
++
++menuentry 'Red Hat Enterprise Linux (0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-0-rescue {
++ linux /vmlinuz-0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc $kernelopts
++ initrd /initramfs-0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc.img
++}
++
++### END /etc/grub.d/10_linux_bls ###
++
++### BEGIN /etc/grub.d/20_linux_xen ###
++### END /etc/grub.d/20_linux_xen ###
++
++### BEGIN /etc/grub.d/20_ppc_terminfo ###
++ terminfo -g 80x24 ofconsole
++### END /etc/grub.d/20_ppc_terminfo ###
++
++### BEGIN /etc/grub.d/30_os-prober ###
++### END /etc/grub.d/30_os-prober ###
++
++### BEGIN /etc/grub.d/30_uefi-firmware ###
++### END /etc/grub.d/30_uefi-firmware ###
++
++### BEGIN /etc/grub.d/40_custom ###
++# This file provides an easy way to add custom menu entries. Simply type the
++# menu entries you want to add after this comment. Be careful not to change
++# the 'exec tail' line above.
++### END /etc/grub.d/40_custom ###
++
++### BEGIN /etc/grub.d/41_custom ###
++if [ -f ${config_directory}/custom.cfg ]; then
++ source ${config_directory}/custom.cfg
++elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
++ source $prefix/custom.cfg;
++fi
++### END /etc/grub.d/41_custom ###
+diff --git a/test/parser/test-grub2-rhel8.c b/test/parser/test-grub2-rhel8.c
+new file mode 100644
+index 0000000..3e208bc
+--- /dev/null
++++ b/test/parser/test-grub2-rhel8.c
+@@ -0,0 +1,21 @@
++
++#include "parser-test.h"
++
++void run_test(struct parser_test *test)
++{
++ struct discover_context *ctx;
++ struct discover_device *dev;
++
++ ctx = test->ctx;
++
++ dev = test_create_device(test, "boot");
++ dev->uuid = "9a8ea027-4829-45b9-829b-18ed6cc1f33b";
++ device_handler_add_device(test->handler, dev);
++
++ test_read_conf_file(test, "grub2-rhel8.conf",
++ "/grub/grub.cfg");
++
++ test_run_parser(test, "grub2");
++
++ check_boot_option_count(ctx, 3);
++}
+--
+2.17.1
+