diff --git a/live-build/auto/build b/live-build/auto/build index 7b0bcbfd..b967f4e0 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -20,19 +20,17 @@ fi # Link output files somewhere launchpad-buildd will be able to find them. PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}" -if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then - # Use ubuntu-image instead of live-build +if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ] \ + || [ "$PROJECT" = "ubuntu-core-desktop" ]; then + # Use ubuntu-image instead (or as part) of live-build export SNAPPY_STORE_NO_CDN=1 - LB_UBUNTU_IMAGE_CHANNEL="${LB_UBUNTU_IMAGE_CHANNEL:-candidate}" + LB_UBUNTU_IMAGE_CHANNEL="${LB_UBUNTU_IMAGE_CHANNEL:-stable}" snap install \ --classic --channel="$LB_UBUNTU_IMAGE_CHANNEL" ubuntu-image - # TODO: eventually, this should be handled by a single ubuntu-image - # call without having to do a conditional on ubuntu-core/classic. - # We could already do that, but then we'd still have to do the - # compressing for the core images. if [ "$PROJECT" = "ubuntu-core" ]; then + # Ubuntu Core images /snap/bin/ubuntu-image snap $UBUNTU_IMAGE_ARGS \ -O output "$PREFIX".model-assertion # XXX: currently we only have one image generated, but really @@ -41,8 +39,43 @@ if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then mv output/*.img "$PREFIX".img xz -0 -T4 "$PREFIX".img mv output/seed.manifest "$PREFIX".manifest + + # All the builds are finished now, exit + exit 0 + elif [ "$PROJECT" = "ubuntu-core-desktop" ]; then + # Ubuntu Core Desktop payload image + # Special case for ubuntu-core-desktop - we need to call + # ubuntu-image twice, once for the core image payload and + # then for the actual image. + echo "Building the core image payload" + cd config/ + /snap/bin/ubuntu-image snap $UBUNTU_IMAGE_PAYLOAD_ARGS \ + -O output ubuntu-core-desktop*.model-assertion + mv output/*.img pc.img + xz -0 -T4 pc.img + rm -rf output/ + + # Prepare the source catalogue + cat install-sources-in.yaml | sed "s/@SIZE@/$(stat -c%s pc.img.xz)/g" > ../"$PREFIX".install-sources.yaml + + # We need to rename the image file so that it can be pulled + # by the builder. + mv pc.img.xz ../"$PREFIX".img.xz + + # We need to make sure the autoinstall file is also exported. + mv autoinstall.yaml ../"$PREFIX".autoinstall.yaml + + # Useful to have the model-assertion exported as well. + mv ubuntu-core-desktop*.model-assertion ../"$PREFIX".model-assertion + + # Important: return to the previous directory + cd ../ + + # Payload build finished, but now we need to build the rest with the + # usual live-build tools. else - /snap/bin/ubuntu-image classic --debug $UBUNTU_IMAGE_ARGS \ + # Ubuntu classic preinstalled images + /snap/bin/ubuntu-image classic --verbose $UBUNTU_IMAGE_ARGS \ -O output "$IMAGE_DEFINITION" # Since the output of the ubuntu-image call can vary based on what # kind of an image we build, the safest bet is to 'export' all the @@ -59,9 +92,10 @@ if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then mv $artifact "$PREFIX".$extension done [ -f $PREFIX.img ] && xz -0 -T4 "$PREFIX".img - fi - exit 0 + # All the builds are finished now, exit + exit 0 + fi fi # Setup cleanup function diff --git a/live-build/auto/config b/live-build/auto/config index c80a4646..b6f091cf 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -528,8 +528,13 @@ case $IMAGEFORMAT in else # classic images + # Sometimes per-project quirks are necessary IMAGE_PROJECT=$PROJECT - [ "$IMAGE_PROJECT" = "ubuntu-cpc" ] && IMAGE_PROJECT="ubuntu-server" + case "$IMAGE_PROJECT" in + ubuntu-cpc) + IMAGE_PROJECT="ubuntu-server" + ;; + esac LB_UBUNTU_IMAGES_REPO="${LB_UBUNTU_IMAGES_REPO:-git://git.launchpad.net/ubuntu-images}" LB_UBUNTU_IMAGES_BRANCH="${LB_UBUNTU_IMAGES_BRANCH:-$SUITE}" @@ -832,6 +837,26 @@ case $PROJECT in esac ;; + ubuntu-core-desktop) + touch config/universe-enabled + KERNEL_FLAVOURS='generic-hwe-22.04' + PASSES_TO_LAYERS="true" + + # the minimal layer, for minimal installs + add_task minimal minimal + # the live layer, contains all packages for the live session installer + add_snap minimal.live ubuntu-core-desktop-installer/classic core22 snapd + add_package minimal.live linux-$KERNEL_FLAVOURS plymouth-theme-spinner squashfs-tools snapd cloud-init gsettings-desktop-schemas yaru-theme-gtk lshw + + echo "Configuring for additional payload preparation" + UBUNTU_IMAGE_PAYLOAD_ARGS="--image-size 12G" + EXTRA_SNAPS="$EXTRA_SNAPS evince firefox gnome-calculator gnome-characters gnome-clocks gnome-font-viewer gnome-logs gnome-system-monitor gnome-text-editor gnome-weather loupe snapd-desktop-integration snap-store ubuntu-core-desktop-init workshops" + for snap in $EXTRA_SNAPS; do + UBUNTU_IMAGE_PAYLOAD_ARGS="$UBUNTU_IMAGE_PAYLOAD_ARGS --snap $snap" + done + echo "UBUNTU_IMAGE_PAYLOAD_ARGS=\"$UBUNTU_IMAGE_PAYLOAD_ARGS\"" >> config/common + ;; + ubuntu-oem) HAS_MINIMAL=yes MINIMAL_NAME="Ubuntu Desktop for OEM (minimal)" @@ -1411,7 +1436,7 @@ case $PROJECT:${SUBPROJECT:-} in ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled| \ ubuntu-wsl:*|ubuntu-mini-iso:*|ubuntu:|ubuntu-oem:*| \ ubuntustudio-dvd:*|edubuntu:*|ubuntu-budgie:*|ubuntucinnamon:*|xubuntu:*| \ - ubuntukylin:*|ubuntu-mate:*) + ubuntukylin:*|ubuntu-mate:*|ubuntu-core-desktop:*) # Ensure that most things e.g. includes.chroot are copied as is for entry in /usr/share/livecd-rootfs/live-build/${PROJECT}/*; do case $entry in diff --git a/live-build/ubuntu-core-desktop/autoinstall.yaml b/live-build/ubuntu-core-desktop/autoinstall.yaml new file mode 100644 index 00000000..5f1237fa --- /dev/null +++ b/live-build/ubuntu-core-desktop/autoinstall.yaml @@ -0,0 +1,12 @@ +version: 1 +source: + id: ubuntu-core-desktop + search_drivers: false +interactive-sections: + - locale + - keyboard + - storage +identity: + username: ubuntu + password: '$1$zB3Qu2ef$TKLhQpQlKRyCZGUdHFFMH/' + hostname: ubuntu \ No newline at end of file diff --git a/live-build/ubuntu-core-desktop/hooks/020-ubuntu-live.chroot_early b/live-build/ubuntu-core-desktop/hooks/020-ubuntu-live.chroot_early new file mode 100755 index 00000000..47b82622 --- /dev/null +++ b/live-build/ubuntu-core-desktop/hooks/020-ubuntu-live.chroot_early @@ -0,0 +1,21 @@ +#! /bin/sh + +set -eu + +case ${PASS:-} in + minimal.live) + ;; + *) + exit 0 + ;; +esac + +mkdir -p "/etc/initramfs-tools/conf.d" + +cat < /etc/initramfs-tools/conf.d/casperize.conf +export CASPER_GENERATE_UUID=1 +EOF + +cat < /etc/initramfs-tools/conf.d/default-layer.conf +LAYERFS_PATH=${PASS}.squashfs +EOF diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg new file mode 100644 index 00000000..e9571afd --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg @@ -0,0 +1,117 @@ +# The top level settings are used as module +# and system configuration. + +# A set of users which may be applied and/or used by various modules +# when a 'default' entry is found it will reference the 'default_user' +# from the distro configuration specified below +users: + - default + +# If this is set, 'root' will not be able to ssh in and they +# will get a message to login instead as the default $user +disable_root: true + +# This will cause the set+update hostname module to not operate (if true) +preserve_hostname: true + +ssh_pwauth: yes +chpasswd: + expire: false + +# This is the initial network config. +# It can be overwritten by cloud-init or subiquity. +network: + version: 2 + ethernets: + zz-all-en: + match: + name: "en*" + dhcp4: true + zz-all-eth: + match: + name: "eth*" + dhcp4: true + +# We used to have a custom final_message here. Just use the default instead. + +# Example datasource config +# datasource: +# Ec2: +# metadata_urls: [ 'blah.com' ] +# timeout: 5 # (defaults to 50 seconds) +# max_wait: 10 # (defaults to 120 seconds) + +# The modules that run in the 'init' stage +cloud_init_modules: + - bootcmd + - write-files + - ca-certs + - rsyslog + - users-groups + - ssh + +# The modules that run in the 'config' stage +cloud_config_modules: +# Emit the cloud config ready event +# this can be used by upstart jobs for 'start on cloud-config'. + - ssh-import-id + - set-passwords + - timezone + - disable-ec2-metadata + - runcmd + +# The modules that run in the 'final' stage +cloud_final_modules: + - scripts-per-once + - scripts-user + - ssh-authkey-fingerprints + - keys-to-console + - phone-home + - final-message + +# System and/or distro specific settings +# (not accessible to handlers/transforms) +system_info: + # This will affect which distro class gets used + distro: ubuntu + # Default user name + that default users groups (if added/used) + default_user: + name: installer + lock_passwd: false + gecos: Ubuntu + groups: [adm, audio, cdrom, dialout, dip, floppy, lxd, netdev, plugdev, sudo, video] + sudo: ["ALL=(ALL) NOPASSWD:ALL"] + shell: /usr/bin/subiquity-shell + # Automatically discover the best ntp_client + ntp_client: auto + # Other config here will be given to the distro class and/or path classes + paths: + cloud_dir: /var/lib/cloud/ + templates_dir: /etc/cloud/templates/ + upstart_dir: /etc/init/ + package_mirrors: + - arches: [i386, amd64] + failsafe: + primary: http://archive.ubuntu.com/ubuntu + security: http://security.ubuntu.com/ubuntu + search: + primary: + - http://%(ec2_region)s.ec2.archive.ubuntu.com/ubuntu/ + - http://%(availability_zone)s.clouds.archive.ubuntu.com/ubuntu/ + - http://%(region)s.clouds.archive.ubuntu.com/ubuntu/ + security: [] + - arches: [arm64, armel, armhf] + failsafe: + primary: http://ports.ubuntu.com/ubuntu-ports + security: http://ports.ubuntu.com/ubuntu-ports + search: + primary: + - http://%(ec2_region)s.ec2.ports.ubuntu.com/ubuntu-ports/ + - http://%(availability_zone)s.clouds.ports.ubuntu.com/ubuntu-ports/ + - http://%(region)s.clouds.ports.ubuntu.com/ubuntu-ports/ + security: [] + - arches: [default] + failsafe: + primary: http://ports.ubuntu.com/ubuntu-ports + security: http://ports.ubuntu.com/ubuntu-ports + ssh_svcname: ssh diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg.d/06_quiet.cfg b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg.d/06_quiet.cfg new file mode 100644 index 00000000..a614e723 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg.d/06_quiet.cfg @@ -0,0 +1,4 @@ +output: {all: '>> /var/log/cloud-init-output.log'} +no_ssh_fingerprints: true +ssh: + emit_keys_to_console: false diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/journald.conf.d/no-rate-limit.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/journald.conf.d/no-rate-limit.conf new file mode 100644 index 00000000..fbaab956 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/journald.conf.d/no-rate-limit.conf @@ -0,0 +1,2 @@ +[Journal] +RateLimitIntervalSec=0 diff --git "a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/dev-disk-by\\x2duuid-00c629d6\\x2d06ab\\x2d4dfd\\x2db21e\\x2dc3186f34105d.device.d/override.conf" "b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/dev-disk-by\\x2duuid-00c629d6\\x2d06ab\\x2d4dfd\\x2db21e\\x2dc3186f34105d.device.d/override.conf" new file mode 100644 index 00000000..90ac2590 --- /dev/null +++ "b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/dev-disk-by\\x2duuid-00c629d6\\x2d06ab\\x2d4dfd\\x2db21e\\x2dc3186f34105d.device.d/override.conf" @@ -0,0 +1,3 @@ +[Unit] +JobRunningTimeoutSec=0s +Wants=subiquity_config.mount diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-compact.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-compact.conf new file mode 100644 index 00000000..a0701e52 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-compact.conf @@ -0,0 +1,4 @@ +# systemd in 23.04+ uses a newer "compact" format by default which is not +# understood by the systemd libraries from jammy used in the subiquity snap. +[Service] +Environment="SYSTEMD_JOURNAL_COMPACT=0" diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-hardening.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-hardening.conf new file mode 100644 index 00000000..c4262d26 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-hardening.conf @@ -0,0 +1,4 @@ +# systemd in 22.04+ uses "hash table hardening" by default which is not +# understood by the systemd libraries from focal used in the subiquity snap. +[Service] +Environment="SYSTEMD_JOURNAL_KEYED_HASH=0" diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/bin/subiquity-shell b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/bin/subiquity-shell new file mode 100755 index 00000000..d739d86f --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/bin/subiquity-shell @@ -0,0 +1,3 @@ +#!/bin/sh +exec sudo snap run subiquity + diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@.service.d/autologin.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@.service.d/autologin.conf new file mode 100644 index 00000000..a166aab4 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty --noclear -n --autologin ubuntu-server %I $TERM diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@tty1.service b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@tty1.service new file mode 120000 index 00000000..dc1dc0cd --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@tty1.service @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/local-fs.target.wants/media-filesystem.mount b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/local-fs.target.wants/media-filesystem.mount new file mode 120000 index 00000000..0a663081 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/local-fs.target.wants/media-filesystem.mount @@ -0,0 +1 @@ +../media-filesystem.mount \ No newline at end of file diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@.service.d/subiquity-serial.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@.service.d/subiquity-serial.conf new file mode 100644 index 00000000..eebf38b4 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@.service.d/subiquity-serial.conf @@ -0,0 +1,9 @@ +[Unit] +Description=Subiquity, the installer for Ubuntu Server %I +After=snapd.seeded.service +StartLimitInterval=0 + +[Service] +Environment=SNAP_REEXEC=0 +ExecStart= +ExecStart=/usr/bin/snap run subiquity.subiquity-service %I diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@sclp_line0.service.d/subiquity-serial.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@sclp_line0.service.d/subiquity-serial.conf new file mode 100644 index 00000000..56900a35 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@sclp_line0.service.d/subiquity-serial.conf @@ -0,0 +1,4 @@ +[Service] +StandardOutput=tty +ExecStart= +ExecStart=/usr/bin/snap run subiquity --ssh diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snap.subiquity.subiquity-service.service.d/subiquity.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snap.subiquity.subiquity-service.service.d/subiquity.conf new file mode 100644 index 00000000..c1af5666 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snap.subiquity.subiquity-service.service.d/subiquity.conf @@ -0,0 +1,14 @@ +[Unit] +IgnoreOnIsolate=yes +After=systemd-user-sessions.service plymouth-quit-wait.service snap.seeded.service + +[Service] +Environment=SNAP_REEXEC=0 +UtmpIdentifier=tty1 +TTYPath=/dev/tty1 +TTYReset=yes +TTYVHangup=yes +TTYVTDisallocate=yes +KillMode=process +IgnoreSIGPIPE=no +SendSIGHUP=yes diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snapd.service.d/no-reexec.conf b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snapd.service.d/no-reexec.conf new file mode 100644 index 00000000..14a6b477 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snapd.service.d/no-reexec.conf @@ -0,0 +1,2 @@ +[Service] +Environment=SNAP_REEXEC=0 diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/subiquity_config.mount b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/subiquity_config.mount new file mode 100644 index 00000000..af33494b --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/subiquity_config.mount @@ -0,0 +1,4 @@ +[Mount] +What=/dev/disk/by-uuid/00c629d6-06ab-4dfd-b21e-c3186f34105d +Where=/subiquity_config +Type=ext4 diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/systemd-networkd-wait-online b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/systemd-networkd-wait-online new file mode 120000 index 00000000..63b10de4 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/systemd-networkd-wait-online @@ -0,0 +1 @@ +/bin/true \ No newline at end of file diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/meta-data b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/meta-data new file mode 100644 index 00000000..e69de29b diff --git a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/user-data b/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/user-data new file mode 100644 index 00000000..e69de29b diff --git a/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts b/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts new file mode 100644 index 00000000..81684340 --- /dev/null +++ b/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts @@ -0,0 +1,9 @@ +127.0.0.1 localhost.localdomain localhost +::1 localhost6.localdomain6 localhost6 + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts diff --git a/live-build/ubuntu-core-desktop/install-sources-in.yaml b/live-build/ubuntu-core-desktop/install-sources-in.yaml new file mode 100644 index 00000000..9ff1ae04 --- /dev/null +++ b/live-build/ubuntu-core-desktop/install-sources-in.yaml @@ -0,0 +1,11 @@ +- default: true + description: + en: Ubuntu Core Desktop. + id: ubuntu-core-desktop + locale_support: none + name: + en: Ubuntu Core Desktop + path: filesystem.img.xz + type: dd-xz:file + size: @SIZE@ + variant: core diff --git a/live-build/ubuntu-core-desktop/ubuntu-core-desktop-22-amd64.model-assertion b/live-build/ubuntu-core-desktop/ubuntu-core-desktop-22-amd64.model-assertion new file mode 100644 index 00000000..1f0a7ec6 --- /dev/null +++ b/live-build/ubuntu-core-desktop/ubuntu-core-desktop-22-amd64.model-assertion @@ -0,0 +1,187 @@ +type: model +authority-id: canonical +revision: 5 +series: 16 +brand-id: canonical +model: ubuntu-core-desktop-22-amd64 +architecture: amd64 +base: core22-desktop +display-name: Ubuntu Core Desktop 22 (amd64) +grade: signed +snaps: + - + default-channel: 22/stable + id: mZqHskGgGDECRCKP7h7ef3Rl2wTwyNfy + name: pc-desktop + type: gadget + - + default-channel: 23.10/stable + id: pYVQrBcKmBa0mZ4CCN7ExT6jH8rY1hza + name: pc-kernel + type: kernel + - + default-channel: latest/edge/ubuntu-core-desktop + id: PMrrV4ml8uWuEUDBT8dSGnKUYbevVhc4 + name: snapd + type: snapd + - + default-channel: latest/stable + id: qRMmQqNDz8kRUTqFIgqk2RzNNoC7jUZ6 + name: core22-desktop + type: base + - + default-channel: latest/stable + id: LVkazk0JLrL0ivuHRlv3wp3bK1nAgwtN + name: ubuntu-desktop-session + type: app + - + default-channel: latest/stable + id: amcUKQILKXHHTlmSa7NMdnXSx02dNeeT + name: core22 + type: base + - + default-channel: 22/stable + id: RmBXKl6HO6YOC2DE4G2q1JzWImC04EUy + name: network-manager + type: app + - + default-channel: latest/stable + id: EISPgh06mRh1vordZY9OZ34QHdd7OrdR + name: bare + type: base + - + default-channel: latest/stable + id: jZLfBRzf1cYlYysIjD2bwSzNtngY0qit + name: gtk-common-themes + type: app + - + default-channel: latest/stable + id: lATO8HzwVvrAPrlZRAWpfyrJKlAJrZS3 + name: gnome-42-2204 + type: app + - + default-channel: latest/stable + id: m1eQacDdXCthEwWQrESei3Zao3d5gfJF + name: cups + type: app + - + default-channel: latest/stable + id: WJKWBUuCDufOFw2p24tvkbbw02plGkbd + name: ipp-usb + type: app + - + default-channel: 22/stable + id: dVK2PZeOLKA7vf1WPCap9F8luxTk9Oll + name: avahi + type: app + - + default-channel: 22/stable + id: JmzJi9kQvHUWddZ32PDJpBRXUpGRxvNS + name: bluez + type: app + - + default-channel: latest/stable + id: Si21Q1kjaZpyJ8TfGbAnxJ4y6KMv7FuW + name: loupe + presence: optional + type: app + - + default-channel: latest/stable + id: EDFg87ESUg9sAIlm0Vm5Wmr0LjiEonSm + name: evince + presence: optional + type: app + - + default-channel: latest/stable/ubuntu-23.10 + id: 3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk + name: firefox + presence: optional + type: app + - + default-channel: latest/stable + id: J8OcDPQ0JM8dbvk29HRqpWVI9kBw0atG + name: gnome-calculator + presence: optional + type: app + - + default-channel: latest/stable + id: qJcS3UjpF9AMJKWAiKwA5EWbm0y6Uduw + name: gnome-characters + presence: optional + type: app + - + default-channel: latest/stable + id: 8NtSF2nXW6krsxbXBYydy1j985k6ZsVK + name: gnome-clocks + presence: optional + type: app + - + default-channel: latest/stable + id: BzJuWXmCIpyjUKotXPWU2psnl8gEh4hm + name: gnome-font-viewer + presence: optional + type: app + - + default-channel: latest/stable + id: kIMfmZTJspWa8vtfbgU3W9Nbv4V5Qgmh + name: gnome-logs + presence: optional + type: app + - + default-channel: latest/stable + id: PZj2sEabMQrVUV1HKZmmmXSk3E6wKC9i + name: gnome-text-editor + presence: optional + type: app + - + default-channel: latest/stable + id: LhzK7p8214jufMYx1kz43QkWhFnOKdbr + name: gnome-weather + presence: optional + type: app + - + default-channel: latest/stable + id: J60k4JY0HppjwOjW8dZdYc8obXKxujRu + name: lxd + type: app + - + default-channel: latest/edge/ubuntu-core-desktop + id: IrwRHakqtzhFRHJOOPxKVPU0Kk7Erhcu + name: snapd-desktop-integration + type: app + - + default-channel: latest/stable/ubuntu-23.10 + id: gjf3IPXoRiipCu9K0kVu52f0H56fIksg + name: snap-store + type: app + - + default-channel: latest/stable + id: JMjaFobGn56fh1HepiaGuCxQgbWYnHc8 + name: workshops + presence: optional + type: app + - + default-channel: latest/stable + id: 9BTClmjz31r0UltmbJ5nnGe0Xm1AzfMp + name: gnome-system-monitor + presence: optional + type: app + - + default-channel: latest/stable + id: xODwiAdjx9KGChvI1z9Xx2JWJE7oLFF6 + name: ubuntu-core-desktop-init + type: app +storage-safety: prefer-encrypted +timestamp: 2023-10-21T10:19:41+00:00 +sign-key-sha3-384: 9tydnLa6MTJ-jaQTFUXEwHl1yRx7ZS4K5cyFDhYDcPzhS7uyEkDxdUjg9g08BtNn + +AcLBXAQAAQoABgUCZTP+wgAKCRDgT5vottzAEia0D/9FyEOb4Qai+sJQ/ilVqZ1L0FicTIwa9/Ae +khv5xXYGmukSzkIUGNYjvcCJByxgMiDsFOIIzrOYlJPmRFtdFOwm3KGS2JGthIUbQfElVbyPswZh +cgqYVuGMiRw8udlZHOmy2rWIKxo/uLMEsZzZuk83nC+ZzAoQoHOmcELuRtIc1qz9XAf6n7pd79S2 +10cxG7vuaA1iVbqqtbSlQCAdKTdOCxw2/NHTZ8mIRtAQZGA1LP8IMEyv2Fi3FVpmN2derV78sO3f +kCf/KdYeD6d1a03WchIDsuPlvTpTOU3TSX07QWj+WrZHMDh9gpQHDdSIWswBCPIHa10R6aDRRUUK +/5dJDq77/CyY/Q/ivcAuFiTceghKVcx3Zci+VX2WgvLK9qYHYHSilb70nTvsDFUA/bKep57/xqeG +j03cvUaqHb6li2T2SmyzaQOGV5MF6XxlhcLWY19PHc2/ocLpukL4vxkl18Ur3FoYAOLODwrlxueS +FDu7u+qf+Ki2+f0ZtN70EPcFAQAJ4C0N6f9j9Z+9BQptTlVwrIzIUxIwxtkp27YvERno6bZPBRYs +T4YdzVSdPKXsItT/GUiqYwdgPTi61FZXTN/47yIaHZLUwMT9gg/9XgNqIHKIdFHxm6GWVxL0AqOp +JPIfqrsmVbewevzwV1Rgo1LbPKVVrjqPtW0QQlkS8w==