Extract a download_direct() method from download() to enable downloading
packages to an arbitrary directory with an arbitrary specification string.
This will be used by the boot configuration code to download bootloader
packages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ubuntukylin's /etc/apt/trusted.gpg.d/ubuntukylin-archive-keyring.gpg
contains a symlink to
"/usr/share/keyrings/ubuntukylin-archive-keyring.gpg" as an absolute
path. This obviously doesn't work when not chrooted into the chroot but
we don't need to copy it over to the apt config used to build the pool
as no package from any archive signed by this key is going to be
included in the pool...
This adds a new tool, isobuild, which replaces the ISO-building
functionality previously provided by live-build and cdimage. It is
invoked from auto/build when MAKE_ISO=yes.
The tool supports:
- Layered desktop images (Ubuntu Desktop, flavors)
- Non-layered images (Kubuntu, Ubuntu Unity)
- Images with package pools (most installers)
- Images without pools (Ubuntu Core Installer)
The isobuild command has several subcommands:
- init: Initialize the ISO build directory structure
- setup-apt: Configure APT for package pool generation
- generate-pool: Create the package pool from a seed
- generate-sources: Generate cdrom.sources for the installed system
- add-live-filesystem: Add squashfs and kernel/initrd to the ISO
- make-bootable: Add GRUB and other boot infrastructure
- make-iso: Generate the final ISO image
auto/config is updated to:
- Set MAKE_ISO=yes for relevant image types
- Set POOL_SEED_NAME for images that need a package pool
- Invoke gen-iso-ids to compute ISO metadata
auto/build is updated to:
- Remove old live-build ISO handling code
- Invoke isobuild at appropriate points in the build
lb_binary_layered is updated to create squashfs files with
cdrom.sources included for use in the ISO.