#!/bin/bash -ex # vi: ts=4 noexpandtab # # Generate a squashfs root and manifest set -x echo "032-installer-squashfs.binary" case $IMAGE_TARGETS in ""|*squashfs*) ;; *) echo "Skipping squashfs build" exit 0 ;; esac if [ -n "$SUBARCH" ]; then echo "Skipping rootfs build for subarch flavor build" exit 0 fi . config/functions SQUASH_ROOT=binary/boot/squashfs.dir OVERLAY_ROOT=binary/overlay mkdir -p "$OVERLAY_ROOT" # Create an installer squashfs layer mount_overlay "$SQUASH_ROOT/" "$OVERLAY_ROOT/" "$SQUASH_ROOT/" setup_mountpoint binary/boot/squashfs.dir # Override JobRunningTimeoutSec to 0s on the .device unit that # subiquity_config.mount depends on to avoid a 5s delay on switching # to a new VT when there is no device there (LP: #1750117). # It would be better to have this in ../includes.binary/overlay but # you can't have backslashes in filenames in bzr branches! DEVICE_UNIT_NAME='dev-disk-by\x2duuid-00c629d6\x2d06ab\x2d4dfd\x2db21e\x2dc3186f34105d.device' mkdir -p "$SQUASH_ROOT/etc/systemd/system/$DEVICE_UNIT_NAME.d" cat > "$SQUASH_ROOT/etc/systemd/system/$DEVICE_UNIT_NAME.d/override.conf" < "${INITRAMFS}.new" mv "${INITRAMFS}.new" "${INITRAMFS}" done # and lb_binary_linux-image: mv $SQUASH_ROOT/boot/initrd.img-* binary/casper/ # to replace the previously built one with it. chroot $SQUASH_ROOT apt-get -y install curtin # Don't let cloud-init run in the live session. touch $SQUASH_ROOT/etc/cloud/cloud-init.disabled # Do the snap seeding dance. chroot $SQUASH_ROOT mkdir -p /var/lib/snapd/seed/snaps /var/lib/snapd/seed/assertions chroot $SQUASH_ROOT sh -c ' set -x; cd /var/lib/snapd/seed; sudo SNAPPY_STORE_NO_CDN=1 snap download core; sudo SNAPPY_STORE_NO_CDN=1 snap download subiquity; CORE_SNAP=$(ls -1 core*.snap); SUBIQUITY_SNAP=$(ls -1 subiquity*.snap); mv *.assert /var/lib/snapd/seed/assertions/; mv *.snap /var/lib/snapd/seed/snaps/; cat < /var/lib/snapd/seed/seed.yaml snaps: - name: core channel: stable file: ${CORE_SNAP} - name: subiquity channel: stable classic: true file: ${SUBIQUITY_SNAP} EOF ' teardown_mountpoint "$SQUASH_ROOT" # Then unmount the overlay umount "$SQUASH_ROOT" squashfs_f="${PWD}/livecd.${PROJECT}.installer.squashfs" (cd "$OVERLAY_ROOT/" && mksquashfs . ${squashfs_f} \ -no-progress -xattrs -comp xz )