mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-02-23 11:21:12 +00:00
snap seeding: Defer validation for regular image builds
When getting the list of snaps to include on an image via germinate, we process the snaps in alphabetical order. Currently we seed several packages `gnome-foo` and also `gtk-common-themes`, the default provider of `gtk-3-themes`. Since `gtk-common-themes` is alphabetically after `gnome-foo`, the `seed.yaml` we generate is invalid when we are part way through generating. What we really care about, though, is not that the `seed.yaml` is always valid at every step, but it is that it is valid at the *end* of seeding. So for the germinate case, let's defer validation to happen once at the end. Other callsites of `snap_preseed`, where callers are careful to seed snaps in the right order, are unaffected by this.
This commit is contained in:
parent
57a13cc16c
commit
b68a5abf65
@ -83,10 +83,11 @@ Setup_cleanup
|
||||
preinstall_snaps() {
|
||||
lb chroot_resolv install
|
||||
snap_prepare chroot
|
||||
|
||||
|
||||
for snap in "$@"; do
|
||||
snap_preseed chroot "${snap}"
|
||||
SNAP_NO_VALIDATE_SEED=1 snap_preseed chroot "${snap}"
|
||||
done
|
||||
snap_validate_seed chroot
|
||||
lb chroot_resolv remove
|
||||
}
|
||||
|
||||
|
@ -650,13 +650,22 @@ snap_preseed() {
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# Do basic validation of generated snapd seed.yaml, doing it here
|
||||
# means we catch all the places(tm) that snaps are added but the
|
||||
# downside is that each time a snap is added the seed must be valid,
|
||||
# i.e. snaps with bases need to add bases first etc.
|
||||
if [ -e chroot/var/lib/snapd/seed/seed.yaml ]; then
|
||||
snap debug validate-seed "$CHROOT_ROOT/var/lib/snapd/seed/seed.yaml"
|
||||
# i.e. snaps with bases need to add bases first etc
|
||||
#
|
||||
# Skip validation by setting SNAP_NO_VALIDATE_SEED=1.
|
||||
if [ -z "${SNAP_NO_VALIDATE_SEED}" ]; then
|
||||
snap_validate_seed "${CHROOT_ROOT}"
|
||||
fi
|
||||
}
|
||||
|
||||
snap_validate_seed() {
|
||||
local CHROOT_ROOT=$1
|
||||
|
||||
if [ -e "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" ]; then
|
||||
snap debug validate-seed "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml"
|
||||
fi
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user