4427 Commits

Author SHA1 Message Date
michael.hudson@canonical.com
eaef671f74
Move kernel ISO placement from hook into lb_binary_layered
04-kernel-bits.binary only handled ubuntu-server; desktop builds
(ubuntu, ubuntu-budgie, lubuntu, etc.) had no equivalent and so the
kernel never reached the ISO casper directory for MAKE_ISO=yes builds.

Centralise the logic in lb_binary_layered, which already knows which
passes are live passes and is where the kernel is subsequently removed
from the chroot overlay.  The flavor is determined by convention:

 - passes ending in .live (desktop builds) use LB_LINUX_FLAVOURS
 - other live passes (server installer passes such as
   "...installer.generic-hwe") encode the flavor as the final
   dot-separated component of the pass name

The netboot sub-passes (e.g. installer.generic.netboot) are never
added to LIVE_PASSES, so is_live_layer already guards against them;
the explicit exit-0 that 04-kernel-bits.binary needed is not required.

MAKE_ISO is always "yes" when lb_binary_layered runs — every code path
that sets PASSES_TO_LAYERS=true also sets MAKE_ISO=yes — so no
conditional is needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:30:18 +13:00
michael.hudson@canonical.com
816eaed015
Source config/functions in hooks that call iso_install_kernel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:30:17 +13:00
michael.hudson@canonical.com
51624c1b44
Place ISO artifacts directly into the ISO tree
For MAKE_ISO=yes builds, squashfs, kernel, initrd, manifests, and sizes
are now placed directly into config/iso-dir/iso-root/casper/ during the
build rather than creating livecd.* intermediates that get linked as
for-iso.* files and then copied into casper/ by isobuild.

This stops publishing the intermediate livecd.* artifacts so that only
livecd.*.iso and livecd.*.netboot.tar.gz are published for ISO builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 20:30:10 +13:00
Didier Roche-Tolomelli
1975bbd52b releasing package livecd-rootfs version 26.04.26 2026-03-27 15:32:10 +01:00
Didier Roche-Tolomelli
916b693130 Ensure snapd tracks stable and not edge anymore.
We did remove it from multiple places, but this one was left and as a
consequence, the latest iso was still having snapd edge.
2026-03-27 15:30:31 +01:00
michael.hudson@canonical.com
a5ed2589f6
releasing package livecd-rootfs version 26.04.25 26.04.25 2026-03-20 06:47:52 +13:00
michael.hudson@canonical.com
2a5f5e74dd
update changelog 2026-03-20 06:47:08 +13:00
root
cbb597a46c
fix: bake LIVECD_ROOTFS_ROOT into config/functions
Hooks that only source config/functions (not config/common) would fail
with "LIVECD_ROOTFS_ROOT: parameter not set" when calling setup_mountpoint
or any function that transitively calls it. This affected ubuntu, ubuntu-cpc,
and buildd hooks.

Rather than adding `. config/common` to every hook, prepend the
LIVECD_ROOTFS_ROOT assignment to config/functions at config time so it is
available to all callers automatically.
2026-03-20 06:33:06 +13:00
michael.hudson@canonical.com
7252138aa9
releasing package livecd-rootfs version 26.04.24 26.04.24 2026-03-16 11:05:40 +13:00
michael.hudson@canonical.com
5e4e502c76
Merge branch 'better-local-experience' into ubuntu/master 2026-03-16 10:50:17 +13:00
Allen Abraham
bf2eb46fc8 fix: Resolving comments on MP
- Adding parition ordering using imagecraft
- Removing redundant locales install
- Better logging for empty ARCH and SUBPROJECT
- Using mktemp for mountpoint
2026-03-11 15:07:29 -04:00
Allen Abraham
f45429018c feat: Produce a working minimal image using imagecraft in a livcd-rootfs hook
- Added manifest and filelist generation
- Currently, we only produce minimal images for amd64
- Tested the changes by booting an instance on OVH
- Hook was also tested to be run in a local CPC Jenkins pipeline
2026-03-03 16:59:47 -05:00
michael.hudson@canonical.com
dad4a04751
releasing package livecd-rootfs version 26.04.23 26.04.23 2026-03-02 10:52:01 +13:00
michael.hudson@canonical.com
6e25a58c56
make ubuntu-test-iso project use KERNEL_FLAVOURS to exercise more machinery 2026-03-02 10:50:15 +13:00
michael.hudson@canonical.com
2b2c057acf
build-livefs-lxd: configure apt proxy and package_update via cloud-init
Read http-proxy from --http-proxy flag or build-livefs.conf and pass it
to the VM at launch time via cloud-init user-data (apt.http_proxy /
apt.https_proxy). Also set package_update: true so cloud-init runs
apt-get update on first boot, removing the need for an explicit call.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:57:11 +13:00
michael.hudson@canonical.com
cdd2b7fb01
configure snapd to use a proxy if one is configured 2026-02-27 14:45:56 +13:00
michael.hudson@canonical.com
e9d67eecd6
changelog 2026-02-27 14:45:52 +13:00
michael.hudson@canonical.com
6175dfb3ac
build-livefs-lxd: helper to run build-livefs inside an LXD VM
Creates (or reuses) a per-suite LXD VM, mounts the livecd-rootfs
checkout into it, waits for the VM to be ready, installs dependencies,
and runs build-livefs inside the VM — keeping the host clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 14:43:39 +13:00
michael.hudson@canonical.com
0e292ea3f2
Add build-livefs CLI tool
Provides a single command to run a livecd-rootfs build, replacing the
manual setup of auto/ symlinks and env vars that lpbuildd's
build_livefs.py encapsulates. Works from a git checkout, an installed
deb, or via the /usr/bin/build-livefs symlink.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 14:43:38 +13:00
michael.hudson@canonical.com
7620f798f4
an attempt to be able to run from a git checkout 2026-02-27 14:43:34 +13:00
michael.hudson@canonical.com
04e2aea648
Add PROJECT=ubuntu-test-iso for fast end-to-end ISO testing
Builds a real Ubuntu ISO in ~2-3 minutes (vs 30-60 for production)
by keeping the package set minimal (casper + linux-generic only) and
using lz4 squashfs compression.

Design:
- Two-pass layered build (PASSES_TO_LAYERS=true):
  - base: installs casper
  - base.generic (LIVE_PASSES): installs linux-generic, triggers
    update-initramfs with CASPER_GENERATE_UUID=1 to embed UUID
- No package pool (POOL_SEED_NAME=), no universe, amd64 only
- SQUASHFS_COMP=lz4 (~10x faster than xz); create_squashfs() now
  respects ${SQUASHFS_COMP:-xz} so all other projects are unaffected
- Germinate is skipped (only add_package is used, no add_task/pool)

New files:
- live-build/ubuntu-test-iso/hooks/01-test-iso.chroot_early
- live-build/ubuntu-test-iso/hooks/02-test-iso-kernel.binary

Modified:
- live-build/functions: honour $SQUASHFS_COMP in create_squashfs()
- live-build/gen-iso-ids: add ubuntu-test-iso -> Ubuntu-Test-ISO
- live-build/auto/config: IMAGEFORMAT, fs, COMPONENTS, germinate
  skip, SQUASHFS_COMP default + per-project override, project block,
  write SQUASHFS_COMP to config/common, lxd exclusion, hook copying

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 14:42:52 +13:00
michael.hudson@canonical.com
9861d393aa
changelog for Tobias' change 2026-02-27 14:40:30 +13:00
Tobias Heider
0b30131aae Properly handle non -generic kernel and initramfs flavour
Determine used flavour by looking at the suffix of kernel.
hwe is currently the only one that needs to have a prefix
added so we can hardcode that.
2026-02-26 02:08:26 +01:00
michael.hudson@canonical.com
301cf9622c
releasing package livecd-rootfs version 26.04.22 26.04.22 2026-02-26 10:57:27 +13:00
michael.hudson@canonical.com
a3c8532764
changelog for tobhe's changes 2026-02-26 10:32:54 +13:00
michael.hudson@canonical.com
92e680cc2c
Merge remote-tracking branch 'tobhe/extra_ppas' into ubuntu/master 2026-02-26 10:31:11 +13:00
Tobias Heider
b1c61d8bf1 Fix extra_ppas
ignore launchpad repos in in_release_path because it
can only handle a single repo.
2026-02-25 22:22:51 +01:00
michael.hudson@canonical.com
9c4ce17909
Merge branch 'more-iso-fixes' into ubuntu/master 2026-02-26 10:15:59 +13:00
michael.hudson@canonical.com
b1ca2ae69b
changelog 2026-02-26 10:13:24 +13:00
michael.hudson@canonical.com
31a0c2716c
place kernel at /casper/vmlinux on riscv64
For no very good reason this is what debian-cd does, and what the grub
config isobuilder generates still expects. It probably makes sense to
switch to 'vmlinuz' like every other arch apart from ppc64el does but
for now I want to maintain compatibility with the old ISOs.
2026-02-26 10:13:23 +13:00
michael.hudson@canonical.com
a66fbc54b7
make sure the for-iso squashfs gets created in the right place for kubuntu 2026-02-26 10:13:21 +13:00
Olivier Gayot
9819eae23c ubuntu: pull model from Launchpad canonical-model git repo
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2026-02-25 10:34:19 +01:00
Didier Roche
b135edf10c
releasing package livecd-rootfs version 26.04.21 26.04.21 2026-02-25 08:40:18 +01:00
Didier Roche
112153325c
Update changelog 2026-02-25 08:39:57 +01:00
Didier Roche
39ab3ea113
Update signed ubuntu classic model to ship new nvidia drivers 2026-02-25 08:38:03 +01:00
michael.hudson@canonical.com
a6ac43fcda
releasing package livecd-rootfs version 26.04.20 26.04.20 2026-02-20 12:46:15 +13:00
michael.hudson@canonical.com
92c29ecbf2
Merge branch 'fix-boot-paths' into ubuntu/master 2026-02-20 12:44:49 +13:00
michael.hudson@canonical.com
7fdf181234
fix changelog merge 2026-02-20 12:44:02 +13:00
michael.hudson@canonical.com
49a0415299
Merge branch 'no-tpm-arm64' into ubuntu/master 2026-02-20 12:43:14 +13:00
michael.hudson@canonical.com
96f41a4cf5
add changelog entry for optional sbom change 2026-02-20 12:43:06 +13:00
michael.hudson@canonical.com
2579dc30cb
Merge branch 'CPC-8952-make-sbom-optional' into ubuntu/master 2026-02-20 12:42:04 +13:00
michael.hudson@canonical.com
77db814700
fix version number 2026-02-20 12:40:03 +13:00
Michael Raymond
a1c8d7f3bd add changelog entry 2026-02-19 16:34:04 -05:00
Allen Abraham
f734d8cb8c feat(ubuntu-cpc): make SBOM generation optional in create_manifest function
There are case in CPC built images where we don't want to create an SBOM.
Add an argument in create_manifest which defaults to creating an SBOM, but can also skip generating an SBOM
2026-02-19 15:30:28 -05:00
Michael Raymond
7e3c74afac feat: Use same keyring for all releases
A change in 2024 [0] was made to debootstrap in which the keyring is now
switched from ubuntu-archive-keyring.gpg to
ubuntu-archive-removed-keys.gpg after a given release goes EOL. This
means that the Release signature cannot be verified after EOL since the
Release is signed with the ubuntu-archive-keyring.gpg. It is expected
that we can continue to build any release even after the suite is
closed.
This change adds a debootstrap configuration to override this behavior
and ensure all of our images are verified against the main archive key.

Refs: [0] https://git.launchpad.net/ubuntu/+source/debootstrap/commit/?id=4f8b3405097b9f655938528ae7105ec534eb7d1b
2026-02-19 14:48:18 -05:00
michael.hudson@canonical.com
7c4588191c
e030-ubuntu-live-system-seed.binary: do not run if there is no layer to install the system, in particular on arm64. 2026-02-19 19:57:16 +13:00
michael.hudson@canonical.com
42df11d4cc
add changelog entry 2026-02-19 15:06:08 +13:00
michael.hudson@canonical.com
6db44c1ea6
make a small change to copy_unsigned_monolithic_grub 2026-02-19 15:06:04 +13:00
michael.hudson@canonical.com
081981e650
simplify scratch directory handling a bit 2026-02-19 15:06:02 +13:00
michael.hudson@canonical.com
a2a166d93d
Standardize whitespace in GRUB menu entry stanzas
Use consistent formatting across all architectures: 4-space indent,
two spaces after "linux", one space after "initrd". Also fix an extra
blank line before "fi" in amd64's UEFI section caused by f-string
interpolation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:06:00 +13:00