From 6c5652296129326a18bb0c2e1efc495e74a01edb Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Tue, 31 Oct 2017 10:05:39 -0700 Subject: [PATCH] divert /usr/bin/systemd-detect-virt as part of the grub diversions, so that the grub kernel postinst hook is operational when we're building in a container. LP: #1729034. --- debian/changelog | 3 +++ live-build/ubuntu-cpc/functions | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/debian/changelog b/debian/changelog index 3ff44fd0..9fb54059 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,9 @@ livecd-rootfs (2.408.22) xenial; urgency=medium * Make sure to remove any initramfs that was generated in a minimized image. + * divert /usr/bin/systemd-detect-virt as part of the grub diversions, so + that the grub kernel postinst hook is operational when we're building + in a container. LP: #1729034. -- Steve Langasek Sat, 21 Oct 2017 20:53:02 -0700 diff --git a/live-build/ubuntu-cpc/functions b/live-build/ubuntu-cpc/functions index 246b839f..49aa4313 100644 --- a/live-build/ubuntu-cpc/functions +++ b/live-build/ubuntu-cpc/functions @@ -298,6 +298,15 @@ divert_grub() { chroot "$CHROOT_ROOT" dpkg-divert --local \ --divert /etc/grub.d/30_os-prober.dpkg-divert \ --rename /etc/grub.d/30_os-prober + + # Divert systemd-detect-virt; /etc/kernel/postinst.d/zz-update-grub + # no-ops if we are in a container, and the launchpad farm runs builds + # in lxd. We therefore pretend that we're never in a container (by + # exiting 1). + chroot "$CHROOT_ROOT" dpkg-divert --local \ + --rename /usr/bin/systemd-detect-virt + echo "exit 1" > "$CHROOT_ROOT"/usr/bin/systemd-detect-virt + chmod +x "$CHROOT_ROOT"/usr/bin/systemd-detect-virt } undivert_grub() { @@ -310,4 +319,8 @@ undivert_grub() { chroot "$CHROOT_ROOT" dpkg-divert --remove --local \ --divert /etc/grub.d/30_os-prober.dpkg-divert \ --rename /etc/grub.d/30_os-prober + + rm "$CHROOT_ROOT"/usr/bin/systemd-detect-virt + chroot "$CHROOT_ROOT" dpkg-divert --remove --local \ + --rename /usr/bin/systemd-detect-virt }