rpm-ostree
rpm-ostree copied to clipboard
compose: support fully-offline builds
For some consumers (e.g. osbuild
) it would be useful to have CLI primitives to support a fully-offline build.
In such scenario, the consumer would take care of provide all the required artifacts on-disk, so that rpm-ostree
could proceed into assembling the final ostree commit without further network interactions. Notably, the dependency solving step and the RPMs fetching would be performed ahead of time.
compose
verbs should already have most of the ingredients required for this, i.e. cached RPMs loading and a lockfile. However, some experimentation is required to check that they won't incur spurious network fetches.
Note this is already how it works in cosa today with the cosa fetch
and cosa build
split. In unprivileged setups, cosa build
runs offline. See RUNVM_NONET
here which is acted upon here.
For clarity, the fetching step (cosa fetch
above) is not supposed to be performed by rpm-ostree in this scenario, so we should take care of noting down all the required input artifacts.
I haven't yet looked into this, but my current concerns are around librepo and libsolv data/caches.