summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@parabola.nu>2024-01-07 17:17:30 -0700
committerLuke T. Shumaker <lukeshu@parabola.nu>2024-01-13 19:07:53 -0700
commite569121bd500127753070dadbabd8ecd4fda324a (patch)
tree4ca0ae5109673836f71a3cc192bb74d5989c81d7 /libre
parent3bebbe97a48eac34e4a215fdc20d31e2d6c30fb6 (diff)
libre/grub: Merge changes from Arch; upgpkg 2.06→2.12
Diffstat (limited to 'libre')
-rw-r--r--libre/grub/0001-00_header-add-GRUB_COLOR_-variables.patch22
-rw-r--r--libre/grub/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch88
-rw-r--r--libre/grub/0003-10_linux-20_linux_xen-rebrand-free-distros.patch44
-rw-r--r--libre/grub/0003-support-dropins-for-default-configuration.patch33
-rw-r--r--libre/grub/0004-10_linux-20_linux_xen-rebrand-free-distros.patch73
-rw-r--r--libre/grub/PKGBUILD57
-rw-r--r--libre/grub/grub.default8
-rw-r--r--libre/grub/grub.install16
-rw-r--r--libre/grub/keys/pgp/95D2E9AB8740D8046387FD151A09227B1F435A33.asc65
-rw-r--r--libre/grub/keys/pgp/BE5C23209ACDDACEB20DB0A28C8189F1988C2166.asc65
-rw-r--r--libre/grub/keys/pgp/E53D497F3FA42AD8C9B4D1E835A93B74E82E4209.asc84
-rw-r--r--libre/grub/sbat.csv3
12 files changed, 463 insertions, 95 deletions
diff --git a/libre/grub/0001-00_header-add-GRUB_COLOR_-variables.patch b/libre/grub/0001-00_header-add-GRUB_COLOR_-variables.patch
index 867e8feeb..b93232a41 100644
--- a/libre/grub/0001-00_header-add-GRUB_COLOR_-variables.patch
+++ b/libre/grub/0001-00_header-add-GRUB_COLOR_-variables.patch
@@ -1,17 +1,26 @@
-From 21e5bcf22ab1a9f08c63e2a0212219d7482f77c1 Mon Sep 17 00:00:00 2001
+From 7d7aba5cc8f978ce8f14c4d040fc6ef70b4a14db Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Wed, 10 Mar 2021 18:42:25 +0100
-Subject: [PATCH] 00_header: add GRUB_COLOR_* variables
+Subject: [PATCH 1/4] 00_header: add GRUB_COLOR_* variables
+
+Based on the following downstream commits:
+
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/514d26f6eb551b33974a7f05bbc70009f7081a1b
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/fa9d34525f424546cf83cf396ef7d6d4b817640b
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/34aabe57e67b8951448b8210ba2fd1b41ac6d19f
+
+Co-Authored-By: Tobias Powalowski <tpowa@archlinux.org> (2013)
+Co-Authored-By: Christian Hesse <eworm@archlinux.org> (2021)
---
util/grub-mkconfig.in | 2 ++
util/grub.d/00_header.in | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
-index f8cbb8d7a..1189d95f9 100644
+index 32c480dae..1a945085c 100644
--- a/util/grub-mkconfig.in
+++ b/util/grub-mkconfig.in
-@@ -246,6 +246,8 @@ export GRUB_DEFAULT \
+@@ -250,6 +250,8 @@ export GRUB_DEFAULT \
GRUB_BACKGROUND \
GRUB_THEME \
GRUB_GFXPAYLOAD_LINUX \
@@ -21,7 +30,7 @@ index f8cbb8d7a..1189d95f9 100644
GRUB_SAVEDEFAULT \
GRUB_ENABLE_CRYPTODISK \
diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
-index 93a90233e..c5955df00 100644
+index 6a316a5ba..6816e09d4 100644
--- a/util/grub.d/00_header.in
+++ b/util/grub.d/00_header.in
@@ -125,6 +125,14 @@ cat <<EOF
@@ -39,3 +48,6 @@ index 93a90233e..c5955df00 100644
serial=0;
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
+--
+2.43.0
+
diff --git a/libre/grub/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch b/libre/grub/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch
index 3ae7d9546..cd6ccb1d8 100644
--- a/libre/grub/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch
+++ b/libre/grub/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch
@@ -1,6 +1,43 @@
---- a/util/grub.d/10_linux.in 2021-06-17 03:06:45.912081000 -0500
-+++ b/util/grub.d/10_linux.in 2021-06-17 13:39:03.509682976 -0500
-@@ -91,10 +91,14 @@
+From 328495cd629ed53a0d9e046f3e2faa435c608d12 Mon Sep 17 00:00:00 2001
+From: "Luke T. Shumaker" <lukeshu@lukeshu.com>
+Date: Sat, 13 Jan 2024 15:54:01 -0700
+Subject: [PATCH 2/4] 10_linux, 20_linux_xen: detect parabola initramfs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Based on the following downstream commits:
+
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/438b56c08a536202ae922c8a3f6023bd9aea7330
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/1c268927020d5ee37055250ee3de3ce4fdae23eb
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/fa9d34525f424546cf83cf396ef7d6d4b817640b
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/5347cbc7b8122e4f36068c12a649960240c4be07
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/80d4490bc85d2b35a6e08c1bb3211391e70f24ca
+
+ - https://git.parabola.nu/abslibre.git/commit/?id=575127b3d909f886e87526c3e9369fe690d862c2
+ - https://git.parabola.nu/abslibre.git/commit/?id=be608b5fc736ea2249b1224f2f6999cb76ca5059
+ - https://git.parabola.nu/abslibre.git/commit/?id=cfc5b3757f11b7760d5246cd181f084328cae912
+ - https://git.parabola.nu/abslibre.git/commit/?id=ede60ed00d4c781adadca99ddef19be1bf56e8aa
+ - https://git.parabola.nu/abslibre.git/commit/?id=eaf3d6f308094aca4f87ed111c2580e81b18f269
+ - https://git.parabola.nu/abslibre.git/commit/?id=d3fff86fb7d77716f3ca171b633bd462202a3b18
+ - https://git.parabola.nu/abslibre.git/commit/?id=856b2c7c881ecf9ef2607a9a4c4466635fea857f
+
+Co-Authored-By: Keshav Amburay <the.ridikulus.rat@gmail.com> (2014)
+Co-Authored-By: Tobias Powalowski <tpowa@archlinux.org> (2014)
+Co-Authored-By: Christian Hesse <eworm@archlinux.org> (2016, 2021)
+Co-Authored-By: André Fabian Silva Delgado <emulatorman@parabola.nu> (2014)
+Co-Authored-By: Márcio Alexandre Silva Delgado <coadde@parabola.nu> (2014-2015)
+Co-Authored-By: Omar Vega Ramos <ovruni@gnu.org.pe> (2021)
+---
+ util/grub.d/10_linux.in | 37 ++++++++++++++++++++++++++++++++-----
+ util/grub.d/20_linux_xen.in | 24 +++++++++++++++++++-----
+ 2 files changed, 51 insertions(+), 10 deletions(-)
+
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index cc393be7e..772966b89 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -93,10 +93,14 @@ linux_entry ()
fi
if [ x$type != xsimple ] ; then
case $type in
@@ -17,7 +54,7 @@
esac
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
-@@ -106,7 +110,7 @@
+@@ -108,7 +112,7 @@ linux_entry ()
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
@@ -26,7 +63,7 @@
save_default_entry | grub_add_tab
fi
-@@ -138,7 +142,7 @@
+@@ -140,7 +144,7 @@ linux_entry ()
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
fi
@@ -35,7 +72,7 @@
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
-@@ -198,7 +202,7 @@
+@@ -210,7 +214,7 @@ for linux in ${reverse_sorted_list}; do
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
@@ -44,7 +81,7 @@
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-@@ -285,6 +289,29 @@
+@@ -299,6 +303,29 @@ for linux in ${reverse_sorted_list}; do
linux_entry "${OS}" "${version}" advanced \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
@@ -73,24 +110,26 @@
+
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" recovery \
- "single ${GRUB_CMDLINE_LINUX}"
---- a/util/grub.d/20_linux_xen.in 2021-06-17 03:06:56.202081000 -0500
-+++ b/util/grub.d/20_linux_xen.in 2021-06-17 03:22:43.732079272 -0500
-@@ -117,9 +117,11 @@
+ "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
+diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
+index 94dd8be13..abc2fd7b4 100644
+--- a/util/grub.d/20_linux_xen.in
++++ b/util/grub.d/20_linux_xen.in
+@@ -120,9 +120,11 @@ linux_entry_xsm ()
fi
if [ x$type != xsimple ] ; then
if [ x$type = xrecovery ] ; then
-- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")"
-+ title="$(gettext_printf "%s, with Xen %s and %s kernel (recovery mode)" "${os}" "${xen_version}" "${version}")"
+- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${entry_xen_version}" "${version}")"
++ title="$(gettext_printf "%s, with Xen %s and %s kernel (recovery mode)" "${os}" "${entry_xen_version}" "${version}")"
+ elif [ x$type = xfallback ] ; then
-+ title="$(gettext_printf "%s, with Xen %s and %s kernel (fallback initramfs)" "${os}" "${xen_version}" "${version}")"
++ title="$(gettext_printf "%s, with Xen %s and %s kernel (fallback initramfs)" "${os}" "${entry_ xen_version}" "${version}")"
else
-- title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")"
-+ title="$(gettext_printf "%s, with Xen %s and %s kernel" "${os}" "${xen_version}" "${version}")"
+- title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${entry_xen_version}" "${version}")"
++ title="$(gettext_printf "%s, with Xen %s and %s kernel" "${os}" "${entry_xen_version}" "${version}")"
fi
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
- if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
-@@ -132,7 +134,7 @@
+ if [ x"Xen ${entry_xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
+@@ -135,7 +137,7 @@ linux_entry_xsm ()
title="$(gettext_printf "%s, with Xen hypervisor" "${os}")"
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
@@ -99,16 +138,16 @@
save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/"
fi
-@@ -141,7 +143,7 @@
+@@ -144,7 +146,7 @@ linux_entry_xsm ()
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
- xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
+ xmessage="$(gettext_printf "Loading Xen %s ..." ${entry_xen_version})"
- lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
+ lmessage="$(gettext_printf "Loading %s kernel ..." ${version})"
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$xmessage" | grub_quote)'
if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then
-@@ -275,7 +277,7 @@
+@@ -290,7 +292,7 @@ for current_xen in ${reverse_sorted_xen_list}; do
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
@@ -117,7 +156,7 @@
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-@@ -341,6 +343,18 @@
+@@ -361,6 +363,18 @@ for current_xen in ${reverse_sorted_xen_list}; do
linux_entry "${OS}" "${version}" "${xen_version}" advanced \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
@@ -135,4 +174,7 @@
+
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" "${xen_version}" recovery \
- "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
+ "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
+--
+2.43.0
+
diff --git a/libre/grub/0003-10_linux-20_linux_xen-rebrand-free-distros.patch b/libre/grub/0003-10_linux-20_linux_xen-rebrand-free-distros.patch
deleted file mode 100644
index 47added0d..000000000
--- a/libre/grub/0003-10_linux-20_linux_xen-rebrand-free-distros.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
---- a/util/grub.d/10_linux.in 2015-09-27 14:14:45.544730230 -0300
-+++ b/util/grub.d/10_linux.in 2015-09-27 14:58:23.533917184 -0300
-@@ -31,7 +31,17 @@
- if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
- else
-- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then
-+ OS="${GRUB_DISTRIBUTOR} Linux and GNU"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU+Linux"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
-+ else
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+ fi
- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
- fi
-
-diff -Nur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
---- a/util/grub.d/20_linux_xen.in 2015-09-27 14:14:45.544730230 -0300
-+++ b/util/grub.d/20_linux_xen.in 2015-09-27 14:59:16.319319658 -0300
-@@ -31,7 +31,17 @@
- if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
- else
-- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then
-+ OS="${GRUB_DISTRIBUTOR} Linux and GNU"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU+Linux"
-+ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
-+ else
-+ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-+ fi
- 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/libre/grub/0003-support-dropins-for-default-configuration.patch b/libre/grub/0003-support-dropins-for-default-configuration.patch
new file mode 100644
index 000000000..fceb6b772
--- /dev/null
+++ b/libre/grub/0003-support-dropins-for-default-configuration.patch
@@ -0,0 +1,33 @@
+From 0c26d3cee253313e61c47d1954ca24097e21f948 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Mon, 12 Jun 2023 07:42:01 +0200
+Subject: [PATCH 3/4] support dropins for default configuration
+
+Based on the following downstream commits:
+
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/beee9df4ae2e3b2150d4e54b3825064e77661cb4
+
+Co-Authored-By: Christian Hesse <mail@eworm.de> (2023)
+---
+ util/grub-mkconfig.in | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
+index 1a945085c..4338dceef 100644
+--- a/util/grub-mkconfig.in
++++ b/util/grub-mkconfig.in
+@@ -160,6 +160,11 @@ fi
+ if test -f ${sysconfdir}/default/grub ; then
+ . ${sysconfdir}/default/grub
+ fi
++for dropin in ${sysconfdir}/default/grub.d/*.cfg ; do
++ if test -f "${dropin}" ; then
++ . "${dropin}"
++ fi
++done
+
+ if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then
+ if [ -z "${GRUB_DISABLE_LINUX_UUID}" ]; then
+--
+2.43.0
+
diff --git a/libre/grub/0004-10_linux-20_linux_xen-rebrand-free-distros.patch b/libre/grub/0004-10_linux-20_linux_xen-rebrand-free-distros.patch
new file mode 100644
index 000000000..675846311
--- /dev/null
+++ b/libre/grub/0004-10_linux-20_linux_xen-rebrand-free-distros.patch
@@ -0,0 +1,73 @@
+From 85a3be8fc73ca019f7ea89c7872ce06c028cfc2f Mon Sep 17 00:00:00 2001
+From: "Luke T. Shumaker" <lukeshu@lukeshu.com>
+Date: Sat, 13 Jan 2024 16:08:36 -0700
+Subject: [PATCH 4/4] 10_linux, 20_linux_xen: rebrand free distros
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Based on the following downstream commits:
+
+ - https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/commit/df234e54c93f3e4e3f78835ad5bda9fb6dbd2a97
+
+ - https://git.parabola.nu/abslibre.git/commit/?id=554b8e3c70a352c2b80f374661ef6ea5f178617b
+ - https://git.parabola.nu/abslibre.git/commit/?id=ad20b5222cc70c36f75acadee9ed477af99c41a3
+ - https://git.parabola.nu/abslibre.git/commit/?id=bf492125a9aa1c1f7eee0be6c2794b20fb734381
+
+Co-Authored-By: Ronald van Haren <ronald@archlinux.org> (2013)
+Co-Authored-By: André Fabian Silva Delgado <emulatorman@parabola.nu> (2014)
+Co-Authored-By: Márcio Alexandre Silva Delgado <coadde@parabola.nu> (2015)
+---
+ util/grub.d/10_linux.in | 12 +++++++++++-
+ util/grub.d/20_linux_xen.in | 12 +++++++++++-
+ 2 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index 772966b89..5f8c47234 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -31,7 +31,17 @@ CLASS="--class gnu-linux --class gnu --class os"
+ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+ OS=GNU/Linux
+ else
+- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then
++ OS="${GRUB_DISTRIBUTOR} Linux and GNU"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then
++ OS="${GRUB_DISTRIBUTOR} GNU+Linux"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
++ else
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
++ fi
+ 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 abc2fd7b4..2b2dd5009 100644
+--- a/util/grub.d/20_linux_xen.in
++++ b/util/grub.d/20_linux_xen.in
+@@ -31,7 +31,17 @@ CLASS="--class gnu-linux --class gnu --class os --class xen"
+ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+ OS=GNU/Linux
+ else
+- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
++ if echo ${GRUB_DISTRIBUTOR} | grep -qi Parabola ; then
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Blag ; then
++ OS="${GRUB_DISTRIBUTOR} Linux and GNU"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Musix ; then
++ OS="${GRUB_DISTRIBUTOR} GNU+Linux"
++ elif echo ${GRUB_DISTRIBUTOR} | grep -qi Dragora ; then
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux-libre"
++ else
++ OS="${GRUB_DISTRIBUTOR} GNU/Linux"
++ fi
+ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
+ fi
+
+--
+2.43.0
+
diff --git a/libre/grub/PKGBUILD b/libre/grub/PKGBUILD
index 5491fb630..d47c586b8 100644
--- a/libre/grub/PKGBUILD
+++ b/libre/grub/PKGBUILD
@@ -90,18 +90,17 @@ fi
pkgdesc='GNU GRand Unified Bootloader (2)'
pkgdesc+=', (Parabola rebranded)'
epoch=2
-_tag='53c5000739db114c229fe69ec3d4b76b92441098' # git rev-parse grub-${_pkgver}
-_gnulib_commit='be584c56eb1311606e5ea1a36363b97bddb6eed3'
-_unifont_ver='13.0.06'
-_pkgver=2.06
+_tag='03e6ea18f6f834f177cad017279bedbb0a3de594' # git rev-parse grub-${_pkgver}
+_pkgver=2.12
+_unifont_ver='15.1.04'
pkgver=${_pkgver/-/}
pkgrel=1
-pkgrel+=.parabola2
+pkgrel+=.parabola1
url='https://www.gnu.org/software/grub/'
arch=('x86_64')
arch+=('i686')
arch+=('armv7h')
-license=('GPL3')
+license=('GPL-3.0-or-later')
backup=('etc/default/grub'
'etc/grub.d/40_custom')
install="${pkgname}.install"
@@ -119,11 +118,12 @@ if [[ "${CARCH}" = 'armv7h' ]]; then
fi
makedepends=('git' 'rsync' 'xz' 'freetype2' 'ttf-dejavu' 'python' 'autogen'
- 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse2')
+ 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse3')
depends=('sh' 'xz' 'gettext' 'device-mapper')
optdepends=('freetype2: For grub-mkfont usage'
- 'fuse2: For grub-mount usage'
+ 'fuse3: For grub-mount usage'
#'dosfstools: For grub-mkrescue FAT FS and EFI support' # drop 'and EFI' from the device-specific arm-uboot packages
+ 'lzop: For grub-mkrescue LZO support'
#'efibootmgr: For grub-install EFI support' # drop from the device-specific arm-uboot packages
#'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue' # drop from the device-specific arm-uboot packages
'os-prober: To detect other OSes when generating grub.cfg in BIOS systems'
@@ -144,12 +144,14 @@ validpgpkeys=('E53D497F3FA42AD8C9B4D1E835A93B74E82E4209' # Vladimir 'phcoder' S
'95D2E9AB8740D8046387FD151A09227B1F435A33') # Paul Hardy <unifoundry@unifoundry.com>
source=("git+https://git.savannah.gnu.org/git/grub.git#tag=${_tag}?signed"
- "git+https://git.savannah.gnu.org/git/gnulib.git#commit=${_gnulib_commit}"
+ 'git+https://git.savannah.gnu.org/git/gnulib.git'
"https://ftp.gnu.org/gnu/unifont/unifont-${_unifont_ver}/unifont-${_unifont_ver}.bdf.gz"{,.sig}
'0001-00_header-add-GRUB_COLOR_-variables.patch'
'0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch'
- '0003-10_linux-20_linux_xen-rebrand-free-distros.patch'
- 'grub.default')
+ '0003-support-dropins-for-default-configuration.patch'
+ '0004-10_linux-20_linux_xen-rebrand-free-distros.patch'
+ 'grub.default'
+ 'sbat.csv')
source_armv7h=(
'1000-am335x_bone--10_linux-20_linux_xen-detect-devicetree-file.patch'
'1000-omap3_beagle--10_linux-20_linux_xen-detect-devicetree-file.patch'
@@ -159,12 +161,14 @@ source_armv7h=(
sha256sums=('SKIP'
'SKIP'
- 'b7668a5d498972dc4981250c49f83601babce797be19b4fdd0f2f1c6cfbd0fc5'
+ '88e00954b10528407e62e97ce6eaa88c847ebfd9a464cafde6bf55c7e4eeed54'
'SKIP'
- '5dee6628c48eef79812bb9e86ee772068d85e7fcebbd2b2b8d1e19d24eda9dab'
- 'b32a28cb5b97b0bb139c0ee2199b81a2aba124c2ead9b01cfd4485fd2551257f'
- '7374137d183957ec8834ce749163c9fa98ff8ee61bbb74b0b38e29daf93857a4'
- 'ed6cf7d8efc391b9331322e4502f7469473a8ed05599c36e2b18f167b3cb7879')
+ 'c25a09792ad97ca93ff385f1821b8c071b28d0ee86c1c4af9365cc00dc5b2b12'
+ '1dd3df0838f9aa737beb0298b855bc93b07d8f3926460ccb8b8f30f5fece3abf'
+ 'a096658d0f48a8b8d0d526d679c2106d0a5bf2a5afb6f2ca7e37f1f2ac33fd85'
+ '281a5225d68be7c230ff2d8175d920bf507439f3fc42cbe866fc31530a1465d3'
+ 'c7c38d62c1238671a09094ceb71befc3fe3873f18343ef0a6f3089d9576dbd43'
+ '50cab883c2412bb583c0521ed34e75aa080ccfc50826ab9d02a4db250ae5c05e')
sha256sums_armv7h=('0f2e9abaf872e1e18dfe0cd1da42bdc4f49d3956f97a01c39b82c0e3016c1a32'
'c0d84384db273d9fd6ea2aab2a9d8ba36402daf8daf591dcba329cfa02253c87'
'ef105dcc067c673e543d4d5384aa7bf6b93e9eca96fec4323ab69a91ec079f56'
@@ -174,10 +178,13 @@ sha256sums_armv7h=('0f2e9abaf872e1e18dfe0cd1da42bdc4f49d3956f97a01c39b82c0e3016c
_backports=(
)
+_reverts=(
+)
+
_configure_options=(
+ PACKAGE_VERSION="${epoch}:${pkgver}-${pkgrel}"
FREETYPE="pkg-config freetype2"
BUILD_FREETYPE="pkg-config freetype2"
- --enable-mm-debug
--enable-nls
--enable-device-mapper
--enable-cache-stats
@@ -207,18 +214,28 @@ prepare() {
git cherry-pick -n "${_c}"
done
+ echo "Apply reverts..."
+ local _c
+ for _c in "${_reverts[@]}"; do
+ git log --oneline -1 "${_c}"
+ git revert -n "${_c}"
+ done
+
echo "Patch to enable GRUB_COLOR_* variables in grub-mkconfig..."
## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html
- patch -Np1 -i "${srcdir}/0001-00_header-add-GRUB_COLOR_-variables.patch"
+ patch -Np1 -i "${srcdir}/0001-00_header-add-GRUB_COLOR_-variables.patch"
echo "Patch to detect of Parabola GNU/Linux-libre initramfs images by grub-mkconfig..."
patch -Np1 -i "${srcdir}/0002-10_linux-20_linux_xen-detect-parabola-initramfs.patch"
+ echo "Patch to support dropins for default configuration..."
+ patch -Np1 -i "${srcdir}/0003-support-dropins-for-default-configuration.patch"
+
echo "Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme..."
sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "configure.ac"
echo "Rebranding for some free distros..."
- patch -Np1 -i "${srcdir}/0003-10_linux-20_linux_xen-rebrand-free-distros.patch"
+ patch -Np1 -i "${srcdir}/0004-10_linux-20_linux_xen-rebrand-free-distros.patch"
echo "Fix mkinitcpio 'rw' FS#36275..."
sed 's| ro | rw |g' -i "util/grub.d/10_linux.in"
@@ -424,6 +441,8 @@ _package_grub-bios() {
_package_grub-efi() {
_package_grub "efi-${_EFI_ARCH}" "${_EFI_ARCH} efi" \
"${_EFI_ARCH}-efi"
+
+ sed -e "s/%PKGVER%/${epoch}:${pkgver}-${pkgrel}/" -e "s/%CARCH%/${CARCH}/" < "${srcdir}/sbat.csv" > "${pkgdir}/usr/share/grub/sbat.csv"
}
_package_grub-emu() {
diff --git a/libre/grub/grub.default b/libre/grub/grub.default
index 886146690..6271d8dc0 100644
--- a/libre/grub/grub.default
+++ b/libre/grub/grub.default
@@ -24,7 +24,7 @@ GRUB_TERMINAL_INPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
+# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
@@ -55,3 +55,9 @@ GRUB_COLOR_HIGHLIGHT="white/magenta"
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
+
+# Probing for other operating systems is disabled for security reasons. Read
+# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
+# functionality install os-prober and uncomment to detect and include other
+# operating systems.
+#GRUB_DISABLE_OS_PROBER=false
diff --git a/libre/grub/grub.install b/libre/grub/grub.install
index c268996d1..79693428e 100644
--- a/libre/grub/grub.install
+++ b/libre/grub/grub.install
@@ -7,6 +7,16 @@ post_upgrade() {
mv /boot/grub/grub.cfg.pacsave /boot/grub/grub.cfg
fi
+ # Give a hint to update installation and configuration one after another.
+ cat <<EOM
+:: To use the new features provided in this GRUB update, it is recommended
+ to install it to the MBR or UEFI. Due to potential configuration
+ incompatibilities, it is advised to run both, installation and generation
+ of configuration:
+ # grub-install ...
+ # grub-mkconfig -o /boot/grub/grub.cfg
+EOM
+
# return if old package version greater 2:2.06-0...
(( $(vercmp $2 '2:2.06-0') > 0 )) && return
@@ -21,8 +31,8 @@ EOM
post_install() {
cat <<EOM
-:: Generate your bootloader configuration with:
- grub-mkconfig -o /boot/grub/grub.cfg
+:: Install your bootloader and generate configuration with:
+ # grub-install ...
+ # grub-mkconfig -o /boot/grub/grub.cfg
EOM
}
-
diff --git a/libre/grub/keys/pgp/95D2E9AB8740D8046387FD151A09227B1F435A33.asc b/libre/grub/keys/pgp/95D2E9AB8740D8046387FD151A09227B1F435A33.asc
new file mode 100644
index 000000000..58e9e8752
--- /dev/null
+++ b/libre/grub/keys/pgp/95D2E9AB8740D8046387FD151A09227B1F435A33.asc
@@ -0,0 +1,65 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFI9G/MBEADSuYOMN3qajJihjXpO6JQ/rpxQOSwpwUglG7gPej1krh8QkpPy
+GE5AydjgsMFSES1Hk1KkwSkULPYaR+omEBFBC6ZSM8li7HyPw1x6cJejY5uZ6NXu
+ryvmnJBQ3cb0dBhCZGMVt3qDv8KRZ3fB1GwOPF2M4oH04HFHBkxBmcpCDj/7f2sO
+6BcRvqKlhGjm+w6jzyDgAvxpri/PvKsN+Os70DwOw3JzEegDrhoaW2V55v+ycXXK
+KRnRemBBRkM5yDtsRsrsNAWZhh9Kak2bV36Rv549+oLIvkt32e7Xeezgx5guVD1w
+/+oa+25ZUKwqLYvfA1cfb8wH93yR1Xy2tWoasN3XP7legHt2YsGIu5QDg9Bq1oQ+
+Z1uNUYnLBYumjdlofThqAQwYxQ23DuWczAUaLZUc72r/iAN3rDLaW4rt3XpN+5fo
+yHV8BKRWQ/kMRlRTQADolClHog2bavj0FxYqwfChLHl9INsi2uDnzEgJWdstKq7J
+3s1KRxhCt7i+D+K2ICZZMyuW0SD+N81V8gVXtAuCNvTj8kzYOaSUyn8kjJklVLwV
+wo3s2xSSMI4sZAwdPkwGiet+aqPn6AemGxsmmWONVpXCP9bkezvPDAVrVYRlZDtm
+8JAQ6sTjq/z/wAAPrwNIagxKmvzpRJe/WikWBBEDzaONwGIBrRnIqJGndwARAQAB
+tCFQYXVsIEhhcmR5IDx1bmlmb3VuZHJ5QGdtYWlsLmNvbT6JAlUEEwEKAD8CGwMG
+CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAFiEEldLpq4dA2ARjh/0VGgkiex9DWjMF
+AmI2IUQFCRlfBtEACgkQGgkiex9DWjMojQ/+LMYTdb/ZzyKRZcxlHaUe5/VWAcZz
+akRs5DCzrcJvwQkanKQ4UPJq0si10mCe64sokt7dqepPjTH9c6cBpoMtyiVjmdlo
+R3IGcb2FcbXH0dPmVBCv1XQZGJLIhUylEy5gNtrzlrEwz2sWxG9+6zOMggCV4GBL
+DJfggfpevEyZKvTwq2C6LEWlEJLlbP1mCbclMpyTIaINZJmG8xnv6VDFAZLq2mMS
+CqL2p2WDLUS1xRJaOCjKICGBi34ng4dK279ssCtftfUi/KTRPEgouUHeKyMeyKo2
+i8ptJcnDfPC3Bp5/2t9gQFZp/VBriKIE+kIPK8UfEDyk3NZp0Nn7W89ZxYGvP3qc
+ML4PC7p1egBVicOsFahWBzZ9fr4Zqzd6yKfGBQxSwEN9saT4uzEsdtZlChzI+9pf
+SazzVRsGCJu3rZnB68qr/34G1TMXdLQweiIXgLWKh+q1CA6nttFXOj9wu36LavBp
+do1ZpkFRyIXfARAwz5ukFhqAUrSK4YTEQauUEkdKIO24cn1vG5433CkgtG2OFeOf
+mzeDiEEzQZi9FLpJ7pP3iSm4sEldfz8Ec3eGshm8VH1yd+RIBxrLewN3xgbVky1t
+zPejutHZzjGAqaxsjVMAXTbz27R1lSCCsam3m+D2sBd17YM4LEhHdTtDWtFxaNFu
+pax42Tu1SDjDkoe0JlBhdWwgSGFyZHkgPHVuaWZvdW5kcnlAdW5pZm91bmRyeS5j
+b20+iQJYBBMBCgBCAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZARYhBJXS
+6auHQNgEY4f9FRoJInsfQ1ozBQJiNiFEBQkZXwbRAAoJEBoJInsfQ1ozsu8P+wQw
+CDPhefPO/VMDXtiBUKwObYIzwEVLO0blV94U6C6FyhAe+HVjsGSj6gzAwFujz6ZY
+hv9lybf8FUxKZKeHdZ9PR0RA6QrqfiCbRccIp8bvuG+drvMOZs2nvv5PeMYtpetx
+L1ZxqXmwGbG4UVw+6bfqVkEPSZ/Y2pVa5kG6O0Dqk+5Kzm3g1pT837dtmtuO2aog
+qq6spBBVLhpTsmcrqOQ9hOOMbeK8lm9lyn0rG6Ssxt7cOvZLXJBQ+7CA/O7ZbxRs
+z064BqVfG/zI5KDYmdda6Ec8b8tYhhefNlwNgwQorlpylaOzx+o1OLsi6Qf8Rmg1
+IHZjCW/CiNXcRWXvHaSa9qZxQk2YlpCDqNgIgzIB9NezPuWyb8iP5+p1KLB/KwGm
+r2o/G0KWse3nLe1wa1oDFXApYjJsF/xrOZvYdJJe3dhAN18akcnt0VVl4NFwsU/p
+aJT+GYMNwdFF30Y1tMqXpgwsL8X6H6gskZa0jP29AB2kIB6SvwSxSLzJTqyaNluh
+x5pMj5HuIGWtl75qalverfV7dEeutI+/cKOQjzZHyylZ0f4rEhz2qU+17oTfoc85
+0SPvR6Qyd9DMlAaEQMnr/wCMFtmbifv7NJlU6K3ZHfMOVg8TtDmBxMT4U3t/uYBe
+BXvtrXnBKJdX4tZZdN/2WamkU66W9qzNQaRLh5N+uQINBFI9HTQBEAC9cuBfOGba
+uA+M/8bUN8PIxr0N0ImbTHUxf8P+o1sLxoMOiirK13s4uS/WXtyc6/47w0XmWoQt
+v/Kc2khfDFyTVnLeU1NYHG45+WRobxsaDu6sKo1EJZhmy6L0kFUSDSmcpT6i9N+O
+plWjAbkUUX63Y1G13yk4J1X5fD9VWqLNyokNmC6dwnJfzHlhlQHOuEUQtNHeJhfQ
+NkE4ixaP3ZXwdTONNau7YKoYekqumf3CwynUD0YKeLBubU+YKcva9vJy7p4/9eQu
+UE+xvfNhzH2rEjgbOgbCDN5aupWe44dV0PcJ8FOTP95mbKNW1H5HnD1f4gx8IFJi
+bgi7zObriQUmqLsBDWF8FvIhiTudRzqZURaKDYUBBveVDD9XHzlnjA56XsPUoEE5
+vHY+sA0STBLdh4ROf7rUYOHLGkBL9U3wVbd9YhGzY5nUQCTl5bH3Jimy3RnNwHWb
+cs3hWYUZSacJnhrbNgrC7e0BPf0z+ZzfV9UAYnADTwwWxyqup/RSKtB59PNCB0a1
+0iTmMEW3fSKIXdCEqaqINjCDGzvJiitCbkUlDViil+jyhDypZLAZGG1Bf+dKSWM6
+O94U7l8/Ycc18lrv/ZNLyuDVjd+RCD0+44lDd9lD8V1hUmvqg+rg+MF5LPO/hR07
+a7mpBqdto5KC/0KqlJNnNOZWV6cbSYGaWQARAQABiQI8BBgBCgAmAhsMFiEEldLp
+q4dA2ARjh/0VGgkiex9DWjMFAmI2IUoFCRlfBZYACgkQGgkiex9DWjOwgA//S7gm
+Bq8hFesEsrb1JE59ahY3RtvIJfp+bBLo7f1ZEVPGmF8OK+wlZhEg+2scN3QzZvBv
+AYlHYBplIgsUi3eNLUh7x80GQIDfjMU5pZ0DJG/e97f6zv11rIfCsvnkUp+9dmu2
+LR+k97rujrobUHjl8mlWOhbb3S5I3f6CF8UViHwKHfYzPWQLMFMvabmWbmIVXQuX
+ocJCz9sWrJpqWgGuMjcMfo07IiFan2fHptF2K5i5LQV/S0sAykXZcHiME6bxa6TA
+3GqjgOaQnEZfhu1pSEOS9asVCCPMyCIYdrrmx3eQ0z7qxLxxtzEVn/JWprZqCSzQ
+tcPn8591obaAXzF8ddJ0wJ2nxKUhy3H8jhSaJMEZKBrikhZIiC/5NY4OuRYaIjFe
+CpfrRULYTUciEl7EViJdNwBJxr1mgXc+DZioxkOg2C+Yya6yL9zewgsFvR/D7zT3
+Z5YeLSpdfz9BRV2ys8sRHBCqFmn3E/8KV5lYUDWD1YhAN1uTkeZMy2oa1Eqf2Hdj
+zesutlS4FGk+BeGqHrj6J+MfVT7FsW0u+3BraB8ojQ0+QbPxku0RF4bIC9b/AkEN
+th6zWJDmOrY7mTlXmdEYe0s6hwc8kWSt/WuQvd+Gg1MkA1uBNekEq6jK3gPV9z5g
+5FvYNgYvjGGpyMBuulIcw82FGG5Jogf1q6n5l4E=
+=+opC
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/grub/keys/pgp/BE5C23209ACDDACEB20DB0A28C8189F1988C2166.asc b/libre/grub/keys/pgp/BE5C23209ACDDACEB20DB0A28C8189F1988C2166.asc
new file mode 100644
index 000000000..3d79f175a
--- /dev/null
+++ b/libre/grub/keys/pgp/BE5C23209ACDDACEB20DB0A28C8189F1988C2166.asc
@@ -0,0 +1,65 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=IoNF
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/grub/keys/pgp/E53D497F3FA42AD8C9B4D1E835A93B74E82E4209.asc b/libre/grub/keys/pgp/E53D497F3FA42AD8C9B4D1E835A93B74E82E4209.asc
new file mode 100644
index 000000000..b001ebd9e
--- /dev/null
+++ b/libre/grub/keys/pgp/E53D497F3FA42AD8C9B4D1E835A93B74E82E4209.asc
@@ -0,0 +1,84 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQSuBEr2CLURDACLOWOLoxu6mhBQWRMzGYNgLjjOYT7O+LQSpHda5Zwa5eOzqrJP
+qs08XESLH3CQ3SplSrEyKQE7skWqx6TEC/LmnXHktqXP+MqB4HYJ7bUFqRUWdibq
+aDCuiSHUYQnrNEJYH4Bo9LZ35uXSoPTrzNUavY9dWBUDvm2NGn2yJJ4BDJq+IY3v
+26bHgDdWgcJuuKB876oqtPL/7x58GZ4Kb5rPPcfSVEShGkO6e1T3AWiL/rp80XGi
+gidMwl7h1TCKakiunIhnfcjYeSkEbuQ76IivkjePbyv2Y0j26/cY6SrnTuOyd/6W
+8BjVcadVEfW6GutZQ4HYIMj7R5oFoaGTR1XjBzaQAHY4z/7GJ6pkydmeVDVhUBMF
+12w0blVjAl/qyHB0vx199YH7vgNA/FCXvck5tZAon141CHNQ8/owr7OUY6o4jAnx
+ft7Okmckkrg+UpxHwB77O8F73r4hJACZy3ikEBhwxTRwpH5mXpFMuMvvV9fvN3mM
+X6Kqra+p3sl88bsBAMSIaVyNiDU/tArRtbsKdAuyRcN5azPSc8mptnmiZVWBC/0Z
+Qe9+xKcXwa6/HvplnM/AwewGv/Gw5hZ/8o0VqDezyKzLKLIZfiSdeKLVPPK8rxMW
+3b4InZUPRuEv3Crr3EfgpzQ84FQwgqkuBnxNh9OGeoQaBmoi3WqtKyutxANoeiJo
+m49WuZaVbdgKffH4Wl+OV3AYlFzfJQ7QTaC2YWl4zwjRtrwbIMogiRSRCGhYSkZs
+zQHv+58u2v+lqSAk9rsWgEc6b23iacnxMug9dd4ppS5tPcJ3kdFPavcUUvWv6epr
+i9QVVVrIJyHrNbZPugjL5ZatCjAACtsUn4hMYF7Hl2+cgSwwyfH8K2A+mxeZyKXG
+jVH4mhO/sVRwz+WPunzSv9VeyORQb6MYRZV3EORijxHFkNWZut6kK0VoaFOS5Kxd
+4PfpHQq7gJaKIWVRqrEJ9PmVddmRjjqRBvkAAoaTG4flrZeYvDFjpmkY01a+s7Xy
+qf+bHFa/LSqvpDTPRzPYgujyc8CsqidkAtP5a9f19VQdogbHr+TK8mSX88uzqM0L
+/iDhoL/TapsuLm7ErtrDEIduXIwBJimwsSLWv9r59vDQ4I/tDk8llBw1TTOo9k67
+/fA9U7EgnDwgv5wcyXqt6ri4c4aMlODO+u0VbJkW6N2jYsZt3cTYe7Xev6yyT+OZ
+YWJbKgFdBJs0DsM4riffnxDXL+RiOwd8VMm9M8fWDK9zTAYKaV4RY7RFzUe+TlCv
+fyZKOD7VLPSGGGM1ijpk3FGoVQ6VzFxKb5zmEpkQTirk2DFWUw07uP4seay2Hqm3
+bAaigvr4jx6MxgrL34XPGXqyhEu1mxxffFuypejNRNe9lBzd8V/GYNUqyhZUFX4d
+XjY58kK1gKPin18TCAgmiocAIhP1nxswPpGwfNL0rZUQg7ww/Psw24BfmZos09it
+zOVk0FP7hYuzTz7e0yW4+dPal64wvWcqOIAxEEE+9VPu0fbemN2/sXZ7vmDDuhjZ
+zbylL5Hf7+ASykB2XYxfpSZZGWZarQA9MPynbpxROUmSfNV1DWCP4IZUF0dGueEh
+C7QxVmxhZGltaXIgJ3BoY29kZXInIFNlcmJpbmVua28gPHBoY29kZXJAZ21haWwu
+Y29tPoiWBBMRCgA+AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEE5T1Jfz+k
+KtjJtNHoNak7dOguQgkFAlqEKf0FCRj0IsgACgkQNak7dOguQgmsUQD/RjbTDrgr
+5MdJkmm+6sXP+ULOVsYH0cucY1iLRXepFkcA/RGtXNTqN8meNdq+aaI6PwZFCLX4
+NKDwcPyyMrS0z7mKuQMNBEr2CLUQDAC3kU2Z3UNSqYQht2eFkH3UJs45nSSNjL5Q
+y5r3NmoPb2LsNCh+IIu5YogXdeiktE9k5Nebddf9EghtoM3wKYSDK4fAKMLSEy4C
+GyTk2kUquiLjRpgaE00nxApng0DiHr5QshA64csQo5YA6JdtX715lFDFtLkWbYgo
+k+YWVvuCSXWee6MuKMuNmiKhUFutSVgFPnCm0zycpZkkdlu1SD2l50VB/kwYwXYg
+Q51CrrgUzH+NNCmUHMo8hOESCig3MO2V5fUUzHe9W270gApqlOcGA7bLCodhmXpL
+0XZ8IJrZZKjBFNPO+G7vuS/52lGfJIQn0QTA66zp5OXnAyKDXp97M3n9f6Lo2coz
+hKjrmQc6dUnUWTyNUAKBOUqae0M1xD/HPKvaLsAF2d3c3MGlukHcOcLBsjWgQfLi
+hf5j8P24Xv4MKUNloK3Ity25pxrdJ4+1Fd9il02Ddcb42ijgqVQFan+mjs7j3TvO
+He4mldIDIwqGlZx8zVzZOea8DY3j2gMAAwUL/3WmyqVd6Jaj1Tz6xCU8M9T8Jpxa
+nBB+lSiPYpeuMsd/s0ZVbZN7C6EX0Kbthz52osGE8rvHpKxTdLF0umm+tFU71/wo
+PFR3gkVUe/AufMLt7W4u4vNhZIgNOxw9Npq5DUYjL8LpUgF3evKuUOKUpAgdiMxp
+5QoeWX4HXrx+tznHLJtQ4Avb5wrpUV6nGiLX6wBtqnAAvz8DG1HjQwkKdjE207wR
+X4yt4pumFnL7rGI+w2ROt3lfrvpVPnqab+juRwY6TYg0sy3KEVdTlRsNJvjZ9eNj
+hlu0Th1NM1fk2J5Yh4u9poNNtsiedbRINYs4WpFUYtIbiJtzwcZXLQ9U7yv2mTYf
+ny3tFVbbug2L+ZOy9Zjd+OxZQKJDytM7Aj19F46vr49qZQ+en5cmWWSPX948ahAX
+QbIRsSXaPxE84NJhbNRuVATzZ/or0HG2LcURhqIz46C2N5UnOSmcKmjbxY0CLa/u
+RFXdfF1VGYOC4Pue11gj7tp/191MoIqEqBXtQYhnBBgRCgAPAhsMBQJRBEVpBQkP
+dD4wAAoJEDWpO3ToLkIJ1BEA/3TWB4zizE2TAfv26Nzr4ofbEI2L5cGJKS0EYCYD
+ubO2AQCGiGH4OI+iUTdF+mQAXNqd2neZRsKiAajBD8ax9Y5XIoh4BCgRCgAgFiEE
+5T1Jfz+kKtjJtNHoNak7dOguQgkFAlqEKV4CHQEACgkQNak7dOguQgm8ZgD/WFIj
+r8gRIb2qEegxJ4nsQNETL1Cctkls8k51WZ26r4oA/3cp0DCcr8WOtK9GlQsxthr/
+A0itK8uGOEf7nQ6Kz4UIuQENBFqESLUBCACrQ7nfniNxVez4EHzVLiueZvProPmN
+qAUkzUe4j8tNTsFK+pLeMddmWRZeId12YFIB05xk0OOHgIwaMZinqT5MU08KtS0f
+wPMZFnYUnLIMhpoT7WiXKp1JRlwYHTKlvD8aZW/5cW2HkbyWJvW9jhLAMtR6sRJh
+UjjW7Y8s2dnIfOK7xOzsq10zCsAQWsE5vO23VoNZXfWAK501t44/p4gf2DKhniNz
+/JEf1RGpabw18YtKLGbIxx3zz/tmNI8zk4j8gVKfGY6h9qrGLUwLePmtuzwzRfh7
+bU9ytYgpAvJo7fhtWiGhK+pFh4PPCog4iFoZduX9WxXhTmAdhLnZz/aJABEBAAGI
+kgQoEQgAOhYhBOU9SX8/pCrYybTR6DWpO3ToLkIJBQJa6d6PHB0DQ2FyZCBpbiBx
+dWVzdGlvbiB3YXMgcmVzZXQACgkQNak7dOguQgkMfQD9FXpw1XFbiggAvVMKl0QE
+8u1xMhyF0cJ7MWaZRe82t5wBAJHcM64ZRt5yBPXyUIZddp+mx7fdfFP3caeidr1k
+36lkiQG0BBgRCgAmFiEE5T1Jfz+kKtjJtNHoNak7dOguQgkFAlqESLUCGwIFCQlm
+AYABQAkQNak7dOguQgnAdCAEGQEKAB0WIQRevGkfGXaRBewHrj1QSu4ieCwg/gUC
+WoRItQAKCRBQSu4ieCwg/hZaB/9uNJY4hg/MN+bWWMLJ9A/+uLL6rFqQAmY8xvLL
+nrvuh7oR4uHVLpr4wlagNdPL220efVfS6RIUIJBz9AevwRtUl41Vwd+HQf/nlokC
+kB357iUFIly6PMWe7F/5ICNer6qKQVoJ67eyh2A1BDpg43YmSJNuVc+Wtwk5QmBm
+iMXbRr6F9b3LtZCmcLo9OmPLkVRGZ2veYveoqVHMT3aEbZYxmPXqY55VsKH0l7T9
+ZQQdhlXVnudAz/5vYpf85YmXjyjRBSMzqwBbDGLbD6K+6WXaP26JEWBnamRHPTY4
+5RLYGs98C6uueAZNKNQNDbJJDWjxYTf5byk89ck8l/QAZiXc9MoBALmXKK5Mff09
+RjjbUjEKwy1tqpDi+Dugv+i8rWKrhlrtAQCwxmRQY1lN/R/vdkpfgKR+IldQGcbq
+HRpZgl1eg36MhLkBDQRahEzWAQgAmrbxcC7g4WZVv8YH9a50NCN1QBR8UW8qVPex
+JhiGvAUpK4BVKbkFIxpHQ2MCTRCjaKw8edD6Ks/q98TLrQ1e+PZq9WqTaWlhzYy1
+VxoJ8dE/UOmgTaI7YnR7dPTyuKnntM9GXsYYRncLHOq2FoFXvzuwyKRyNBVTeLBt
+325t4dgRrBqhTzu8sw9yZGpC9LvfRyl/19zGncqR1OkBQd+gxyfHYFxyXX5dVprh
+rJ/ysL3yEKNEB/kSFAJTXRew1UnU8cR5NzpdT/JqR2ecMJTR4OIU98MAcNEbAk+x
+DC37JeI0Q3abl6I4b2HMmsdAPbCTrs0LLf+wbxaiP+XGWgrtBQARAQABiH4EGBEK
+ACYCGyAWIQTlPUl/P6Qq2Mm00eg1qTt06C5CCQUCWoRNBwUJCWYBsQAKCRA1qTt0
+6C5CCUEKAP4s1OKCF/PK66j88tkPk2+4BjhmhOmhsAy9nPOVDIU7HwEAr8iNPhFw
+5Z8psXObpR/W/tqPzARHThs54vk/N8DP+w6IkgQoEQgAOhYhBOU9SX8/pCrYybTR
+6DWpO3ToLkIJBQJa6d6jHB0DQ2FyZCBpbiBxdWVzdGlvbiB3YXMgcmVzZXQACgkQ
+Nak7dOguQgmtYAD/U82OjPDGyS2HqD2e7Cv1wRuszq0mL6BcKBNklWqWYN8BALCw
+2/RdNHkZeE+OoOo/1LniXjw7O0KLM3htR25Oy+hw
+=pZdQ
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/grub/sbat.csv b/libre/grub/sbat.csv
new file mode 100644
index 000000000..09daaa1ea
--- /dev/null
+++ b/libre/grub/sbat.csv
@@ -0,0 +1,3 @@
+sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
+grub,3,Free Software Foundation,grub,%PKGVER%,https//www.gnu.org/software/grub/
+grub.parabola,1,Parabola GNU/Linux-libre,grub,%PKGVER%,https://parabola.nu/packages/libre/%CARCH%/grub/