Use a filtered comps group to add essential apps instead of manually
listing them in the manifest.
Also add gparted to the image as it needs privileges thus it can't run
as a Flatpak.
$ ./comps-sync.py ../fedora-comps/comps-f34.xml.in --save
Syncing packages common to all desktops:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for gnome-desktop:
- All manifest packages are already listed in comps.
- 1 packages not in gnome-desktop manifest:
fprintd-pam
Wrote gnome-desktop-pkgs.yaml
Syncing packages for kde-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for xfce-desktop:
- 2 packages not in xfce-desktop comps group:
arc-theme
xscreensaver-base
- 2 packages not in xfce-desktop manifest:
mint-y-theme
xfce4-screensaver
Wrote xfce-desktop-pkgs.yaml
Syncing packages for lxqt-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for deepin-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for pantheon-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for mate-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
./comps-sync.py ../fedora-comps/comps-f33.xml.in --save
Syncing packages common to all desktops:
- 2 packages not in workstation-product-environment:
paratype-pt-sans-fonts
zram
- 4 packages not in manifest:
fedora-repos-modular (default, groups: core)
opensc (default, groups: workstation-product)
pt-sans-fonts (default, groups: fonts)
zram-generator-defaults (default, groups: workstation-product)
Wrote fedora-common-ostree-pkgs.yaml
Syncing packages for xfce-desktop:
- 10 packages not in xfce-desktop comps group:
NetworkManager-adsl
NetworkManager-ppp
NetworkManager-wwan
albatross-gtk2-theme
albatross-gtk3-theme
albatross-xfwm4-theme
bluebird-gtk2-theme
bluebird-gtk3-theme
bluebird-xfwm4-theme
fedora-icon-theme
- All comps packages are already listed in manifest.
Wrote xfce-desktop-pkgs.yaml
Syncing packages for lxqt-desktop:
- 2 packages not in lxqt-desktop comps group:
falkon-kwallet
fedora-icon-theme
- All comps packages are already listed in manifest.
Wrote lxqt-desktop-pkgs.yaml
Syncing packages for deepin-desktop:
- 1 packages not in deepin-desktop comps group:
fedora-icon-theme
- 1 packages not in deepin-desktop manifest:
deepin-icon-theme
Wrote deepin-desktop-pkgs.yaml
Syncing packages for pantheon-desktop:
- 1 packages not in pantheon-desktop comps group:
wingpanel-indicator-ayatana
- All comps packages are already listed in manifest.
Wrote pantheon-desktop-pkgs.yaml
./comps-sync.py ../fedora-comps/comps-f33.xml.in --save
Syncing packages common to all desktops:
- 7 packages not in workstation-product-environment:
fedora-user-agent-chrome
gnu-free-mono-fonts
gnu-free-sans-fonts
gnu-free-serif-fonts
google-noto-sans-sinhala-fonts
google-noto-serif-cjk-ttc-fonts
lohit-gurmukhi-fonts
- 6 packages not in manifest:
earlyoom (default, groups: workstation-product)
fedora-chromium-config (default, groups: workstation-product)
google-noto-sans-gurmukhi-fonts (default, groups: fonts)
google-noto-sans-sinhala-vf-fonts (default, groups: fonts)
nano (default, groups: workstation-product)
xorg-x11-drv-armada (mandatory, groups: base-x)
Wrote fedora-common-ostree-pkgs.yaml
Syncing packages for gnome-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for kde-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for xfce-desktop:
- 2 packages not in xfce-desktop comps group:
greybird-gtk2-theme
greybird-gtk3-theme
- 2 packages not in xfce-desktop manifest:
greybird-dark-theme
greybird-light-theme
Wrote xfce-desktop-pkgs.yaml
Syncing packages for lxqt-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for deepin-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for pantheon-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
./comps-sync.py ../fedora-comps/comps-f31.xml.in --save
Syncing packages common to all desktops:
- All manifest packages are already listed in comps.
- 1 packages not in manifest:
zram (mandatory, groups: workstation-product)
Wrote fedora-common-ostree-pkgs.yaml
Syncing packages for gnome-desktop:
- All manifest packages are already listed in comps.
- 1 packages not in gnome-desktop manifest:
orca
Wrote gnome-desktop-pkgs.yaml
Syncing packages for kde-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for xfce-desktop:
- 1 packages not in xfce-desktop comps group:
xfce4-session-engines
- All comps packages are already listed in manifest.
Wrote xfce-desktop-pkgs.yaml
Syncing packages for lxqt-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for deepin-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
Syncing packages for pantheon-desktop:
- All manifest packages are already listed in comps.
- All comps packages are already listed in manifest.
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.
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