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.
ubuntu/xenial^2
Philip Roche 1 year ago
parent 41ecdf5c74
commit 004475ce66

6
debian/changelog vendored

@ -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 <phil.roche@canonical.com> Mon, 04 Dec 2023 12:39:49 +0000
livecd-rootfs (2.408.69) xenial; urgency=medium livecd-rootfs (2.408.69) xenial; urgency=medium
[Steve Langasek] [Steve Langasek]

@ -86,6 +86,10 @@ install_grub() {
efi_target=arm64-efi efi_target=arm64-efi
;; ;;
amd64) 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 chroot mountpoint apt-get install -qqy grub-efi-amd64-signed grub-efi-amd64 shim-signed
grub_modules="multiboot serial usb usb_keyboard" grub_modules="multiboot serial usb usb_keyboard"
efi_target=x86_64-efi efi_target=x86_64-efi

Loading…
Cancel
Save