livecd-rootfs/live-build/ubuntu-server/hooks/032-installer-squashfs.binary
Steve Langasek 7bff7abdf4 Import patches-unapplied version 2.466 to ubuntu/artful-proposed
Imported using git-ubuntu import.

Changelog parent: 8168b7c92a3ef263d18cc2654b52b47d27b7f339

New changelog entries:
  * ubuntu-server: drop hard-coded test key from the subiquity overlay in
    favor of the generic-classic assertion from the store.
  * move snap assertion handling into the generic build script (and, in
    the process, from the subiquity overlay to the base squashfs).
  * add ubuntu-mate to the set of projects we add snap model assertions to.
  * Factor out grub-related diversions and use them consistently, so we
    don't end up with wrong os-probe output in our grub.cfg.
  * Fix the force-partuuid handling to create the file under
    /etc/default/grub.d/ with a .cfg extension as grub expects; it's unclear
    how this ever worked without.
2017-10-05 06:43:36 +00:00

83 lines
1.8 KiB
Bash
Executable File

#!/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
# Prepare installer layer.
# Install any requirements for the installer, for things we don't want
# to see on the installed system
chroot $SQUASH_ROOT apt-get update
chroot $SQUASH_ROOT apt-get -y install user-setup
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 --channel=edge 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 <<EOF > /var/lib/snapd/seed/seed.yaml
snaps:
- name: core
channel: stable
file: ${CORE_SNAP}
- name: subiquity
channel: edge
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 )