rpm-ostree icon indicating copy to clipboard operation
rpm-ostree copied to clipboard

compose: support fully-offline builds

Open lucab opened this issue 3 years ago • 2 comments

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.

lucab avatar Nov 05 '21 13:11 lucab

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.

jlebon avatar Nov 05 '21 13:11 jlebon

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.

lucab avatar Nov 05 '21 14:11 lucab