diff --git a/Containerfile b/Containerfile index 4a3f20c..47257d1 100644 --- a/Containerfile +++ b/Containerfile @@ -39,10 +39,21 @@ COPY . /src WORKDIR /src RUN rm -vf /src/*.repo COPY --from=repos /etc/yum.repos.d/*.repo /src -RUN --mount=type=cache,target=/workdir --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rpm-ostree compose image \ - --image-config fedora-bootc-config.json --cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} /buildcontext/out.ociarchive +# Brutally inject releasever and repos into manifest file. This is a major hack +# until rpm-ostree does this on its own: https://github.com/coreos/rpm-ostree/pull/5136 +RUN --mount=type=bind,from=repos,src=/,dst=/repos source /repos/etc/os-release && \ + echo -e "\nreleasever: $VERSION_ID" >> ${MANIFEST} && \ + echo -e "\nrepos:\n" >> ${MANIFEST} && \ + dnf repolist --setopt=reposdir=. | tail -n +2 | cut -f1 -d' ' | sed 's/^/- /' >> ${MANIFEST} +RUN --mount=type=cache,target=/workdir \ + --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \ + rpm-ostree compose image --image-config fedora-bootc-config.json \ + --cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} \ + /buildcontext/out.ociarchive FROM oci-archive:./out.ociarchive # Need to reference builder here to force ordering. But since we have to run # something anyway, we might as well cleanup after ourselves. -RUN --mount=type=bind,from=builder,src=.,target=/var/tmp --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rm /buildcontext/out.ociarchive +RUN --mount=type=bind,from=builder,src=.,target=/var/tmp \ + --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \ + rm /buildcontext/out.ociarchive diff --git a/README.md b/README.md index 557e94f..65dc8d9 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,16 @@ podman build --security-opt=label=disable --cap-add=all \ See the `Containerfile` for more details. This builds the default `tier-1` image. +## Fedora versions + +By default, the base images are built for Fedora rawhide. To build against a +different Fedora version, you can override the `FROM` image used to obtain the +Fedora repos and dnf variables. E.g.: + +``` +podman build --from quay.io/fedora/fedora:41 ... +``` + ### Deriving You are of course also free to fork, customize, and build base images yourself. diff --git a/fedora-40.yaml b/fedora-40.yaml new file mode 100644 index 0000000..647be5a --- /dev/null +++ b/fedora-40.yaml @@ -0,0 +1,7 @@ +# NB: This treefile is used by the legacy pungi path only to build tier-1. It +# will be removed in the future. +releasever: 40 +repos: + - fedora + - fedora-updates +include: fedora-bootc.yaml diff --git a/fedora-41.yaml b/fedora-41.yaml new file mode 100644 index 0000000..51026d4 --- /dev/null +++ b/fedora-41.yaml @@ -0,0 +1,7 @@ +# NB: This treefile is used by the legacy pungi path only to build tier-1. It +# will be removed in the future. +releasever: 41 +repos: + - fedora + - fedora-updates +include: fedora-bootc.yaml diff --git a/fedora-bootc.yaml b/fedora-bootc.yaml index 9b61e19..68dc692 100644 --- a/fedora-bootc.yaml +++ b/fedora-bootc.yaml @@ -1,7 +1,3 @@ -releasever: rawhide -repos: - - rawhide - metadata: name: fedora-boot-tier1 summary: Fedora Bootable Tier 1 diff --git a/fedora-rawhide.yaml b/fedora-rawhide.yaml new file mode 100644 index 0000000..5eec79c --- /dev/null +++ b/fedora-rawhide.yaml @@ -0,0 +1,6 @@ +# NB: This treefile is used by the legacy pungi path only to build tier-1. It +# will be removed in the future. +releasever: rawhide +repos: + - fedora-rawhide +include: fedora-bootc.yaml diff --git a/fedora-tier-0.yaml b/fedora-tier-0.yaml index c24d5c4..6cef2a1 100644 --- a/fedora-tier-0.yaml +++ b/fedora-tier-0.yaml @@ -1,7 +1,3 @@ -releasever: rawhide -repos: - - rawhide - metadata: name: fedora-boot-tier0 summary: Fedora Bootable Tier 0 diff --git a/fedora-tier-x.yaml b/fedora-tier-x.yaml index 19e08c8..90a96fd 100644 --- a/fedora-tier-x.yaml +++ b/fedora-tier-x.yaml @@ -1,7 +1,3 @@ -releasever: rawhide -repos: - - rawhide - metadata: name: fedora-boot-tier-x summary: Fedora Bootable Tier X