Commit graph

11 commits

Author SHA1 Message Date
Jonathan Lebon
7a809e5739 Containerfile: bump Fedora base image to 44
Unfortunately Dependabot can't handle this because it's on a build arg
and not a `FROM`.

Assisted-by: Pi (Claude Opus 4.6)
2026-05-27 21:40:17 -04:00
Jonathan Lebon
1cf18ed2fd Containerfile: verify CentOS rpm-sequoia with CentOS GPG key
Ironically, we weren't actually verifying signatures on the rpm-sequoia
rpm we got from the CentOS repo...

Let's make sure to do that.

Assisted-by: Pi (Claude Opus 4.6)
2026-05-27 21:40:17 -04:00
Jonathan Lebon
497884553b build: support oci: transport prefix on --output
It's silly right now how chunkah tars up an ocidir, but the primary
way this is consumed is by the containers stack, which will immediately
untar it back to consume it.

We can't avoid this in the `podman run | podman load` flow, but we can
in the Containerfile flow by simply leaving the output as an ocidir, and
then using `FROM oci:` instead of `FROM oci-archive:`.

To expose this, add support for transport prefixes on the argument
passed to `--output`; `oci:PATH` writes the OCI directory layout
directly to disk, while `oci-archive:PATH` or `PATH` preserves the
existing behavior.

Update `Containerfile.splitter` and docs to use the new format. And of
course, update the chunkah image build itself to use this!

Anyone using chunkah from a Containerfile is encouraged to switch over
to this. The efficiency gains are non-trivial. E.g. for the fedora-bootc
image, this roughly cuts in half the "handover time" from chunkah to
buildah.

Closes: #103

Assisted-by: Pi (Claude Opus 4.6)
2026-05-27 21:27:04 -04:00
Jonathan Lebon
0427ee2ab8 Containerfile: use PQC-enabled rpm-sequoia from CentOS Stream 10
Currently, to split el10 images correctly, one needs to use a chunkah
image built from el10 so that rpm can read PQC signatures in the rpmdb
(because Fedora's rpm-sequoia doesn't support PQC yet).

We could switch the base image to c10s or UBI10 or provide separate
images, but I don't like any of those options. But I do want a good
OOTB experience.

So for now just temporarily hack this up by installing rpm-sequoia
from c10s on top of the Fedora base since it's ABI-compatible. If this
breaks before Fedora gains PQC support, we can re-evaluate the other
options.

Assisted-by: Pi (Claude Opus 4.6)
2026-05-01 10:47:22 -04:00
Jonathan Lebon
7d771dc227 Justfiles: make cargo target dir cache unique
I hit this weird issue running benchmarks between two different
worktrees to compare their results and the chunkah from one worktree
ended up being reused by the benchmark for another tree.

I think this is basically the consequence of (1) using a shared cache
for the cargo target dir, and (2) cargo using mtime for freshness which
can be wrong (e.g. a worktree with older timestamps than the one that
was last built would not trigger a rebuild).

Fix this by making the cache name unique to the workdir.
2026-03-03 16:24:53 -05:00
Jonathan Lebon
5c09bb92cb Containerfile: work around layer annotation bug for chunkah image
I want the chunkah image to have layer annotations both to show it as an
example, but also for a self test I'm writing.

Rework the Containerfile to use `--config-str` instead of adding
directives in the final stage so that we leave it as a plain `FROM
oci-archive:`.

To not break the `--no-chunk` flow, repeat config directly in the rootfs
stage and switch `--no-chunk` to just translate to `--target rootfs`.
2026-03-02 13:41:31 -05:00
Jonathan Lebon
bcca904355 Containerfile: park rpmdb and dnf history db
I want to add a self-test which inspects the chunkah image itself and
sanity-checks some components but right now the WAL files from those dbs
are making it hackier to special-case bigfiles.

And plus it's just cleaner.
2026-03-02 13:41:31 -05:00
Jonathan Lebon
f8226f9930 Containerfile: drop skopeo from image
I thought early on we would grow a dep on skopeo, but we've avoided it
so far, so just drop it for now to make our images smaller.

Assisted-by: Claude Opus 4.6
2026-03-02 13:41:31 -05:00
Jonathan Lebon
d7e05550c2 Containerfile: install zlib-devel to avoid bundled zlib
One annoying thing about Rust packaging is that it's very easy to miss
when you're bundling what is normally distributed as a shared library.
We almost always want to avoid that. We avoided it for openssl, but we
need the same treatment for zlib.
2026-01-30 16:33:33 -05:00
Jonathan Lebon
edbac85e06 Containerfile: disable weak deps in dnf installs
Let's default to a minimal footprint.

Assisted-by: Claude Opus 4.5
2026-01-30 13:10:54 -05:00
Jonathan Lebon
11ca5eb66a
tree: initial commit 2026-01-19 15:59:23 -05:00