Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
manifest: use experimentalflags.String("bootstrap")
This commit allows to use a container to bootstrap the buildroot via the experimtnal "bootstrap" flag: ``` $ IMAGE_BUILDER_EXPERIMENTAL=bootstrap=ghcr.io/mvo5/fedora-buildroot:41 \ image-builder manifest --arch=riscv64 minimal-raw --distro=fedora-41 ``` and it will use the given container to bootstap the buildroot. A bootstrap container has very few requirements: - python3 for the runners - rpm so that the real buildroot rpms can get instaleld - setfiles so that the selinux stage for the real buildroot can run (so most upstream containers, e.g. fedora-toolbox or ubi work). This will allow to do cross-arch building for riscv. The generated manifest can be build with osbuild (as long as qemu-user is installed) and will generate a minimal-raw for riscv64. Cross-building is useful because qemu-user is a lot faster (and easier to setup) than full riscv system emulation. A minimal raw build on a really fast AWS machine takes about 100 minutes. A full minimal-raw build on my (moderate) PC takes about 20min - which is fast enough so that we can run this in GH workflows as part of the CI. The approach with the bootstrap buildroot [0] allows us to generalize this later so that each distro would (in addition to the repos) an upstream container ref. With that we could auto-detect cross builds and we would just add this upstream container to bootstrap the buildroot. [0] Thanks to Ondrej, Achilleas, Thozza, Simon and Florian.
- Loading branch information