From 004475ce66cf7444d5beb8e692d3d78c8357d959 Mon Sep 17 00:00:00 2001 From: Philip Roche Date: Mon, 4 Dec 2023 12:47:24 +0000 Subject: [PATCH] fix: Mark grub-pc-bin as manual install to avoid autoremoval (LP: #2045418) With amd64 build target calling `update-grub` no longer works and fails build with error ``` grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory. ``` `/usr/lib/grub/i386-pc/modinfo.sh` is part of the grub-pc-bin package. We are seeing this now on xenial as grub-pc-bin is now removed during build as part of fixing bug https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/2036195. To resolve this we mark grub-pc-bin as manually installed so it is not autoremoved. As we are running grub-install ourselves for a specific target we need to make sure to install that target first which means this will not be solved by changing dependencies of the grub packages. --- debian/changelog | 6 ++++++ live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/debian/changelog b/debian/changelog index ebdc42f7..6024d69d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +livecd-rootfs (2.408.70) xenial; urgency=medium + + * Mark grub-pc-bin as manual install to avoid autoremoval (LP: #2045418) + + -- Philip Roche Mon, 04 Dec 2023 12:39:49 +0000 + livecd-rootfs (2.408.69) xenial; urgency=medium [Steve Langasek] diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary index fa0a3ed6..eb4eab99 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary @@ -86,6 +86,10 @@ install_grub() { efi_target=arm64-efi ;; amd64) + # LP#2045418 - grub-pc-bin is installed as a dependency of grub-pc and is required for grub-install. + # However, when grub-efi-amd64 is installed, grub-pc is removed and grub-pc-bin is marked for autoremoval. + # This causes grub-install to fail. To avoid this we mark grub-pc-bin as manually installed. + chroot mountpoint apt-mark manual grub-pc-bin chroot mountpoint apt-get install -qqy grub-efi-amd64-signed grub-efi-amd64 shim-signed grub_modules="multiboot serial usb usb_keyboard" efi_target=x86_64-efi