Fix daily-dangerous builds:

* Fix daily-dangerous builds:
  - Copy hooks.
  - Mangle the channel of seeded snaps to use the edge risk of whichever
    track they are taken from.
  - Update the dangerous model to reference tracks that actually exist.
  - Include providers of content plugs when seeding snaps and creating
    TPMFDE system.
  - Do not attempt to build an UEFI boot image or hyperv desktop image for
    this project/subproject combination.
This commit is contained in:
Michael Hudson-Doyle 2025-09-15 09:09:02 +12:00
parent 762108eaef
commit 785c4c53d3
7 changed files with 73 additions and 30 deletions

14
debian/changelog vendored
View File

@ -1,3 +1,17 @@
livecd-rootfs (25.10.21) UNRELEASED; urgency=medium
* Fix daily-dangerous builds:
- Copy hooks.
- Mangle the channel of seeded snaps to use the edge risk of whichever
track they are taken from.
- Update the dangerous model to reference tracks that actually exist.
- Include providers of content plugs when seeding snaps and creating
TPMFDE system.
- Do not attempt to build an UEFI boot image or hyperv desktop image for
this project/subproject combination.
-- Michael Hudson-Doyle <michael.hudson@ubuntu.com> Mon, 15 Sep 2025 09:03:11 +1200
livecd-rootfs (25.10.20) questing; urgency=medium livecd-rootfs (25.10.20) questing; urgency=medium
* edubuntu: use dracut * edubuntu: use dracut

View File

@ -52,6 +52,7 @@ mkdir -p config
cp -af /usr/share/livecd-rootfs/live-build/functions config/functions cp -af /usr/share/livecd-rootfs/live-build/functions config/functions
cp -af /usr/share/livecd-rootfs/live-build/lb_*_layered config/ cp -af /usr/share/livecd-rootfs/live-build/lb_*_layered config/
cp -af /usr/share/livecd-rootfs/live-build/snap-seed-parse.py config/snap-seed-parse cp -af /usr/share/livecd-rootfs/live-build/snap-seed-parse.py config/snap-seed-parse
cp -af /usr/share/livecd-rootfs/live-build/snap-seed-missing-providers.py config/snap-seed-missing-providers
cp -af /usr/share/livecd-rootfs/live-build/expand-task config/expand-task cp -af /usr/share/livecd-rootfs/live-build/expand-task config/expand-task
cp -af /usr/share/livecd-rootfs/live-build/squashfs-exclude-files config/ cp -af /usr/share/livecd-rootfs/live-build/squashfs-exclude-files config/
@ -1520,7 +1521,7 @@ fi
case $PROJECT:${SUBPROJECT:-} in case $PROJECT:${SUBPROJECT:-} in
ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled| \ ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled| \
ubuntu-wsl:*|ubuntu-mini-iso:*|ubuntu:|ubuntu-oem:*| \ ubuntu-wsl:*|ubuntu-mini-iso:*|ubuntu:|ubuntu:dangerous|ubuntu-oem:*| \
ubuntustudio:*|edubuntu:*|ubuntu-budgie:*|ubuntucinnamon:*|xubuntu:*| \ ubuntustudio:*|edubuntu:*|ubuntu-budgie:*|ubuntucinnamon:*|xubuntu:*| \
ubuntukylin:*|ubuntu-mate:*|ubuntu-core-installer:*|lubuntu:*) ubuntukylin:*|ubuntu-mate:*|ubuntu-core-installer:*|lubuntu:*)
# Ensure that most things e.g. includes.chroot are copied as is # Ensure that most things e.g. includes.chroot are copied as is

View File

@ -567,8 +567,8 @@ _snap_post_process() {
# If the 'core' snap is not present, assume we are coreXX-only and # If the 'core' snap is not present, assume we are coreXX-only and
# install the snapd snap. # install the snapd snap.
channel=stable channel=stable
if [ $SUBPROJECT = "dangerous" ]; then if [ "$SUBPROJECT" = "dangerous" ]; then
channel=$CHANNEL channel=edge
fi fi
if [ ! -f ${snaps_dir}/core_[0-9]*.snap ]; then if [ ! -f ${snaps_dir}/core_[0-9]*.snap ]; then
_snap_preseed $CHROOT_ROOT snapd "$channel" _snap_preseed $CHROOT_ROOT snapd "$channel"
@ -667,7 +667,12 @@ _snap_preseed() {
fi fi
fi fi
_snap_preseed $CHROOT_ROOT $core_snap stable local core_channel=stable
if [ "$SUBPROJECT" = "dangerous" ]; then
core_channel=edge
fi
_snap_preseed $CHROOT_ROOT $core_snap $core_channel
fi fi
;; ;;
esac esac
@ -796,6 +801,14 @@ snap_preseed() {
esac esac
fi fi
if [ "$SUBPROJECT" = "dangerous" ]; then
# For the dangerous ISOs we want to include edge versions of all the
# snaps. Many snaps have a channel like "1/stable/ubuntu-X.Y" in the
# seed but the ubuntu-X.Y branches don't usually exist in the edge
# channel so strip that off as well.
CHANNEL=$(echo $CHANNEL | sed -e s/stable.*/edge/)
fi
# At this point: # At this point:
# SNAP_NAME is just the snap name # SNAP_NAME is just the snap name
# SNAP is either $SNAP_NAME or $SNAP_NAME/classic for classic confined # SNAP is either $SNAP_NAME or $SNAP_NAME/classic for classic confined
@ -854,6 +867,17 @@ snap_validate_seed() {
fi fi
if [ -e "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" ]; then if [ -e "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" ]; then
if [ "${SUBPROJECT}" = "dangerous" ]; then
# When we include a snap from edge instead of stable, it may have
# require different content provider snaps to be installed and it
# is not reasonable to have the seed contain this. So run this
# script which figures out which content provider snaps are
# missing and include them.
./config/snap-seed-missing-providers "${CHROOT_ROOT}/var/lib/snapd/seed/" >> config/missing-providers
while read snap; do
_snap_preseed chroot "${snap}" edge
done < config/missing-providers
fi
snap debug validate-seed "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml" snap debug validate-seed "${CHROOT_ROOT}/var/lib/snapd/seed/seed.yaml"
/usr/lib/snapd/snap-preseed --reset $(realpath "${CHROOT_ROOT}") /usr/lib/snapd/snap-preseed --reset $(realpath "${CHROOT_ROOT}")
/usr/lib/snapd/snap-preseed $(realpath "${CHROOT_ROOT}") /usr/lib/snapd/snap-preseed $(realpath "${CHROOT_ROOT}")

View File

@ -30,7 +30,7 @@ if [ "$ARCH" = "riscv64" ]; then
fi fi
case ${PROJECT:-}:${SUBPROJECT:-} in case ${PROJECT:-}:${SUBPROJECT:-} in
ubuntu:) ubuntu:|ubuntu:dangerous)
echo "We don't create EFI images for Ubuntu Desktop." echo "We don't create EFI images for Ubuntu Desktop."
exit 0 exit 0
;; ;;

View File

@ -12,11 +12,6 @@ case ${PASS:-} in
;; ;;
esac esac
if [ -n "${SUBPROJECT:-}" ]; then
echo "We don't run Ubuntu Desktop hooks for this project."
exit 0
fi
. config/binary . config/binary
. config/functions . config/functions
@ -38,9 +33,18 @@ fi
# env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 brand-id=canonical model=ubuntu-classic-2410-amd64 > config/classic-model.model # env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 brand-id=canonical model=ubuntu-classic-2410-amd64 > config/classic-model.model
model=/usr/share/livecd-rootfs/live-build/${PROJECT}/ubuntu-classic-amd64.model model=/usr/share/livecd-rootfs/live-build/${PROJECT}/ubuntu-classic-amd64.model
prepare_args=
# for the dangerous subproject, we need the dangerous model! # for the dangerous subproject, we need the dangerous model!
if [ $SUBPROJECT = "dangerous" ]; then if [ $SUBPROJECT = "dangerous" ]; then
# As with the "classically" seeded snaps, snaps from the edge channel may
# require different content snaps to be installed, so they must be
# included in the system as well. We just use the same list as was
# computed in snap_validate_seed.
model=/usr/share/livecd-rootfs/live-build/${PROJECT}/ubuntu-classic-amd64-dangerous.model model=/usr/share/livecd-rootfs/live-build/${PROJECT}/ubuntu-classic-amd64-dangerous.model
while read snap; do
prepare_args="$prepare_args --snap=${snap}=edge"
done < config/missing-providers
fi fi
channel="" channel=""
@ -52,7 +56,7 @@ fi
# snap versions regardless of phasing status # snap versions regardless of phasing status
env SNAPPY_STORE_NO_CDN=1 UBUNTU_STORE_COHORT_KEY="+" snap prepare-image \ env SNAPPY_STORE_NO_CDN=1 UBUNTU_STORE_COHORT_KEY="+" snap prepare-image \
--classic $model $channel chroot --classic $model $channel ${prepare_args:+$prepare_args} chroot
mv chroot/system-seed/systems/* chroot/system-seed/systems/enhanced-secureboot-desktop mv chroot/system-seed/systems/* chroot/system-seed/systems/enhanced-secureboot-desktop
rsync -av chroot/system-seed/{systems,snaps} chroot/var/lib/snapd/seed rsync -av chroot/system-seed/{systems,snaps} chroot/var/lib/snapd/seed

View File

@ -3,7 +3,7 @@
echo "Creating Hyper-V image with Desktop..." echo "Creating Hyper-V image with Desktop..."
case ${SUBPROJECT:-} in case ${SUBPROJECT:-} in
minimized|"") minimized|dangerous|"")
echo "We don't create minimized images for $0." echo "We don't create minimized images for $0."
exit 0 exit 0
;; ;;

View File

@ -40,55 +40,55 @@ snaps:
name: bare name: bare
type: base type: base
- -
default-channel: 1/edge/ubuntu-25.10 default-channel: 1/edge
id: EI0D1KHjP8XiwMZKqSjuh6W8zvcowUVP id: EI0D1KHjP8XiwMZKqSjuh6W8zvcowUVP
name: firmware-updater name: firmware-updater
type: app type: app
- -
default-channel: 1/edge/ubuntu-25.10 default-channel: 1/edge
id: FppXWunWzuRT2NUT9CwoBPNJNZBYOCk0 id: FppXWunWzuRT2NUT9CwoBPNJNZBYOCk0
name: desktop-security-center name: desktop-security-center
type: app type: app
- -
default-channel: 1/edge/ubuntu-25.10 default-channel: 1/edge
id: aoc5lfC8aUd2VL8VpvynUJJhGXp5K6Dj id: aoc5lfC8aUd2VL8VpvynUJJhGXp5K6Dj
name: prompting-client name: prompting-client
type: app type: app
- -
default-channel: 2/edge/ubuntu-25.10 default-channel: 2/edge
id: gjf3IPXoRiipCu9K0kVu52f0H56fIksg id: gjf3IPXoRiipCu9K0kVu52f0H56fIksg
name: snap-store name: snap-store
type: app type: app
- -
default-channel: latest/edge/ubuntu-25.10 default-channel: latest/edge
id: jZLfBRzf1cYlYysIjD2bwSzNtngY0qit id: jZLfBRzf1cYlYysIjD2bwSzNtngY0qit
name: gtk-common-themes name: gtk-common-themes
type: app type: app
- -
default-channel: latest/edge/ubuntu-25.10 default-channel: latest/edge
id: 3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk id: 3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk
name: firefox name: firefox
type: app type: app
- -
default-channel: latest/edge/ubuntu-25.10 default-channel: latest/edge
id: lATO8HzwVvrAPrlZRAWpfyrJKlAJrZS3 id: lATO8HzwVvrAPrlZRAWpfyrJKlAJrZS3
name: gnome-42-2204 name: gnome-42-2204
type: app type: app
- -
default-channel: latest/edge/ubuntu-25.10 default-channel: latest/edge
id: IrwRHakqtzhFRHJOOPxKVPU0Kk7Erhcu id: IrwRHakqtzhFRHJOOPxKVPU0Kk7Erhcu
name: snapd-desktop-integration name: snapd-desktop-integration
type: app type: app
timestamp: 2025-05-01T12:00:00.0Z timestamp: 2025-05-01T12:00:00.0Z
sign-key-sha3-384: 9tydnLa6MTJ-jaQTFUXEwHl1yRx7ZS4K5cyFDhYDcPzhS7uyEkDxdUjg9g08BtNn sign-key-sha3-384: 9tydnLa6MTJ-jaQTFUXEwHl1yRx7ZS4K5cyFDhYDcPzhS7uyEkDxdUjg9g08BtNn
AcLBXAQAAQoABgUCaKKyiQAKCRDgT5vottzAEt+LD/9GTgoaYQg0qYohdnYYQkiWJbtNcZgLRpUf AcLBXAQAAQoABgUCaL9OoAAKCRDgT5vottzAEnYyD/9CfnhmFu+aiOSDMf14Ws6xgxlwJ24wKbR9
gPswZsBzmDLbH0XyLWB9h32gDyZ6Gdt3c9uK2hqCaNTaLJyf5eGs/7zjs9lVmEf3MNSr9FGx6Vek DHLlO5LO47pgA46Yt3NO8ev8ZAvnMZmypiNnDE9o0m2cPpdEsg5nFZ4y8DTjedj7J2islGbFKrZk
i+NPeOEjrmwjMXzi9FnTDTJzW0cMzCEzYiTHWRF8K5WCVumuzMMUCihZbuHvZCjXoIJ+RrSBMvbE o7oejqGYWtwHGV4D5RAEgBAwlo/dOkKkG/7rMivqXuCd/L7vlVNnULt+nOZimh/QSZxxMY0WpPeg
udzmJ0NIEgCGA+r32kEkcauNTrMwXdosdTYhrKy/dcy6SrACaZzvQAwPYXy3UJEDmz6qQQ/94G9s +8wXWV4IOlqyJR/DseY86/COvP05cj+YosBHjdP8y6r5CKXi7RLBeG03n6SIJy+d4gxytfYdUE0F
5P/bqrOZVoL22H9a/6WnEulHyCNAVlotpbY3Dij1yHp5KEiFCuREP/MauLdONCY+snimwxpItm7L gubBkFJDVwHkIyyFfZHtSaMc/hgOrTG3XOHfSdHya4aEGFBa7VcfsGnIZrvrvVBOTgyW/SPY+w6T
B4D92BTkhe9noiyRbSU3fLrMJGY//PKCxkQMVyvkx/aUnyqeySRCP6U7U6t09P2/WzmJULT+a+9N ffFXRf0bMF60H31LYyDvva783hMhpY3mDWl4w31aMF7Om9ZeF7p52Yc6w2Es4tkwJnyXX9TD4cts
pgXrXt3k69zqI0U74R3+JwiU/VrZq6cssdwx8unKYtoOT5O3G0b7q50Lv2RyNHQSjrlSU397HKkQ +0HxKupORpZe5WvJasLZKq6SQaeF19XCjW8YVgNCMVP9O/nBCdu4uDlu0Gmo9PMEPU2LHBXYsXyw
Gnnb/w4caV+O/cKlDlXNXijZI/kxfP+tKqRHMSRLmV3I8W+/nh6YE4/NMiXVicej3tTaPtWlBI+9 hfGew+ORbaEj9iBQwFNMUXKgOhNa9KubYLo4GgjpN4HY5BXqw0f9hPHlsWg28QxC0BqyK3B8Ujhv
hj0Chtlk+wWD+9MjC1suJh4XLHAXbYJczSFdb3qcQq7f64v70sNoLzW4ekGUlSpbazNaX7P+Liov NGZTTg9OJ2h/EVJXwrOaYv0S/3xRyy/1tNHvKchL6x3mjLOVt/EwkkkW8WmxxUHV1LFTvKxEs+jC
VBGXSpziQJuF4y/BSU8tCweJExhkibFEBar5SCKbvw== j1Z5SNRDTMAoW0IQpt81dhLqHqSQ8blNiDU3w0ZQqA==