From d8fa3db5dcf621293e76926474967ed6cb2f45e2 Mon Sep 17 00:00:00 2001 From: Sergio Costas Rodriguez Date: Thu, 1 Aug 2024 16:49:36 +0200 Subject: [PATCH] Integrate Core Desktop 24 as a Core subproject This patch updates Core Desktop to version 24, and also makes it a subproject of Core, so it shares nearly the whole project files and simplifies maintenance. It is based on a proposal from Michael Hudson-Doyle. https://git.launchpad.net/~mwhudson/livecd-rootfs/+git/livecd-rootfs/commit/?id=94cb68d47530a564060155f985f963f59786809f --- live-build/auto/build | 34 +--- live-build/auto/config | 29 +-- .../ubuntu-core-desktop/autoinstall.yaml | 12 -- .../hooks/020-ubuntu-live.chroot_early | 21 -- .../etc/cloud/cloud.cfg | 117 ----------- .../etc/cloud/cloud.cfg.d/06_quiet.cfg | 4 - .../journald.conf.d/no-rate-limit.conf | 2 - .../override.conf" | 3 - .../no-compact.conf | 4 - .../no-hardening.conf | 4 - .../usr/bin/subiquity-shell | 3 - .../system/getty@.service.d/autologin.conf | 3 - .../usr/lib/systemd/system/getty@tty1.service | 1 - .../media-filesystem.mount | 1 - .../subiquity-serial.conf | 9 - .../subiquity-serial.conf | 4 - .../subiquity.conf | 14 -- .../system/snapd.service.d/no-reexec.conf | 2 - .../lib/systemd/system/subiquity_config.mount | 4 - .../lib/systemd/systemd-networkd-wait-online | 1 - .../var/lib/cloud/seed/nocloud/meta-data | 0 .../var/lib/cloud/seed/nocloud/user-data | 0 .../includes.chroot/etc/hosts | 9 - .../install-sources-in.yaml | 11 -- ...untu-core-desktop-22-amd64.model-assertion | 187 ------------------ .../hooks/05-prepare-image.binary | 39 +++- ...untu-core-desktop-24-amd64.model-assertion | 120 +++++++++++ 27 files changed, 157 insertions(+), 481 deletions(-) delete mode 100644 live-build/ubuntu-core-desktop/autoinstall.yaml delete mode 100755 live-build/ubuntu-core-desktop/hooks/020-ubuntu-live.chroot_early delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg.d/06_quiet.cfg delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/journald.conf.d/no-rate-limit.conf delete mode 100644 "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" delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-compact.conf delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-hardening.conf delete mode 100755 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/bin/subiquity-shell delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@.service.d/autologin.conf delete mode 120000 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@tty1.service delete mode 120000 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/local-fs.target.wants/media-filesystem.mount delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@.service.d/subiquity-serial.conf delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@sclp_line0.service.d/subiquity-serial.conf delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snap.subiquity.subiquity-service.service.d/subiquity.conf delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snapd.service.d/no-reexec.conf delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/subiquity_config.mount delete mode 120000 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/systemd-networkd-wait-online delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/meta-data delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot.minimal.live/var/lib/cloud/seed/nocloud/user-data delete mode 100644 live-build/ubuntu-core-desktop/includes.chroot/etc/hosts delete mode 100644 live-build/ubuntu-core-desktop/install-sources-in.yaml delete mode 100644 live-build/ubuntu-core-desktop/ubuntu-core-desktop-22-amd64.model-assertion create mode 100644 live-build/ubuntu-core-installer/ubuntu-core-desktop-24-amd64.model-assertion diff --git a/live-build/auto/build b/live-build/auto/build index ddcb7bc3..82f7e01d 100755 --- a/live-build/auto/build +++ b/live-build/auto/build @@ -20,8 +20,7 @@ fi # Link output files somewhere launchpad-buildd will be able to find them. PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}" -if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ] \ - || [ "$PROJECT" = "ubuntu-core-desktop" ]; then +if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ]; then # Use ubuntu-image instead (or as part) of live-build export SNAPPY_STORE_NO_CDN=1 @@ -47,37 +46,6 @@ if [ "${IMAGEFORMAT:-}" = "ubuntu-image" ] \ # 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 # Ubuntu classic preinstalled images /snap/bin/ubuntu-image classic --verbose $UBUNTU_IMAGE_ARGS \ diff --git a/live-build/auto/config b/live-build/auto/config index f9606241..9f70643e 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -382,7 +382,7 @@ if [ -z "${IMAGEFORMAT:-}" ]; then ;; esac ;; - ubuntu-server:live|ubuntu-mini-iso:|ubuntu-core-installer:) + ubuntu-server:live|ubuntu-mini-iso:|ubuntu-core-installer:*) IMAGEFORMAT=plain ;; esac @@ -422,7 +422,7 @@ case $IMAGEFORMAT in ;; plain) case $PROJECT:${SUBPROJECT:-} in - ubuntu-server:live|ubuntu-core-installer:) + ubuntu-server:live|ubuntu-core-installer:*) touch config/universe-enabled ;; ubuntu-mini-iso:) @@ -843,26 +843,6 @@ 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)" @@ -1058,6 +1038,9 @@ case $PROJECT in # installer but it has a source catalog entry that points to the model # created in ubuntu-core-installer/hooks/05-prepare-image.binary, which # subiquity knows how to install. + if [ ${SUBPROJECT} == "desktop" ]; then + cp /usr/share/livecd-rootfs/live-build/${PROJECT}/ubuntu-core-desktop-24-amd64.model-assertion config/ + fi OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal" PASSES_TO_LAYERS=true add_task base server-minimal server @@ -1443,7 +1426,7 @@ case $PROJECT:${SUBPROJECT:-} in ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled| \ ubuntu-wsl:*|ubuntu-mini-iso:*|ubuntu:|ubuntu-oem:*| \ ubuntustudio:*|edubuntu:*|ubuntu-budgie:*|ubuntucinnamon:*|xubuntu:*| \ - ubuntukylin:*|ubuntu-mate:*|ubuntu-core-desktop:*|ubuntu-core-installer:*) + ubuntukylin:*|ubuntu-mate:*|ubuntu-core-installer:*) # 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 deleted file mode 100644 index 5f1237fa..00000000 --- a/live-build/ubuntu-core-desktop/autoinstall.yaml +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100755 index 47b82622..00000000 --- a/live-build/ubuntu-core-desktop/hooks/020-ubuntu-live.chroot_early +++ /dev/null @@ -1,21 +0,0 @@ -#! /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 deleted file mode 100644 index e9571afd..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg +++ /dev/null @@ -1,117 +0,0 @@ -# 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 deleted file mode 100644 index a614e723..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/cloud/cloud.cfg.d/06_quiet.cfg +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index fbaab956..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/journald.conf.d/no-rate-limit.conf +++ /dev/null @@ -1,2 +0,0 @@ -[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" deleted file mode 100644 index 90ac2590..00000000 --- "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" +++ /dev/null @@ -1,3 +0,0 @@ -[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 deleted file mode 100644 index a0701e52..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-compact.conf +++ /dev/null @@ -1,4 +0,0 @@ -# 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 deleted file mode 100644 index c4262d26..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/etc/systemd/system/systemd-journald.service.d/no-hardening.conf +++ /dev/null @@ -1,4 +0,0 @@ -# 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 deleted file mode 100755 index d739d86f..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/bin/subiquity-shell +++ /dev/null @@ -1,3 +0,0 @@ -#!/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 deleted file mode 100644 index a166aab4..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@.service.d/autologin.conf +++ /dev/null @@ -1,3 +0,0 @@ -[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 deleted file mode 120000 index dc1dc0cd..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/getty@tty1.service +++ /dev/null @@ -1 +0,0 @@ -/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 deleted file mode 120000 index 0a663081..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/local-fs.target.wants/media-filesystem.mount +++ /dev/null @@ -1 +0,0 @@ -../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 deleted file mode 100644 index eebf38b4..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@.service.d/subiquity-serial.conf +++ /dev/null @@ -1,9 +0,0 @@ -[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 deleted file mode 100644 index 56900a35..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/serial-getty@sclp_line0.service.d/subiquity-serial.conf +++ /dev/null @@ -1,4 +0,0 @@ -[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 deleted file mode 100644 index c1af5666..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snap.subiquity.subiquity-service.service.d/subiquity.conf +++ /dev/null @@ -1,14 +0,0 @@ -[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 deleted file mode 100644 index 14a6b477..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/snapd.service.d/no-reexec.conf +++ /dev/null @@ -1,2 +0,0 @@ -[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 deleted file mode 100644 index af33494b..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/system/subiquity_config.mount +++ /dev/null @@ -1,4 +0,0 @@ -[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 deleted file mode 120000 index 63b10de4..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot.minimal.live/usr/lib/systemd/systemd-networkd-wait-online +++ /dev/null @@ -1 +0,0 @@ -/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 deleted file mode 100644 index e69de29b..00000000 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 deleted file mode 100644 index e69de29b..00000000 diff --git a/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts b/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts deleted file mode 100644 index 81684340..00000000 --- a/live-build/ubuntu-core-desktop/includes.chroot/etc/hosts +++ /dev/null @@ -1,9 +0,0 @@ -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 deleted file mode 100644 index 9ff1ae04..00000000 --- a/live-build/ubuntu-core-desktop/install-sources-in.yaml +++ /dev/null @@ -1,11 +0,0 @@ -- 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 deleted file mode 100644 index 1f0a7ec6..00000000 --- a/live-build/ubuntu-core-desktop/ubuntu-core-desktop-22-amd64.model-assertion +++ /dev/null @@ -1,187 +0,0 @@ -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== diff --git a/live-build/ubuntu-core-installer/hooks/05-prepare-image.binary b/live-build/ubuntu-core-installer/hooks/05-prepare-image.binary index 2e1f3146..d17590b1 100644 --- a/live-build/ubuntu-core-installer/hooks/05-prepare-image.binary +++ b/live-build/ubuntu-core-installer/hooks/05-prepare-image.binary @@ -13,15 +13,29 @@ esac . config/binary . config/functions -env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 brand-id=canonical model=ubuntu-core-24-amd64 > config/ubuntu-core-24-amd64.model +case ${SUBPROJECT} in + desktop) + env SNAPPY_STORE_NO_CDN=1 snap prepare-image \ + config/ubuntu-core-desktop-24-amd64.model-assertion --snap firefox chroot -env SNAPPY_STORE_NO_CDN=1 snap prepare-image \ - config/ubuntu-core-24-amd64.model --snap console-conf chroot -mv chroot/system-seed/systems/* chroot/system-seed/systems/ubuntu-core-24-amd64 -rsync -av chroot/system-seed/{systems,snaps} chroot/var/lib/snapd/seed -rm -rf chroot/system-seed + cat <<-EOF > config/edge.catalog-in.yaml +name: "Ubuntu Core Desktop 24" +description: >- + Ubuntu Core Desktop. +id: ubuntu-core-desktop +type: null +variant: core +locale_support: none +snapd_system_label: ubuntu-core-desktop-24-amd64 +EOF + mv chroot/system-seed/systems/* chroot/system-seed/systems/ubuntu-core-desktop-24-amd64 + ;; + *) + env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 brand-id=canonical model=ubuntu-core-24-amd64 > config/ubuntu-core-24-amd64.model + env SNAPPY_STORE_NO_CDN=1 snap prepare-image \ + config/ubuntu-core-24-amd64.model --snap console-conf chroot -cat <<-EOF > config/edge.catalog-in.yaml + cat <<-EOF > config/edge.catalog-in.yaml name: "Ubuntu Core 24" description: >- Ubuntu Core. @@ -31,8 +45,15 @@ variant: core locale_support: none snapd_system_label: ubuntu-core-24-amd64 EOF + mv chroot/system-seed/systems/* chroot/system-seed/systems/ubuntu-core-24-amd64 + ;; +esac + +rsync -av chroot/system-seed/{systems,snaps} chroot/var/lib/snapd/seed +rm -rf chroot/system-seed + PROJECT_FULL=$PROJECT${SUBARCH:+-$SUBARCH} usc_opts="--output livecd.${PROJECT_FULL}.install-sources.yaml \ - --template config/edge.catalog-in.yaml \ - --size 0" + --template config/edge.catalog-in.yaml \ + --size 0" /usr/share/livecd-rootfs/update-source-catalog $usc_opts diff --git a/live-build/ubuntu-core-installer/ubuntu-core-desktop-24-amd64.model-assertion b/live-build/ubuntu-core-installer/ubuntu-core-desktop-24-amd64.model-assertion new file mode 100644 index 00000000..cd89ec87 --- /dev/null +++ b/live-build/ubuntu-core-installer/ubuntu-core-desktop-24-amd64.model-assertion @@ -0,0 +1,120 @@ +type: model +authority-id: canonical +series: 16 +brand-id: canonical +model: ubuntu-core-desktop-24-amd64 +architecture: amd64 +base: core24-desktop +display-name: Ubuntu Core Desktop 24 (amd64) +grade: signed +snaps: + - + default-channel: 24/stable + id: mZqHskGgGDECRCKP7h7ef3Rl2wTwyNfy + name: pc-desktop + type: gadget + - + default-channel: 24-hwe/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: GY5GohJ4F1ZsWpkosG0joeZyDfHzTZrD + name: core24-desktop + type: base + - + default-channel: 24/stable + id: LVkazk0JLrL0ivuHRlv3wp3bK1nAgwtN + name: ubuntu-desktop-session + type: app + - + default-channel: latest/stable + id: amcUKQILKXHHTlmSa7NMdnXSx02dNeeT + name: core22 + type: base + - + default-channel: latest/stable + id: dwTAh7MZZ01zyriOZErqd1JynQLiOGvM + name: core24 + type: base + - + default-channel: 24/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: 24/stable + id: dVK2PZeOLKA7vf1WPCap9F8luxTk9Oll + name: avahi + type: app + - + default-channel: 24/stable + id: JmzJi9kQvHUWddZ32PDJpBRXUpGRxvNS + name: bluez + type: app + - + default-channel: latest/stable/ubuntu-24.04 + id: 3wdHCAVyZEmYsCMFDE9qt92UV8rC8Wdk + name: firefox + presence: optional + type: app + - + default-channel: latest/edge/ubuntu-core-desktop + id: IrwRHakqtzhFRHJOOPxKVPU0Kk7Erhcu + name: snapd-desktop-integration + type: app + - + default-channel: latest/stable/ubuntu-24.04 + id: gjf3IPXoRiipCu9K0kVu52f0H56fIksg + name: snap-store + type: app + - + default-channel: latest/candidate + id: tBdYpKjXcW5farGGJaWiYXrxIwMVMtx5 + name: ubuntu-desktop-init + type: app +storage-safety: prefer-encrypted +timestamp: 2024-07-04T10:33:44+08:00 +sign-key-sha3-384: 9tydnLa6MTJ-jaQTFUXEwHl1yRx7ZS4K5cyFDhYDcPzhS7uyEkDxdUjg9g08BtNn + +AcLBXAQAAQoABgUCZoYTygAKCRDgT5vottzAEnlLD/4toc4w5IiLm/xmBFL8BVwXXVQsvNNtVYaT +NGSa+q7OJXeVbPQnnRMK4oH31IbGFngK3IHoc04LK76W2GQzAE4SQxTcV9VTlyPrVc6OeCn9rSWj +zFX/fOVuD5Wd6OOgNitaHqVHh8CDQFcsdOBICImHG6s0Au1mIDVQvV/DxcnnprJ53yXFCeastuX+ +CnZiB6wOv/dzGHnIbhpUtKg5HV5jZoIkmplWAZr1IXd8gAPvltDzpJYwN6GMHK6SLUD1tgviP4ZB +gw9IT11DCeB9TOEnsAs7y1YApUdkxMSv4B+Jwew/lkjysncULqFCt6fCD3HEw+OdULb/OrFnYcSV +4NqPBop/9mi+CB5Fs3ubtlKxK9VnSJbLpXsyBeDvljVKp0MvNBpCTJnlGtRvQE/bHLpaAhRRsP0R +6cUqd1ieRm4wp/1/v+zMjdp6VL7co0/a6jZgtfptCMnCC6Z0KdLWGQjaXDwxNStqMK3h/Au2YWDc +ZgZ/+wTxMlDyU4i4gg+rByV2yPHfGeVpN7D7nuY8OWXq1ezESY6K5fsOW77/XEjZJOI3BFOJ6Xnl +2ATKBs6uSmMPQSZo21sk+E0c2gH8qj6L6mUcAz2qvilur9w4uEM3TRfZcAKPN+8lV44eB8/aZpq7 +GfjsXFa+DpXJzWdC91SP4yIeojoj3OAl4gNwt0c85g==