Keep at least one browser, file manager and terminal application in the
base image:
* those applications are almost always needed,
* we can not pre-install Flatpak replacement yet,
* we must ensure they work well.
We were trying to be accurate by filtering by group but
PackageKit is spread across all of them and has various subpackages,
so just add a global regexp-based blacklist.
This doesn't actually drop PK yet because `gnome-software` hard
requires it, but is prep for fixing that.
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
Output from `./comps-sync.py ../fedora-comps/comps-f31.xml.in --save
Syncing packages common to all ostree based desktop versions:
All manifest packages are already listed in comps.
1 packages not in manifest:
psmisc (default, groups: workstation-product)
Wrote fedora-common-ostree-pkgs.json
Syncing packages for gnome-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for kde-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for xfce-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Output from `./comps-sync.py ../fedora-comps/comps-f31.xml.in --save`
```
Syncing packages common to all ostree based desktop versions:
All manifest packages are already listed in comps.
2 packages not in manifest:
NetworkManager-config-connectivity-fedora (default, groups: workstation-product)
gamemode (default, groups: workstation-product)
Wrote fedora-common-ostree-pkgs.json
Syncing packages for gnome-desktop specific version:
All manifest packages are already listed in comps.
1 packages not in manifest:
adobe-source-code-pro-fonts
Wrote gnome-desktop-pkgs.json
Syncing packages for kde-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for xfce-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
```
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
Output from `./comps-sync.py ../fedora-comps/comps-f30.xml.in --save`
```
Syncing packages common to all ostree based desktop versions:
All manifest packages are already listed in comps.
1 packages not in manifest:
policycoreutils-python-utils (default, groups: workstation-product)
Wrote fedora-common-ostree-pkgs.json
Syncing packages for gnome-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for kde-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for xfce-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
```
Output from `./comps-sync.py ../fedora-comps/comps-f30.xml.in --save`
```
Syncing packages common to all ostree based desktop versions:
4 packages not in workstation-product-environment:
gstreamer1-plugin-mpg123
ibus-rawcode
initscripts
polkit
1 packages not in manifest:
mesa-vulkan-drivers (mandatory, groups: base-x)
Wrote fedora-common-ostree-pkgs.json
Syncing packages for gnome-desktop specific version:
All manifest packages are already listed in comps.
3 packages not in manifest:
chrome-gnome-shell
gnome-remote-desktop
gnome-terminal-nautilus
Wrote gnome-desktop-pkgs.json
Syncing packages for kde-desktop specific version:
All manifest packages are already listed in comps.
All comps packages are already listed in manifest.
Syncing packages for xfce-desktop specific version:
All manifest packages are already listed in comps.
2 packages not in manifest:
gnome-keyring-pam
gvfs-mtp
Wrote xfce-desktop-pkgs.json
```
in cb7b538 Dusty moved repos from common to silverblue what was
essentially partial revert 61d907b and therefore breaking xfce/kde
builds. this fixes it by adding repos back
Until we can preinstall flatpaks, we need the apps in the
base image that are needed for first login. Thats yelp, which
is used for the "welcome tour" part of the inial setup experience.
This sync also pulls in the new backgrounds package.
Surprisingly in comps, it's just part of the anaconda group,
and so it ends up on workstation systems indirectly because
anaconda is part of the livecd.
For Fedora Atomic Host, we list it explicitly.
It turns out that when we dropped `docker/atomic`, nothing else
was pulling in `lvm2`.
It's no longer a focus of development, and in particular
for standalone workstation systems, the "system containers"
approach in particular was never a real target.
pungi can't substitute in any included files so we end up
with errors because 'fedora-rawhide' repo isn't accessible
during the pungi run.
Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
At some point I want to add a `usr_bin_sbin_unification: true`
option or so to rpm-ostree, and having `usermode` blocks that.
Also this is a weird legacy Red Hat-ism tool.