Split excluded and arch packages into "package text file"

Aiming to have the main container build not use rpm-ostree.

Signed-off-by: Colin Walters <walters@verbum.org>
This commit is contained in:
Colin Walters committed 2025-01-23 11:37:04 -05:00
1 parent 3addf4c691
commit 176ede2332
11 files changed
+56 -78

No files matched your search

+28 -5
View File
@@ -2,18 +2,41 @@
# This is a local reference by default because we haven't shipped this image yet.
FROM localhost/fedora-bootc:base as rootfs
# Drop this into /usr/share/doc, so that other things can parse it
COPY packages-recommended.txt /usr/share/doc/fedora-bootc/packages-recommended.txt
# Drop our package sets into /usr/share/doc, so that other things can parse it
COPY packages-*.txt /usr/share/doc/fedora-bootc/
# Overlay our defaults
COPY tier-1/usr/ /usr/
RUN <<EORUN
set -xeuo pipefail
grep -E -v '^#' /usr/share/doc/fedora-bootc/packages-recommended.txt | xargs dnf -y install
set -euo pipefail
dnf_args=()
echo "Loading packages-excluded"
for x in $(grep -E -v '^#' /usr/share/doc/fedora-bootc/packages-excluded.txt); do
dnf_args+=(--exclude ${x})
done
echo "Loading packages-recommended"
base_pkgs=$(grep -E -v '^#' /usr/share/doc/fedora-bootc/packages-recommended.txt)
pkgfile_for_arch=/usr/share/doc/fedora-bootc/packages-$(arch).txt
arch_pkgs=
if test -f ${pkgfile_for_arch}; then
echo "Loading ${pkgfile_for_arch}"
arch_pkgs=$(grep -E -v '^#' ${pkgfile_for_arch})
fi
dnf -y ${dnf_args[@]} install $base_pkgs $arch_pkgs
# Ensure we regenerate the initramfs with new content
# https://docs.fedoraproject.org/en-US/bootc/initramfs/
kver=$(cd /usr/lib/modules && echo *); dracut -vf /usr/lib/modules/$kver/initramfs.img $kver
# Undo RPM scripts enabling units; we want the presets to be canonical for the base image.
# https://github.com/projectatomic/rpm-ostree/issues/1803
rm -rf /etc/systemd/system/*
systemctl preset-all
rm -rf /etc/systemd/user/*
systemctl --user --global preset-all
dnf clean all
rm -vf /var/log/dnf*
rm -vrf /var/log/*
bootc container lint
EORUN