From 29f231fd049f023bcf57810544b757b325fac2ce Mon Sep 17 00:00:00 2001 From: Steve McIntyre Date: Mon, 3 May 2021 20:52:35 +0100 Subject: Add maintainer scripts to the template packages Manage installing and removing fbXXX.efi and mmXXX.efi when we install/remove the shim-helpers-$arch-signed packages. Closes: #966845 --- .../signing-template/@final_pkg_name@.postinst.in | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 debian/signing-template/@final_pkg_name@.postinst.in (limited to 'debian/signing-template/@final_pkg_name@.postinst.in') diff --git a/debian/signing-template/@final_pkg_name@.postinst.in b/debian/signing-template/@final_pkg_name@.postinst.in new file mode 100644 index 00000000..6da2a3d8 --- /dev/null +++ b/debian/signing-template/@final_pkg_name@.postinst.in @@ -0,0 +1,81 @@ +#! /bin/sh +set -e + +# Must load the confmodule for our template to be installed correctly. +. /usr/share/debconf/confmodule + +# Select the right target architecture for grub-install +ARCH=@arch@ +case ${ARCH} in + i386|amd64) + FW_SIZE=$(cat /sys/firmware/efi/fw_platform_size) + if [ "$FW_SIZE"x = "32"x ]; then + GRUB_EFI_TARGET="i386-efi" + elif [ "$FW_SIZE"x = "64"x ]; then + GRUB_EFI_TARGET="x86_64-efi" + else + echo "Unable to read a valid value from fw_platform_size, ABORT" + exit 1 + fi + ;; + arm64) + GRUB_EFI_TARGET="arm64-efi" + ;; + *) + echo "Unsupported dpkg architecture ${ARCH} in $0. ABORT" + exit 1 + ;; +esac + +# Pull out a config value from /etc/default/grub +config_item () +{ + if [ -f /etc/default/grub ]; then + . /etc/default/grub || return + for x in /etc/default/grub.d/*.cfg; do + if [ -e "$x" ]; then + . "$x" + fi + done + fi + eval echo "\$$1" +} + +case $1 in + configure) + bootloader_id="$(config_item GRUB_DISTRIBUTOR | tr A-Z a-z | \ + cut -d' ' -f1)" + case $bootloader_id in + kubuntu) bootloader_id=ubuntu ;; + esac + + # Call grub-install to make sure we're added to the ESP as + # needed + if [ "$bootloader_id" ] && \ + [ -d "/boot/efi/EFI/$bootloader_id" ] && \ + [ -d /sys/firmware/efi ] && \ + which grub-install >/dev/null 2>&1 + then + # Check for some of the options that matter, so we can + # call grub-install safely without dropping them + OPTIONS="" + + db_get grub2/force_efi_extra_removable + if [ "$RET" = true ]; then + OPTIONS="$OPTIONS --force-extra-removable" + fi + + db_get grub2/update_nvram + if [ "$RET" = false ]; then + OPTIONS="$OPTIONS --no-nvram" + fi + + grub-install --target=${GRUB_EFI_TARGET} $OPTIONS + fi + ;; +esac + +#DEBHELPER# + +exit 0 + -- cgit v1.2.3