From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 28 Sep 2018 10:35:38 +0200 Subject: [PATCH] grub-switch-to-blscfg: copy blscfg module for legacy BIOS and ppc ieee1275 On platforms that load the blscfg module the latest version should be used, so copy the module to the boot directory to make sure that the grub2 kernel will load the latest version of the BLS parsing code. Related: rhbz#1633646 Signed-off-by: Javier Martinez Canillas --- util/grub-switch-to-blscfg.in | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in index 9cf64f8e725..1c6bd1882a7 100644 --- a/util/grub-switch-to-blscfg.in +++ b/util/grub-switch-to-blscfg.in @@ -53,6 +53,8 @@ blsdir=`echo "/@bootdirname@/loader/entries" | sed 's,//*,/,g'` backupsuffix=.bak +arch="$(uname -m)" + export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" @@ -248,7 +250,6 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do fi if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then - arch="$(uname -m)" bls_debug="$(echo ${bls_target} | sed -e "s/\.${arch}/-debug.${arch}/")" cp -aT "${bls_target}" "${bls_debug}" title="$(grep '^title[ \t]' "${bls_debug}" | sed -e 's/^title[ \t]*//')" @@ -282,6 +283,16 @@ elif ! grep -q '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" ; then fi if [ "${GENERATE}" -eq 1 ] ; then + if [ $arch = "x86_64" ] && [ ! -d /sys/firmware/efi ]; then + if ! cp ${prefix}/lib/grub//i386-pc/blscfg.mod ${grubdir}/i386-pc/ ; then + exit 1 + fi + elif [ $arch = "ppc64" -o $arch = "ppc64le" ] && [ ! -d /sys/firmware/opal ]; then + if ! cp ${prefix}/lib/grub/powerpc-ieee1275/blscfg.mod ${grubdir}/powerpc-ieee1275/ ; then + exit 1 + fi + fi + cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}"