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
+