This lets the recently-merged improved arch-specific package
support handle all the arch-specific packages which were
previously excluded in `comps-sync-exclude-list.yml` and listed
manually in `fedora-common-ostree.yaml`. As the diff shows,
the sync script now correctly includes the same packages for
the same arches in `fedora-common-ostree-pkgs.yaml`, plus a few
appropriate additions of things that should be there but had
been left out, on ppc64le and aarch64.
We also drop the `packages-armhfp` and `packages-ppc64` lists,
as we no longer build for either of those arches. This allows
us to move `ostree-grub2` into the non-arch-specific list, since
it's no longer left out on any arch we care about.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Bash Heredoc in inline YAML string is tricky. Use an independent
post-process script instead.
Fixes: 5bbc140 Revert "Revert "common: Add readonly sysroot migration unit and script""
This reverts commit 31ad6acced.
With the addition of the fedora-updates-archive repository to fedora-repos, our
concern about not being able to find the correct -devel packages to install
have disappeared. Additionally, the kernel now ships -matched versions
of its packages (to allow matching headers to the main kernel package)
and akmods depends on the matched package, which means that we are sure
to get the package we need.
See also: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1195
See also: https://src.fedoraproject.org/rpms/akmods/pull-request/3
Move the fedora-release-* package requirement to each variant treefile
to enable per variant specifc release package. Silverblue keeps its
existing release package and Kinoite gets its own for Fedora 35:
https://fedoraproject.org/wiki/Changes/Fedora_Kinoite
For now, all other unofficial variants will use the Fedora generic
release package (or the corresponding Spin release package) with the
ostree counting and desktop sub packages to enable those features by
default.
Fixes the following warning:
warning: boot-location: "new" is deprecated, use boot-location: modules
From the rpm-ostree docs (https://coreos.github.io/rpm-ostree/treefile/):
- “new”: A misnomer, this value is no longer “new”. Kernel data goes
in /usr/lib/ostree-boot in addition to /usr/lib/modules. This is the
default; use it if you have a need to care about upgrading from very
old versions of libostree.
- “modules”: Kernel data goes just in /usr/lib/modules. Use this for
new systems, and systems that don’t need to be upgraded from very
old libostree versions.
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.
Pairing this along with https://github.com/coreos/rpm-ostree/pull/2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.
For context see https://github.com/coreos/fedora-coreos-tracker/issues/400
As with mcelog and microcode_ctl, add it to the blocklist and
list it manually in packages-x86_64 in fedora-common-ostree.yaml
instead. This should fix non-x86_64 arches which are failing
because they can't find it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Now that rpm-ostree supports exclude-packages in treefile, we can
finally exclude PackageKit (it's Recommended by gnome-software, but
nothing hard-requires it).
This conversion can be validated using this script:
#!/bin/bash
mkdir -p repo && cd repo && ostree init --repo . --mode=archive && cd ..
variants=('silverblue' 'kinoite' 'xfce' 'lxqt')
for v in ${variants[@]}; do
sudo rpm-ostree compose tree --repo=repo --print-only fedora-$v.yaml > $v.yaml.out
done
git checkout --quiet HEAD~
for v in ${variants[@]}; do
sudo rpm-ostree compose tree --repo=repo --print-only fedora-$v.yaml > $v.json.out
done
for v in ${variants[@]}; do
if [[ ! -z $(diff $v.json.out $v.yaml.out) ]]; then
echo ""
echo "$v: JSON != YAML"
diff $v.json.out $v.yaml.out
echo ""
has_diff="true"
fi
done
git checkout --quiet master
rm -rf ./repo
for v in ${variants[@]}; do
rm ./$v.json.out ./$v.yaml.out
done
if [[ $has_diff == "true" ]]; then
echo "Found some diff!"
else
echo "OK!"
fi