diff --git a/debian/changelog b/debian/changelog index aeb1824d..9f710df2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +livecd-rootfs (2.523) bionic; urgency=medium + + * Allow the configuration of model assertions independent of preseeding + snaps. + * Allow non-generic model assertions to be configured. + * Don't include the name of the model assertion in the path we write it out + to (LP: #1764541). + + -- Daniel Watkins Thu, 19 Apr 2018 11:44:38 -0400 + livecd-rootfs (2.522) bionic; urgency=medium * Remove landscape-common from minimal image, and handle restoring it in diff --git a/live-build/functions b/live-build/functions index f3e1df0b..3363bf2a 100644 --- a/live-build/functions +++ b/live-build/functions @@ -412,23 +412,29 @@ EOF (cd $snaps_dir; ls -1 ${SNAP_NAME}_*.snap) >> $seed_yaml } -snap_prepare() { - # Configure basic snapd assertions and pre-seeds the 'core' snap +snap_prepare_assertions() { + # Configure basic snapd assertions local CHROOT_ROOT=$1 + # A colon-separated string of brand:model to be used for the image's model + # assertion + local CUSTOM_BRAND_MODEL=$2 local seed_dir="$CHROOT_ROOT/var/lib/snapd/seed" local snaps_dir="$seed_dir/snaps" local assertions_dir="$seed_dir/assertions" - local model_assertion="$assertions_dir/generic-classic.model" - local account_key_assertion="$assertions_dir/generic.account-key" - local account_assertion="$assertions_dir/generic.account" + local model_assertion="$assertions_dir/model" + local account_key_assertion="$assertions_dir/account-key" + local account_assertion="$assertions_dir/account" mkdir -p "$assertions_dir" mkdir -p "$snaps_dir" + local brand="$(echo $CUSTOM_BRAND_MODEL | cut -d: -f 1)" + local model="$(echo $CUSTOM_BRAND_MODEL | cut -d: -f 2)" + if ! [ -e "$model_assertion" ] ; then snap known --remote model series=16 \ - model=generic-classic brand-id=generic \ + model=$model brand-id=$brand \ > "$model_assertion" fi @@ -446,6 +452,19 @@ snap_prepare() { snap known --remote account account-id=$account \ > "$account_assertion" fi +} + +snap_prepare() { + # Configure basic snapd assertions and pre-seeds the 'core' snap + local CHROOT_ROOT=$1 + # Optional. If set, should be a colon-separated string of brand:model to be + # used for the image's model assertion + local CUSTOM_BRAND_MODEL=${2:-generic:generic-classic} + + local seed_dir="$CHROOT_ROOT/var/lib/snapd/seed" + local snaps_dir="$seed_dir/snaps" + + snap_prepare_assertions "$CHROOT_ROOT" "$CUSTOM_BRAND_MODEL" # Download the core snap if ! [ -f $snaps_dir/core_[0-9]*.snap ] ; then