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.
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
As discussed in the forum[1], package layering can work for building kernel
modules, such as the nvidia driver. However, there are some problems
with the -devel packages needed, as they need to match the exact version
in the base image, and once the version bumps in the yum repo the old
version isn't even available.
So, this adds the minimal set of -devel packages needed to build a a kmod.
This isn't enough to build a kernel module, but the rest needed can much
more easily be layered.
Given the current rawhide dependencies this adds the following packages:
* elfutils-libelf-devel
* glibc-devel
* glibc-headers
* kernel-devel
* kernel-headers
* libxcrypt-devel
* zlib-devel
This adds about 100 megs to a 4 gigabyte image, which I think is a fair
compromise in order to be able to build kernel modules and support
the nvidia drivers.
[1] https://discussion.fedoraproject.org/t/supporting-the-nvidia-drivers-on-silverblue/849/6