Files

Ubuntu OS factory

Run the Bun owner on the selected Linux, SSH or Docker host. An explicit factory root owns source jobs, temporary files, isolated APT state, logs, Docker data, execution state, socket and receipts.

Source retrieval

Source jobs authenticate each Ubuntu InRelease with the archive keyring, then compare every DSC and archive size/SHA256 with the authenticated Sources record before extraction. dpkg-source retains its default signature checks and requires strong checksums. Uploader signature messages are recorded separately from archive authentication.

bun factory/ubuntu.ts status --root /ABSOLUTE/FACTORY
bun factory/ubuntu.ts sources apt dpkg livecd-rootfs --root /ABSOLUTE/FACTORY

Each mutation creates a fresh job directory and records live child PIDs, logs, finite deadlines and a receipt. The factory has an exclusive lock and requires 50 GiB free. Existing locks are preserved. All APT configuration, lists, cache and temporary files stay in the job; source retrieval installs no packages. Ubuntu source package versions and the Salsa APT fork revisions have independent provenance.

Isolated toolchain

After the cleanup owner releases its build slot, request the dedicated Docker engine. Its data root, execution root, socket, PID file, logs and temporary files are on the factory filesystem. Bridge, forwarding and iptables management are disabled; containerd has factory namespaces.

bun factory/ubuntu.ts engine --root /ABSOLUTE/FACTORY
bun factory/ubuntu.ts status --root /ABSOLUTE/FACTORY
bun factory/ubuntu.ts toolchain --root /ABSOLUTE/FACTORY

The toolchain owner verifies the Docker endpoint and filesystem, acquires the configured shared heavy lock, resolves an immutable official Ubuntu base digest, and installs sbuild, live-build, livecd-rootfs, germinate, debian-cd and image utilities through Ubuntu APT. The receipt records the image identity, package versions, OS and libc. Installed tools do not prove a clean sbuild chroot, built rootfs, ISO or complete Bun OS image.

Package and rootfs builds

Native package builds use the Ubuntu-recommended unshare backend with mmdebstrap and uidmap. Each build owns its sbuild configuration, HOME, cache, chroot tarball, temporary paths and hashed binary artifacts. The configured Ubuntu image user supplies its namespace ID maps; only verified source files and the fresh job are mounted into each package build. Package builds use DEB_BUILD_OPTIONS=parallel=2 nocheck. Receipts record native namespace mount diagnostics separately from package and chroot archive hashes. The optional --chroot selects a pre-provisioned schroot for cross-building. Rootfs builds require prepared live-build configuration, livecd-rootfs customizations, seeds, package selection and kernel artifacts. Inputs reside inside the mounted factory root. Container commands bound CPU, memory, PIDs and time.

bun factory/ubuntu.ts package /ABSOLUTE/FACTORY/sources/apt.dsc --root /ABSOLUTE/FACTORY
bun factory/ubuntu.ts rootfs --root /ABSOLUTE/FACTORY --config /ABSOLUTE/FACTORY/live-build

Inspect and hash produced artifacts before product qualification. WSLg's Azure Linux system distro remains a separate target.

Primary guidance: Ubuntu source retrieval, Ubuntu local package builds, Ubuntu image process, and separate Docker daemons.