]> git.ipfire.org Git - thirdparty/grub.git/commit
bootstrap: Add gnulib's base64 module
authorPatrick Steinhardt <ps@pks.im>
Fri, 27 Dec 2019 15:18:36 +0000 (16:18 +0100)
committerDaniel Kiper <daniel.kiper@oracle.com>
Fri, 10 Jan 2020 13:26:40 +0000 (14:26 +0100)
commit9fbdec2f6b4fa8b549daa4d49134d1fe89d95ef9
tree2840959c402c114f627232b8caa76433e02936f9
parentc6a84545a3c21369bb2685fdbe3cd895733dedbd
bootstrap: Add gnulib's base64 module

The upcoming support for LUKS2 disc encryption requires us to include a
parser for base64-encoded data, as it is used to represent salts and
digests. As gnulib already has code to decode such data, we can just
add it to the boostrapping configuration in order to make it available
in GRUB.

The gnulib module makes use of booleans via the <stdbool.h> header. As
GRUB does not provide any POSIX wrapper header for this, but instead
implements support for bool in <sys/types.h>, we need to patch
base64.h to not use <stdbool.h> anymore. We unfortunately cannot include
<sys/types.h> instead, as it would then use gnulib's internal header
while compiling the gnulib object but our own <sys/types.h> when
including it in a GRUB module. Because of this, the patch replaces the
include with a direct typedef.

A second fix is required to make available _GL_ATTRIBUTE_CONST, which
is provided by the configure script. As base64.h does not include
<config.h>, it is thus not available and results in a compile error.
This is fixed by adding an include of <config-util.h>.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
bootstrap.conf
conf/Makefile.extra-dist
grub-core/lib/gnulib-patches/fix-base64.patch [new file with mode: 0644]