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/0013-discover-grub2-expose-internal-parse-function.patch b/openpower/package/petitboot/0013-discover-grub2-expose-internal-parse-function.patch
new file mode 100644
index 0000000..a5651e1
--- /dev/null
+++ b/openpower/package/petitboot/0013-discover-grub2-expose-internal-parse-function.patch
@@ -0,0 +1,96 @@
+From 706ca57516d2fc92a404a1ca44b2984f17f5eeb3 Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 14 Nov 2019 13:17:16 +0800
+Subject: [PATCH 13/18] discover/grub2: expose internal parse function
+
+Upcoming changes will need a method to parse a secondary file (to
+support the 'source' command), but not execute it as a new script.
+
+This change exposes the parsing code, separate from the execution code.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+(cherry picked from commit 2c132ebc93a44b7550b1fdb3f5f7b010e51f47e8)
+Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+---
+ discover/grub2/grub2-parser.y | 17 +++++++++++++++--
+ discover/grub2/grub2.c        |  2 +-
+ discover/grub2/grub2.h        |  8 ++++++--
+ 3 files changed, 22 insertions(+), 5 deletions(-)
+
+diff --git a/discover/grub2/grub2-parser.y b/discover/grub2/grub2-parser.y
+index 527a61c..f99bbfd 100644
+--- a/discover/grub2/grub2-parser.y
++++ b/discover/grub2/grub2-parser.y
+@@ -331,14 +331,15 @@ struct grub2_parser *grub2_parser_create(struct discover_context *ctx)
+ 	return parser;
+ }
+ 
+-void grub2_parser_parse(struct grub2_parser *parser, const char *filename,
++/* performs a parse on buf, setting parser->script->statements */
++int grub2_parser_parse(struct grub2_parser *parser, const char *filename,
+ 		char *buf, int len)
+ {
+ 	YY_BUFFER_STATE bufstate;
+ 	int rc;
+ 
+ 	if (!len)
+-		return;
++		return -1;
+ 
+ 	parser->script->filename = filename;
+ 
+@@ -349,6 +350,18 @@ void grub2_parser_parse(struct grub2_parser *parser, const char *filename,
+ 
+ 	yy_delete_buffer(bufstate, parser->scanner);
+ 
++	parser->inter_word = false;
++
++	return rc;
++}
++
++void grub2_parser_parse_and_execute(struct grub2_parser *parser,
++		const char *filename, char *buf, int len)
++{
++	int rc;
++
++	rc = grub2_parser_parse(parser, filename, buf, len);
++
+ 	if (!rc)
+ 		script_execute(parser->script);
+ }
+diff --git a/discover/grub2/grub2.c b/discover/grub2/grub2.c
+index a8d115f..b176ce2 100644
+--- a/discover/grub2/grub2.c
++++ b/discover/grub2/grub2.c
+@@ -169,7 +169,7 @@ static int grub2_parse(struct discover_context *dc)
+ 			continue;
+ 
+ 		parser = grub2_parser_create(dc);
+-		grub2_parser_parse(parser, *filename, buf, len);
++		grub2_parser_parse_and_execute(parser, *filename, buf, len);
+ 		device_handler_status_dev_info(dc->handler, dc->device,
+ 				_("Parsed GRUB configuration from %s"),
+ 				*filename);
+diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h
+index 323b461..668d070 100644
+--- a/discover/grub2/grub2.h
++++ b/discover/grub2/grub2.h
+@@ -204,9 +204,13 @@ struct grub2_file *grub2_parse_file(struct grub2_script *script,
+ struct discover_device *grub2_lookup_device(struct device_handler *handler,
+ 		const char *desc);
+ 
++/* internal parse api */
++int grub2_parser_parse(struct grub2_parser *parser, const char *filename,
++		char *buf, int len);
++
+ /* external parser api */
+ struct grub2_parser *grub2_parser_create(struct discover_context *ctx);
+-void grub2_parser_parse(struct grub2_parser *parser, const char *filename,
+-		char *buf, int len);
++void grub2_parser_parse_and_execute(struct grub2_parser *parser,
++		const char *filename, char *buf, int len);
+ #endif /* GRUB2_H */
+ 
+-- 
+2.17.1
+