diff --git a/debian/changelog b/debian/changelog index 799ff6b1..de1fa686 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,31 @@ -livecd-rootfs (2.694+1) hirsute; urgency=medium +livecd-rootfs (2.698) hirsute; urgency=medium - * Add hirsute + * amd64: always install grub-pc with shim-signed (LP: #1901906) + * control: install qemu-utils & snapd on riscv64. - -- Robert C Jennings Wed, 28 Oct 2020 08:37:18 -0500 + -- Dimitri John Ledkov Thu, 29 Oct 2020 22:22:30 +0000 + +livecd-rootfs (2.697) hirsute; urgency=medium + + [ John Chittum ] + * Ensure vmtools version entered into vmdk header (LP: #1893898) + + -- Robert C Jennings Wed, 28 Oct 2020 12:02:04 -0500 + +livecd-rootfs (2.696) hirsute; urgency=medium + + * auto/config: seed ubuntu-desktop when building hyperv image LP: #1901846 + * auto/config: scope ubuntu:desktop-preinstalled:raspi image options LP: #1901846 + + -- Dimitri John Ledkov Wed, 28 Oct 2020 10:36:29 +0000 + +livecd-rootfs (2.695) hirsute; urgency=medium + + * Install only shim-signed to prevent shipping conflicting, autoremovable + packages + * Ensure autoremove is run after any package install + + -- Joshua Powers Mon, 26 Oct 2020 11:58:57 -0700 livecd-rootfs (2.694) groovy; urgency=medium diff --git a/debian/control b/debian/control index dbcc6375..45dcf710 100644 --- a/debian/control +++ b/debian/control @@ -32,9 +32,9 @@ Depends: ${misc:Depends}, python3-apt, python3-launchpadlib, python3-yaml, - qemu-utils [!i386 !riscv64], + qemu-utils [!i386], rsync, - snapd (>= 2.39) [!i386 !riscv64], + snapd (>= 2.39) [!i386], squashfs-tools (>= 1:3.3-1), sudo, u-boot-tools [armhf arm64], diff --git a/live-build/auto/config b/live-build/auto/config index 22278d55..e95d5a88 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -601,17 +601,19 @@ case $PROJECT in ;; desktop-preinstalled) - add_task install minimal standard + add_task install minimal standard ubuntu-desktop if [ "$SUBARCH" = "raspi" ]; then add_task install ubuntu-desktop-raspi + # XXX: Are those actually needed? I see we use those for ubuntu-cpc, which is the project + # for existing raspi preinstalled images + # XXX: I would prefer to use --hdd-label=desktop-rootfs like 040-hyperv-desktop-images.binary + OPTS="${OPTS:+$OPTS }--initramfs=none" + OPTS="${OPTS:+$OPTS }--system=normal" + OPTS="${OPTS:+$OPTS }--hdd-label=cloudimg-rootfs" + OPTS="${OPTS:+$OPTS }--ext-resize-blocks=536870912 --ext-block-size=4096" + OPTS="${OPTS:+$OPTS }--ext-fudge-factor=15" fi - # XXX: Are those actually needed? I see we use those for ubuntu-cpc, which is the project - # for existing raspi preinstalled images - OPTS="${OPTS:+$OPTS }--initramfs=none" - OPTS="${OPTS:+$OPTS }--system=normal" - OPTS="${OPTS:+$OPTS }--hdd-label=cloudimg-rootfs" - OPTS="${OPTS:+$OPTS }--ext-resize-blocks=536870912 --ext-block-size=4096" - OPTS="${OPTS:+$OPTS }--ext-fudge-factor=15" + ## Otherwise HYPERV image options.... *crickets* see the hyperv hook ;; *) @@ -776,8 +778,7 @@ case $PROJECT in add_package install grub-pc ;; amd64) - add_package install grub-pc-bin - add_package install grub-efi-amd64-signed + add_package install grub-pc add_package install shim-signed ;; esac diff --git a/live-build/functions b/live-build/functions index e4b90425..7197a152 100644 --- a/live-build/functions +++ b/live-build/functions @@ -236,28 +236,34 @@ modify_vmdk_header() { # Extract the vmdk header for manipulation dd if="${vmdk_name}" of="${descriptor}" bs=1 skip=512 count=1024 + echo "Cat'ing original descriptor to console for debugging." + # cat header so we are aware of the original descriptor for debugging + cat $descriptor - # The sed lines below is where the magic is. Specifically: - # ddb.toolsVersion: sets the open-vm-tools so that VMware shows - # the tooling as current - # ddb.virtualHWVersion: set the version to 7, which covers most - # current versions of VMware - # createType: make sure its set to stream Optimized - # remove the vmdk-stream-converter comment and replace with - # # Disk DescriptorFile. This is needed for Virtualbox - # remove the comments from vmdk-stream-converter which causes - # VirtualBox and others to fail VMDK validation - - sed -e 's|# Description file.*|# Disk DescriptorFile|' \ - -e '/# Believe this is random*/d' \ - -e '/# Indicates no parent/d' \ - -e '/# The Disk Data Base/d' \ - -e 's|ddb.comment.*|ddb.toolsVersion = "2147483647"|' \ - "${descriptor}" > "${newdescriptor}" - - # The header is cannot be bigger than 1024 - expr $(stat --format=%s ${newdescriptor}) \< 1024 > /dev/null 2>&1 || { - echo "descriptor is too large, VMDK will be invalid!"; exit 1; } + # trim null bytes to treat as standard text file + tr -d '\000' < $descriptor > $newdescriptor + + # add newline to newdescriptor + echo "" >> $newdescriptor + + # add required tools version + echo -n 'ddb.toolsVersion = "2147483647"' >> $newdescriptor + + # diff original descriptor and new descriptor for debugging + # diff exits 1 if difference. pipefail not set so piping diff + # to cat prints diff and swallows exit 1 + echo "Printing diff of original and new descriptors." + diff --text $descriptor $newdescriptor | cat + + + # The header must be 1024 or less before padding + if ! expr $(stat --format=%s ${newdescriptor}) \< 1025 > /dev/null 2>&1; then + echo "descriptor is too large, VMDK will be invalid!"; + exit 1 + fi + + # reset newdescriptor to be 1024 + truncate --no-create --size=1K $newdescriptor # Overwrite the vmdk header with our new, modified one dd conv=notrunc,nocreat \ diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary index 77f24e7e..dc87a361 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary @@ -33,6 +33,7 @@ install_grub() { chroot mountpoint apt-get -qqy update chroot mountpoint apt-get -qqy install grub-ieee1275 chroot mountpoint apt-get -qqy remove --purge grub-legacy-ec2 + chroot mountpoint apt-get autoremove --purge --assume-yes # set the kernel commandline to use hvc0 mkdir -p mountpoint/etc/default/grub.d 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 910f67a9..f997bb4e 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 @@ -89,11 +89,13 @@ install_grub() { efi_target=arm-efi ;; amd64) - chroot mountpoint apt-get install -qqy grub-efi-amd64-signed shim-signed + chroot mountpoint apt-get install -qqy grub-pc shim-signed efi_target=x86_64-efi ;; esac + chroot mountpoint apt-get autoremove --purge --assume-yes + chroot mountpoint grub-install "${loop_device}" \ --boot-directory=/boot \ --efi-directory=/boot/efi \ diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image.binary index 8998df68..96bf83a5 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image.binary @@ -136,6 +136,7 @@ fi if [ "$ARCH" = "s390x" ]; then # Do ZIPL install bits chroot mountpoint apt-get -qqy install s390-tools sysconfig-hardware + chroot mountpoint apt-get autoremove --purge --assume-yes # Write out cloudy zipl.conf for future kernel updates cat << EOF > mountpoint/etc/zipl.conf diff --git a/live-build/ubuntu-cpc/hooks.d/base/wsl.binary b/live-build/ubuntu-cpc/hooks.d/base/wsl.binary index 05f51e30..8ce28140 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/wsl.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/wsl.binary @@ -35,6 +35,7 @@ cp -a rootfs.dir $rootfs_dir setup_mountpoint $rootfs_dir env DEBIAN_FRONTEND=noninteractive chroot $rootfs_dir apt-get -y -qq install ubuntu-wsl +env DEBIAN_FRONTEND=noninteractive chroot $rootfs_dir apt-get autoremove --purge --assume-yes create_manifest $rootfs_dir livecd.ubuntu-cpc.wsl.rootfs.manifest teardown_mountpoint $rootfs_dir