From fe766a8fa4c12607bc5d9cd14d51465590bd1b0b Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 1/11] manifests: Update metadata


---

diff --git a/base-atomic.yaml b/base-atomic.yaml
index c0b5d2c..d5c1362 100644
--- a/base-atomic.yaml
+++ b/base-atomic.yaml
@@ -1,15 +1,14 @@
+metadata:
+  summary: "Fedora Base Atomic"
+
 variables:
   variant: "base-atomic"
 
+ref: fedora/rawhide/${basearch}/base-atomic
+
 include:
   - common.yaml
 
-ref: fedora/rawhide/${basearch}/base-atomic
-rojig:
-  name: fedora-base-atomic
-  summary: "Fedora Base Atomic"
-  license: MIT
-
 packages:
   # Generic release package for desktop variants
   - fedora-release
diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 43eeaf3..8b6547f 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -1,16 +1,15 @@
+metadata:
+  summary: "Fedora Budgie Atomic"
+
 variables:
   variant: "budgie-atomic"
 
+ref: fedora/rawhide/${basearch}/onyx
+
 include:
   - common.yaml
   - budgie-atomic-packages.yaml
 
-ref: fedora/rawhide/${basearch}/onyx
-rojig:
-  name: fedora-onyx
-  summary: "Fedora Budgie Atomic"
-  license: MIT
-
 packages:
   - fedora-release-budgie-atomic
   # Make sure that GNOME Software's rpm-ostree plugin is always installed
diff --git a/cosmic-atomic-common.yaml b/cosmic-atomic-common.yaml
index 9705672..044acd6 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -1,16 +1,15 @@
+metadata:
+  summary: "Fedora COSMIC Atomic"
+
 variables:
   variant: "cosmic-atomic"
 
+ref: fedora/rawhide/${basearch}/cosmic-atomic
+
 include:
   - common.yaml
   - cosmic-atomic-packages.yaml
 
-ref: fedora/rawhide/${basearch}/cosmic-atomic
-rojig:
-  name: fedora-cosmic
-  summary: "Fedora COSMIC Atomic"
-  license: MIT
-
 packages:
   - fedora-release-cosmic-atomic
   # Portals for Flatpak
diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index 0d415ce..3279095 100644
--- a/kinoite-common.yaml
+++ b/kinoite-common.yaml
@@ -1,10 +1,16 @@
-include:
-  - common.yaml
+metadata:
+  summary: "Fedora Kinoite"
 
 # Default to Kinoite and override in Kinoite Mobile manifests
 variables:
   variant: "kinoite"
 
+# Default to Kinoite (Desktop). Overriden in the Kinoite Mobile manifest
+ref: fedora/rawhide/${basearch}/kinoite
+
+include:
+  - common.yaml
+
 conditional-include:
   - if: variant == "kinoite"
     include:
@@ -13,13 +19,6 @@ conditional-include:
     include:
       - kinoite-mobile-packages.yaml
 
-# Default to Kinoite (Desktop). Overriden in the Kinoite Mobile manifest
-ref: fedora/rawhide/${basearch}/kinoite
-rojig:
-  name: fedora-kde
-  summary: "Fedora Kinoite"
-  license: MIT
-
 packages:
   - fedora-release-kinoite
   # Install some minor optional tools for KInfoCenter
diff --git a/kinoite-mobile.yaml b/kinoite-mobile.yaml
index a3c0514..2561b04 100644
--- a/kinoite-mobile.yaml
+++ b/kinoite-mobile.yaml
@@ -1,15 +1,14 @@
+metadata:
+  summary: "Fedora Kinoite Mobile"
+
 variables:
   variant: "kinoite-mobile"
 
-include:
-  - kinoite-common.yaml
-
 # Override the default Kinoite ref from the kinoite-common.yaml manifest
 ref: fedora/rawhide/${basearch}/kinoite-mobile
-rojig:
-  name: fedora-kde
-  summary: "Fedora Kinoite Mobile"
-  license: MIT
+
+include:
+  - kinoite-common.yaml
 
 # Kept in the leaf manifest as they are overwritten by Pungi in composes
 repos:
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index 3174a25..fa12fa5 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -1,16 +1,15 @@
+metadata:
+  summary: "Fedora Silverblue"
+
 variables:
   variant: "silverblue"
 
+ref: fedora/rawhide/${basearch}/silverblue
+
 include:
   - common.yaml
   - silverblue-packages.yaml
 
-ref: fedora/rawhide/${basearch}/silverblue
-rojig:
-  name: fedora-silverblue
-  summary: "Fedora Silverblue"
-  license: MIT
-
 packages:
   - fedora-release-silverblue
   - desktop-backgrounds-gnome
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index 7ad8083..ba9429c 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -1,16 +1,15 @@
+metadata:
+  summary: "Fedora Sway Atomic"
+
 variables:
   variant: "sway-atomic"
 
+ref: fedora/rawhide/${basearch}/sericea
+
 include:
   - common.yaml
   - sway-atomic-packages.yaml
 
-ref: fedora/rawhide/${basearch}/sericea
-rojig:
-  name: fedora-sericea
-  summary: "Fedora Sway Atomic"
-  license: MIT
-
 packages:
   - fedora-release-sway-atomic
   # explicitly list some defaults

From 42753f151310341295e3f1a94c104205247078eb Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 2/11] common: Remove exclude_perl (now unused)


We removed the variants that has dependencies on Perl and thus the need
for this variable.

---

diff --git a/common.yaml b/common.yaml
index 73f0135..186e8c6 100644
--- a/common.yaml
+++ b/common.yaml
@@ -5,8 +5,6 @@ mutate-os-release: "${releasever}"
 variables:
   # Default to Bootable Containers and override in classic ostree manifests
   bootable_container: true
-  # Exclude Perl by default and override for XFCE & LXQt
-  exclude_perl: true
 
 # Default to `bash` in our container, the same as other containers we ship.
 container-cmd:

From 323dc931c3addc4d7100f86b3b728ce2b3f7553a Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 3/11] common: Remove explicit bootc inclusion


bootc is now a dependency of rpm-ostree and thus always included.

---

diff --git a/bootc.yaml b/bootc.yaml
deleted file mode 100644
index 91a4aa3..0000000
--- a/bootc.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-# Add bootc for Bootable Container images
-# See: https://fedoraproject.org/wiki/Changes/DNFAndBootcInImageModeFedora
-packages:
-  - bootc
diff --git a/common.yaml b/common.yaml
index 186e8c6..f3a231d 100644
--- a/common.yaml
+++ b/common.yaml
@@ -40,7 +40,6 @@ conditional-include:
   # Manifests included only for the Bootable Container variants
   - if: bootable_container == true
     include:
-      - bootc.yaml
       - dnf5.yaml
 
 packages:

From 8159cb86b81a6b958d71cba7cd5feec33f100c16 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 4/11] common: Use 2024 edition


See: https://coreos.github.io/rpm-ostree/treefile/

---

diff --git a/common.yaml b/common.yaml
index f3a231d..6842bd2 100644
--- a/common.yaml
+++ b/common.yaml
@@ -1,3 +1,4 @@
+edition: "2024"
 releasever: 44
 automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
 mutate-os-release: "${releasever}"
@@ -101,10 +102,8 @@ packages:
 
 selinux: true
 documentation: true
-boot-location: modules
 etc-group-members:
   - wheel
-tmp-is-dir: true
 
 ignore-removed-users:
   - root

From 5cc1907ef79b28c9ee280d78f3b952cdbecbead1 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 5/11] common: Always exclude gnome-software-fedora-langpacks


---

diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 8b6547f..0c18c68 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -22,5 +22,3 @@ exclude-packages:
   - tracker-miners
   - localsearch
   - tinysparql
-  # Exclude GNOME Software's langpack plugin to avoid layering langpacks on Silverblue
-  - gnome-software-fedora-langpacks
diff --git a/common.yaml b/common.yaml
index 6842bd2..d17d35f 100644
--- a/common.yaml
+++ b/common.yaml
@@ -154,6 +154,9 @@ exclude-packages:
   # Ensure that we do not include any Perl package
   - perl-interpreter
   - perl-libs
+  # Exclude GNOME Software's langpack plugin to avoid layering langpacks on
+  # systems where GNOME Software is included
+  - gnome-software-fedora-langpacks
 
 postprocess:
   - |
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index fa12fa5..a10feb2 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -30,11 +30,6 @@ packages:
   # Make sure that GNOME Software's rpm-ostree plugin is always installed
   - gnome-software-rpm-ostree
 
-# Make sure the following are not pulled in when Recommended by other packages
-exclude-packages:
-  # Exclude GNOME Software's langpack plugin to avoid layering langpacks on Silverblue
-  - gnome-software-fedora-langpacks
-
 # Skip Third Party Software page in GNOME Initial Setup as it currently does
 # not work. See: https://bugzilla.redhat.com/show_bug.cgi?id=2362164
 # Users will be offered the option to enable third party repositories again the

From a8f2e3955df6e1fe46d43fee884e65044c64c565 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 6/11] common: Always exclude PackageKit-glib


---

diff --git a/common.yaml b/common.yaml
index d17d35f..119c33e 100644
--- a/common.yaml
+++ b/common.yaml
@@ -132,6 +132,7 @@ packages-x86_64:
 # Make sure the following are not pulled in when Recommended by other packages
 exclude-packages:
   - PackageKit
+  - PackageKit-glib
   # We can not include openh264. See https://fedoraproject.org/wiki/OpenH264
   - gstreamer1-plugin-openh264
   - mozilla-openh264
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index ba9429c..9ff80c3 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -16,9 +16,6 @@ packages:
   - firefox
 
 exclude-packages:
-  # already excluded in comps-sync-exclude-list
-  - PackageKit-glib
-  - grubby
   # nothing in the tree would use these
   - tracker
   - tracker-miners

From 5f6b895255b9a244edcbc42bee573c2b88440292 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 19:52:35 +0000
Subject: [PATCH 7/11] budgie: Remove gnome-software-rpm-ostree


Budgie Atomic uses Plasma Discover now.

---

diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 0c18c68..7f41dbd 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -12,8 +12,6 @@ include:
 
 packages:
   - fedora-release-budgie-atomic
-  # Make sure that GNOME Software's rpm-ostree plugin is always installed
-  - gnome-software-rpm-ostree
 
 # Make sure the following are not pulled in when Recommended by other packages
 exclude-packages:

From e2b5654f804faaf12cf9f255df22a075273b5214 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 13 2025 22:59:27 +0000
Subject: [PATCH 8/11] packages: Move comps sync'ed package lists to a sub dir


Those manifests are automatically generated so let's move them out of
the way as we never edit them manually.

---

diff --git a/REUSE.toml b/REUSE.toml
index 562532a..d2a20ea 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -4,6 +4,7 @@ version = 1
 path = [
   "*.repo",
   "*.yaml",
+  "packages/*.yaml",
   ".gitignore",
   "README.md",
   "ci/*",
diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 7f41dbd..845f895 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/rawhide/${basearch}/onyx
 
 include:
   - common.yaml
-  - budgie-atomic-packages.yaml
+  - packages/budgie-atomic.yaml
 
 packages:
   - fedora-release-budgie-atomic
diff --git a/budgie-atomic-packages.yaml b/budgie-atomic-packages.yaml
deleted file mode 100644
index 5bfcd38..0000000
--- a/budgie-atomic-packages.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - ModemManager
-  - NetworkManager-adsl
-  - NetworkManager-openconnect-gnome
-  - NetworkManager-openvpn-gnome
-  - NetworkManager-ppp
-  - NetworkManager-ssh-gnome
-  - NetworkManager-vpnc-gnome
-  - NetworkManager-wwan
-  - budgie-backgrounds
-  - budgie-control-center
-  - budgie-desktop
-  - budgie-desktop-defaults
-  - budgie-desktop-view
-  - budgie-screensaver
-  - dconf
-  - firefox
-  - fprintd-pam
-  - gedit
-  - glib-networking
-  - glx-utils
-  - gnome-bluetooth
-  - gnome-color-manager
-  - gnome-disk-utility
-  - gnome-keyring-pam
-  - gnome-settings-daemon
-  - gnome-system-monitor
-  - gnome-terminal
-  - gvfs-afc
-  - gvfs-afp
-  - gvfs-archive
-  - gvfs-fuse
-  - gvfs-goa
-  - gvfs-gphoto2
-  - gvfs-mtp
-  - gvfs-smb
-  - lightdm
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - nemo
-  - nemo-fileroller
-  - nemo-seahorse
-  - network-manager-applet
-  - plasma-discover
-  - plymouth-system-theme
-  - polkit
-  - seahorse
-  - slick-greeter
-  - xdg-desktop-portal
-  - xdg-desktop-portal-gtk
-  - xdg-user-dirs-gtk
-  - xorg-x11-drv-amdgpu
-  - xorg-x11-drv-ati
-  - xorg-x11-drv-evdev
-  - xorg-x11-drv-libinput
-  - xorg-x11-drv-nouveau
-  - xorg-x11-drv-qxl
-  - xorg-x11-drv-wacom
-  - xorg-x11-server-Xorg
-  - xorg-x11-xauth
-  - xorg-x11-xinit
-packages-x86_64:
-  - xorg-x11-drv-intel
-  - xorg-x11-drv-openchrome
-  - xorg-x11-drv-vmware
diff --git a/common-packages.yaml b/common-packages.yaml
deleted file mode 100644
index 845ab44..0000000
--- a/common-packages.yaml
+++ /dev/null
@@ -1,207 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - NetworkManager
-  - NetworkManager-bluetooth
-  - NetworkManager-config-connectivity-fedora
-  - NetworkManager-wifi
-  - NetworkManager-wwan
-  - acl
-  - alsa-ucm
-  - alsa-utils
-  - amd-gpu-firmware
-  - at-spi2-atk
-  - at-spi2-core
-  - atheros-firmware
-  - attr
-  - audit
-  - b43-fwcutter
-  - b43-openfwwf
-  - bash
-  - bash-color-prompt
-  - bash-completion
-  - bc
-  - bind-utils
-  - bluez-cups
-  - brcmfmac-firmware
-  - brltty
-  - btrfs-progs
-  - bzip2
-  - chrony
-  - cifs-utils
-  - colord
-  - compsize
-  - coreutils
-  - cpio
-  - cryptsetup
-  - cups
-  - cups-browsed
-  - cups-filters
-  - curl
-  - cyrus-sasl-plain
-  - default-editor
-  - default-fonts-cjk-mono
-  - default-fonts-cjk-sans
-  - default-fonts-cjk-serif
-  - default-fonts-core-emoji
-  - default-fonts-core-math
-  - default-fonts-core-mono
-  - default-fonts-core-sans
-  - default-fonts-core-serif
-  - default-fonts-other-mono
-  - default-fonts-other-sans
-  - default-fonts-other-serif
-  - dnsmasq
-  - e2fsprogs
-  - ethtool
-  - exfatprogs
-  - fedora-bookmarks
-  - fedora-chromium-config
-  - fedora-flathub-remote
-  - fedora-workstation-backgrounds
-  - fedora-workstation-repositories
-  - file
-  - filesystem
-  - firefox
-  - firewalld
-  - fpaste
-  - fwupd
-  - gamemode
-  - glibc
-  - glibc-all-langpacks
-  - gnupg2
-  - gstreamer1-plugin-dav1d
-  - gstreamer1-plugin-libav
-  - gstreamer1-plugins-bad-free
-  - gstreamer1-plugins-good
-  - gstreamer1-plugins-ugly-free
-  - gutenprint
-  - gutenprint-cups
-  - hostname
-  - hplip
-  - hunspell
-  - hyperv-daemons
-  - ibus-anthy
-  - ibus-chewing
-  - ibus-gtk3
-  - ibus-gtk4
-  - ibus-hangul
-  - ibus-libpinyin
-  - ibus-m17n
-  - ibus-typing-booster
-  - intel-gpu-firmware
-  - iproute
-  - iptables-nft
-  - iptstate
-  - iputils
-  - iwlegacy-firmware
-  - iwlwifi-dvm-firmware
-  - iwlwifi-mvm-firmware
-  - kbd
-  - less
-  - libertas-firmware
-  - libglvnd-gles
-  - linux-firmware
-  - logrotate
-  - lrzsz
-  - lsof
-  - man-db
-  - man-pages
-  - mdadm
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - mpage
-  - mt7xxx-firmware
-  - mtr
-  - nfs-utils
-  - nss-altfiles
-  - nss-mdns
-  - ntfs-3g
-  - ntfsprogs
-  - nvidia-gpu-firmware
-  - nxpwireless-firmware
-  - open-vm-tools-desktop
-  - opensc
-  - openssh-clients
-  - openssh-server
-  - orca
-  - pam_afs_session
-  - paps
-  - passwdqc
-  - pciutils
-  - pinfo
-  - pipewire-alsa
-  - pipewire-config-raop
-  - pipewire-gstreamer
-  - pipewire-pulseaudio
-  - pipewire-utils
-  - plocate
-  - plymouth
-  - plymouth-system-theme
-  - policycoreutils
-  - policycoreutils-python-utils
-  - prefixdevname
-  - procps-ng
-  - psmisc
-  - qcom-wwan-firmware
-  - qemu-guest-agent
-  - qt5-qtbase
-  - qt5-qtbase-gui
-  - qt5-qtdeclarative
-  - qt5-qtxmlpatterns
-  - quota
-  - realmd
-  - realtek-firmware
-  - rootfiles
-  - rpm
-  - rpm-ostree
-  - rsync
-  - samba-client
-  - selinux-policy-targeted
-  - setup
-  - shadow-utils
-  - sos
-  - speech-dispatcher
-  - spice-vdagent
-  - spice-webdavd
-  - sssd-common
-  - sssd-kcm
-  - sudo
-  - system-config-printer-udev
-  - systemd
-  - systemd-oomd-defaults
-  - systemd-resolved
-  - systemd-udev
-  - tar
-  - time
-  - tiwilink-firmware
-  - toolbox
-  - tree
-  - unzip
-  - uresourced
-  - usb_modeswitch
-  - usbutils
-  - util-linux
-  - vim-minimal
-  - wget2-wget
-  - which
-  - whois
-  - wireplumber
-  - words
-  - wpa_supplicant
-  - zip
-  - zram-generator-defaults
-packages-x86_64:
-  - alsa-sof-firmware
-  - amd-ucode-firmware
-  - cirrus-audio-firmware
-  - intel-audio-firmware
-  - intel-vsc-firmware
-  - libva-intel-media-driver
-  - mcelog
-  - microcode_ctl
-  - thermald
-  - virtualbox-guest-additions
-packages-aarch64:
-  - qcom-firmware
-  - qrtr
-  - rmtfs
diff --git a/common.yaml b/common.yaml
index 119c33e..0d31df5 100644
--- a/common.yaml
+++ b/common.yaml
@@ -13,7 +13,7 @@ container-cmd:
 
 include:
   # Packages common to all variants
-  - common-packages.yaml
+  - packages/common.yaml
   # See: https://gitlab.com/fedora/ostree/sig/-/issues/1
   - bootupd.yaml
   # Dracut configuration for the initramfs
diff --git a/comps-sync.py b/comps-sync.py
index c3efcdc..56cfb65 100755
--- a/comps-sync.py
+++ b/comps-sync.py
@@ -192,7 +192,7 @@ def main():
     # Return code indicates if changes have or would have been done
     ret = 0
 
-    ret += update_manifests_from_groups(comps, groups, 'common-packages.yaml', "common", args.save, comps_exclude_list, comps_exclude_list_all)
+    ret += update_manifests_from_groups(comps, groups, 'packages/common.yaml', "common", args.save, comps_exclude_list, comps_exclude_list_all)
 
     # List of comps groups used for each variant
     variant_comps_groups = {
@@ -207,7 +207,7 @@ def main():
     # Generate treefiles for all variants
     for variant, groups in variant_comps_groups.items():
         print()
-        ret += update_manifests_from_groups(comps, groups, f'{variant}-packages.yaml', variant, args.save, comps_desktop_exclude_list, comps_exclude_list_all)
+        ret += update_manifests_from_groups(comps, groups, f'packages/{variant}.yaml', variant, args.save, comps_desktop_exclude_list, comps_exclude_list_all)
 
     if not args.save and ret != 0:
         sys.exit(1)
diff --git a/cosmic-atomic-common.yaml b/cosmic-atomic-common.yaml
index 044acd6..1316369 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/rawhide/${basearch}/cosmic-atomic
 
 include:
   - common.yaml
-  - cosmic-atomic-packages.yaml
+  - packages/cosmic-atomic.yaml
 
 packages:
   - fedora-release-cosmic-atomic
diff --git a/cosmic-atomic-packages.yaml b/cosmic-atomic-packages.yaml
deleted file mode 100644
index f004e19..0000000
--- a/cosmic-atomic-packages.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - ark
-  - cosmic-edit
-  - cosmic-files
-  - cosmic-initial-setup
-  - cosmic-player
-  - cosmic-session
-  - cosmic-store
-  - cosmic-term
-  - flatpak
-  - gnome-disk-utility
-  - gnome-keyring-pam
-  - gnome-system-monitor
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - plymouth-system-theme
-  - toolbox
diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index 3279095..67cbbc8 100644
--- a/kinoite-common.yaml
+++ b/kinoite-common.yaml
@@ -14,10 +14,10 @@ include:
 conditional-include:
   - if: variant == "kinoite"
     include:
-      - kinoite-packages.yaml
+      - packages/kinoite.yaml
   - if: variant == "kinoite-mobile"
     include:
-      - kinoite-mobile-packages.yaml
+      - packages/kinoite-mobile.yaml
 
 packages:
   - fedora-release-kinoite
diff --git a/kinoite-mobile-packages.yaml b/kinoite-mobile-packages.yaml
deleted file mode 100644
index 60b37ef..0000000
--- a/kinoite-mobile-packages.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - angelfish
-  - arianna
-  - bluedevil
-  - elisa-player
-  - haruna
-  - kalk
-  - kasts
-  - kclock
-  - keysmith
-  - koko
-  - krecorder
-  - kweather
-  - marknote
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - neochat
-  - okular-mobile
-  - plasma-discover
-  - plasma-discover-notifier
-  - plasma-mobile
-  - plasma-mobile-sounds
-  - plasma-settings
-  - plymouth-system-theme
-  - qmlkonsole
-  - qrca
-  - sddm
-  - sddm-themes
-  - sddm-wayland-plasma
-  - spacebar
-  - tokodon
diff --git a/kinoite-packages.yaml b/kinoite-packages.yaml
deleted file mode 100644
index d232bae..0000000
--- a/kinoite-packages.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - NetworkManager-config-connectivity-fedora
-  - akonadi-server
-  - akonadi-server-mysql
-  - ark
-  - audiocd-kio
-  - aurorae
-  - bluedevil
-  - breeze-icon-theme
-  - colord-kde
-  - dolphin
-  - ffmpegthumbs
-  - filelight
-  - firewall-config
-  - flatpak-kcm
-  - fprintd-pam
-  - kaccounts-integration-qt6
-  - kaccounts-providers
-  - kcharselect
-  - kde-connect
-  - kde-gtk-config
-  - kde-inotify-survey
-  - kde-partitionmanager
-  - kde-settings-pulseaudio
-  - kdebugsettings
-  - kdegraphics-thumbnailers
-  - kdenetwork-filesharing
-  - kdeplasma-addons
-  - kdialog
-  - kdnssd
-  - kf6-baloo-file
-  - kfind
-  - khelpcenter
-  - kinfocenter
-  - kio-admin
-  - kio-gdrive
-  - kjournald
-  - kmenuedit
-  - konsole
-  - krdp
-  - krfb
-  - kscreen
-  - kscreenlocker
-  - kunifiedpush
-  - kwalletmanager5
-  - kwin
-  - kwrite
-  - libappindicator-gtk3
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - pam-kwallet
-  - phonon-qt6-backend-vlc
-  - pinentry-qt
-  - plasma-breeze
-  - plasma-desktop
-  - plasma-desktop-doc
-  - plasma-discover
-  - plasma-discover-notifier
-  - plasma-disks
-  - plasma-drkonqi
-  - plasma-nm
-  - plasma-nm-openconnect
-  - plasma-nm-openvpn
-  - plasma-nm-vpnc
-  - plasma-pa
-  - plasma-print-manager
-  - plasma-systemmonitor
-  - plasma-thunderbolt
-  - plasma-vault
-  - plasma-welcome
-  - plasma-workspace
-  - plasma-workspace-wallpapers
-  - plymouth-system-theme
-  - polkit-kde
-  - samba-usershares
-  - sddm
-  - sddm-breeze
-  - sddm-kcm
-  - sddm-wayland-plasma
-  - signon-kwallet-extension
-  - spectacle
-  - systemd-oomd-defaults
-  - udisks2
-  - vlc-plugin-gstreamer
-  - xwaylandvideobridge
-packages-x86_64:
-  - thermald
diff --git a/packages/budgie-atomic.yaml b/packages/budgie-atomic.yaml
new file mode 100644
index 0000000..5bfcd38
--- /dev/null
+++ b/packages/budgie-atomic.yaml
@@ -0,0 +1,66 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - ModemManager
+  - NetworkManager-adsl
+  - NetworkManager-openconnect-gnome
+  - NetworkManager-openvpn-gnome
+  - NetworkManager-ppp
+  - NetworkManager-ssh-gnome
+  - NetworkManager-vpnc-gnome
+  - NetworkManager-wwan
+  - budgie-backgrounds
+  - budgie-control-center
+  - budgie-desktop
+  - budgie-desktop-defaults
+  - budgie-desktop-view
+  - budgie-screensaver
+  - dconf
+  - firefox
+  - fprintd-pam
+  - gedit
+  - glib-networking
+  - glx-utils
+  - gnome-bluetooth
+  - gnome-color-manager
+  - gnome-disk-utility
+  - gnome-keyring-pam
+  - gnome-settings-daemon
+  - gnome-system-monitor
+  - gnome-terminal
+  - gvfs-afc
+  - gvfs-afp
+  - gvfs-archive
+  - gvfs-fuse
+  - gvfs-goa
+  - gvfs-gphoto2
+  - gvfs-mtp
+  - gvfs-smb
+  - lightdm
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - nemo
+  - nemo-fileroller
+  - nemo-seahorse
+  - network-manager-applet
+  - plasma-discover
+  - plymouth-system-theme
+  - polkit
+  - seahorse
+  - slick-greeter
+  - xdg-desktop-portal
+  - xdg-desktop-portal-gtk
+  - xdg-user-dirs-gtk
+  - xorg-x11-drv-amdgpu
+  - xorg-x11-drv-ati
+  - xorg-x11-drv-evdev
+  - xorg-x11-drv-libinput
+  - xorg-x11-drv-nouveau
+  - xorg-x11-drv-qxl
+  - xorg-x11-drv-wacom
+  - xorg-x11-server-Xorg
+  - xorg-x11-xauth
+  - xorg-x11-xinit
+packages-x86_64:
+  - xorg-x11-drv-intel
+  - xorg-x11-drv-openchrome
+  - xorg-x11-drv-vmware
diff --git a/packages/common.yaml b/packages/common.yaml
new file mode 100644
index 0000000..845ab44
--- /dev/null
+++ b/packages/common.yaml
@@ -0,0 +1,207 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - NetworkManager
+  - NetworkManager-bluetooth
+  - NetworkManager-config-connectivity-fedora
+  - NetworkManager-wifi
+  - NetworkManager-wwan
+  - acl
+  - alsa-ucm
+  - alsa-utils
+  - amd-gpu-firmware
+  - at-spi2-atk
+  - at-spi2-core
+  - atheros-firmware
+  - attr
+  - audit
+  - b43-fwcutter
+  - b43-openfwwf
+  - bash
+  - bash-color-prompt
+  - bash-completion
+  - bc
+  - bind-utils
+  - bluez-cups
+  - brcmfmac-firmware
+  - brltty
+  - btrfs-progs
+  - bzip2
+  - chrony
+  - cifs-utils
+  - colord
+  - compsize
+  - coreutils
+  - cpio
+  - cryptsetup
+  - cups
+  - cups-browsed
+  - cups-filters
+  - curl
+  - cyrus-sasl-plain
+  - default-editor
+  - default-fonts-cjk-mono
+  - default-fonts-cjk-sans
+  - default-fonts-cjk-serif
+  - default-fonts-core-emoji
+  - default-fonts-core-math
+  - default-fonts-core-mono
+  - default-fonts-core-sans
+  - default-fonts-core-serif
+  - default-fonts-other-mono
+  - default-fonts-other-sans
+  - default-fonts-other-serif
+  - dnsmasq
+  - e2fsprogs
+  - ethtool
+  - exfatprogs
+  - fedora-bookmarks
+  - fedora-chromium-config
+  - fedora-flathub-remote
+  - fedora-workstation-backgrounds
+  - fedora-workstation-repositories
+  - file
+  - filesystem
+  - firefox
+  - firewalld
+  - fpaste
+  - fwupd
+  - gamemode
+  - glibc
+  - glibc-all-langpacks
+  - gnupg2
+  - gstreamer1-plugin-dav1d
+  - gstreamer1-plugin-libav
+  - gstreamer1-plugins-bad-free
+  - gstreamer1-plugins-good
+  - gstreamer1-plugins-ugly-free
+  - gutenprint
+  - gutenprint-cups
+  - hostname
+  - hplip
+  - hunspell
+  - hyperv-daemons
+  - ibus-anthy
+  - ibus-chewing
+  - ibus-gtk3
+  - ibus-gtk4
+  - ibus-hangul
+  - ibus-libpinyin
+  - ibus-m17n
+  - ibus-typing-booster
+  - intel-gpu-firmware
+  - iproute
+  - iptables-nft
+  - iptstate
+  - iputils
+  - iwlegacy-firmware
+  - iwlwifi-dvm-firmware
+  - iwlwifi-mvm-firmware
+  - kbd
+  - less
+  - libertas-firmware
+  - libglvnd-gles
+  - linux-firmware
+  - logrotate
+  - lrzsz
+  - lsof
+  - man-db
+  - man-pages
+  - mdadm
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - mpage
+  - mt7xxx-firmware
+  - mtr
+  - nfs-utils
+  - nss-altfiles
+  - nss-mdns
+  - ntfs-3g
+  - ntfsprogs
+  - nvidia-gpu-firmware
+  - nxpwireless-firmware
+  - open-vm-tools-desktop
+  - opensc
+  - openssh-clients
+  - openssh-server
+  - orca
+  - pam_afs_session
+  - paps
+  - passwdqc
+  - pciutils
+  - pinfo
+  - pipewire-alsa
+  - pipewire-config-raop
+  - pipewire-gstreamer
+  - pipewire-pulseaudio
+  - pipewire-utils
+  - plocate
+  - plymouth
+  - plymouth-system-theme
+  - policycoreutils
+  - policycoreutils-python-utils
+  - prefixdevname
+  - procps-ng
+  - psmisc
+  - qcom-wwan-firmware
+  - qemu-guest-agent
+  - qt5-qtbase
+  - qt5-qtbase-gui
+  - qt5-qtdeclarative
+  - qt5-qtxmlpatterns
+  - quota
+  - realmd
+  - realtek-firmware
+  - rootfiles
+  - rpm
+  - rpm-ostree
+  - rsync
+  - samba-client
+  - selinux-policy-targeted
+  - setup
+  - shadow-utils
+  - sos
+  - speech-dispatcher
+  - spice-vdagent
+  - spice-webdavd
+  - sssd-common
+  - sssd-kcm
+  - sudo
+  - system-config-printer-udev
+  - systemd
+  - systemd-oomd-defaults
+  - systemd-resolved
+  - systemd-udev
+  - tar
+  - time
+  - tiwilink-firmware
+  - toolbox
+  - tree
+  - unzip
+  - uresourced
+  - usb_modeswitch
+  - usbutils
+  - util-linux
+  - vim-minimal
+  - wget2-wget
+  - which
+  - whois
+  - wireplumber
+  - words
+  - wpa_supplicant
+  - zip
+  - zram-generator-defaults
+packages-x86_64:
+  - alsa-sof-firmware
+  - amd-ucode-firmware
+  - cirrus-audio-firmware
+  - intel-audio-firmware
+  - intel-vsc-firmware
+  - libva-intel-media-driver
+  - mcelog
+  - microcode_ctl
+  - thermald
+  - virtualbox-guest-additions
+packages-aarch64:
+  - qcom-firmware
+  - qrtr
+  - rmtfs
diff --git a/packages/cosmic-atomic.yaml b/packages/cosmic-atomic.yaml
new file mode 100644
index 0000000..f004e19
--- /dev/null
+++ b/packages/cosmic-atomic.yaml
@@ -0,0 +1,18 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - ark
+  - cosmic-edit
+  - cosmic-files
+  - cosmic-initial-setup
+  - cosmic-player
+  - cosmic-session
+  - cosmic-store
+  - cosmic-term
+  - flatpak
+  - gnome-disk-utility
+  - gnome-keyring-pam
+  - gnome-system-monitor
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - plymouth-system-theme
+  - toolbox
diff --git a/packages/kinoite-mobile.yaml b/packages/kinoite-mobile.yaml
new file mode 100644
index 0000000..60b37ef
--- /dev/null
+++ b/packages/kinoite-mobile.yaml
@@ -0,0 +1,32 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - angelfish
+  - arianna
+  - bluedevil
+  - elisa-player
+  - haruna
+  - kalk
+  - kasts
+  - kclock
+  - keysmith
+  - koko
+  - krecorder
+  - kweather
+  - marknote
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - neochat
+  - okular-mobile
+  - plasma-discover
+  - plasma-discover-notifier
+  - plasma-mobile
+  - plasma-mobile-sounds
+  - plasma-settings
+  - plymouth-system-theme
+  - qmlkonsole
+  - qrca
+  - sddm
+  - sddm-themes
+  - sddm-wayland-plasma
+  - spacebar
+  - tokodon
diff --git a/packages/kinoite.yaml b/packages/kinoite.yaml
new file mode 100644
index 0000000..d232bae
--- /dev/null
+++ b/packages/kinoite.yaml
@@ -0,0 +1,88 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - NetworkManager-config-connectivity-fedora
+  - akonadi-server
+  - akonadi-server-mysql
+  - ark
+  - audiocd-kio
+  - aurorae
+  - bluedevil
+  - breeze-icon-theme
+  - colord-kde
+  - dolphin
+  - ffmpegthumbs
+  - filelight
+  - firewall-config
+  - flatpak-kcm
+  - fprintd-pam
+  - kaccounts-integration-qt6
+  - kaccounts-providers
+  - kcharselect
+  - kde-connect
+  - kde-gtk-config
+  - kde-inotify-survey
+  - kde-partitionmanager
+  - kde-settings-pulseaudio
+  - kdebugsettings
+  - kdegraphics-thumbnailers
+  - kdenetwork-filesharing
+  - kdeplasma-addons
+  - kdialog
+  - kdnssd
+  - kf6-baloo-file
+  - kfind
+  - khelpcenter
+  - kinfocenter
+  - kio-admin
+  - kio-gdrive
+  - kjournald
+  - kmenuedit
+  - konsole
+  - krdp
+  - krfb
+  - kscreen
+  - kscreenlocker
+  - kunifiedpush
+  - kwalletmanager5
+  - kwin
+  - kwrite
+  - libappindicator-gtk3
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - pam-kwallet
+  - phonon-qt6-backend-vlc
+  - pinentry-qt
+  - plasma-breeze
+  - plasma-desktop
+  - plasma-desktop-doc
+  - plasma-discover
+  - plasma-discover-notifier
+  - plasma-disks
+  - plasma-drkonqi
+  - plasma-nm
+  - plasma-nm-openconnect
+  - plasma-nm-openvpn
+  - plasma-nm-vpnc
+  - plasma-pa
+  - plasma-print-manager
+  - plasma-systemmonitor
+  - plasma-thunderbolt
+  - plasma-vault
+  - plasma-welcome
+  - plasma-workspace
+  - plasma-workspace-wallpapers
+  - plymouth-system-theme
+  - polkit-kde
+  - samba-usershares
+  - sddm
+  - sddm-breeze
+  - sddm-kcm
+  - sddm-wayland-plasma
+  - signon-kwallet-extension
+  - spectacle
+  - systemd-oomd-defaults
+  - udisks2
+  - vlc-plugin-gstreamer
+  - xwaylandvideobridge
+packages-x86_64:
+  - thermald
diff --git a/packages/silverblue.yaml b/packages/silverblue.yaml
new file mode 100644
index 0000000..1ce05cc
--- /dev/null
+++ b/packages/silverblue.yaml
@@ -0,0 +1,62 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - ModemManager
+  - NetworkManager-adsl
+  - NetworkManager-openconnect-gnome
+  - NetworkManager-openvpn-gnome
+  - NetworkManager-ppp
+  - NetworkManager-ssh-gnome
+  - NetworkManager-vpnc-gnome
+  - NetworkManager-wwan
+  - adobe-source-code-pro-fonts
+  - avahi
+  - dconf
+  - fprintd-pam
+  - gdm
+  - glib-networking
+  - glycin-thumbnailer
+  - gnome-backgrounds
+  - gnome-bluetooth
+  - gnome-browser-connector
+  - gnome-classic-session
+  - gnome-color-manager
+  - gnome-control-center
+  - gnome-disk-utility
+  - gnome-epub-thumbnailer
+  - gnome-initial-setup
+  - gnome-remote-desktop
+  - gnome-session-wayland-session
+  - gnome-settings-daemon
+  - gnome-shell
+  - gnome-software
+  - gnome-system-monitor
+  - gnome-user-docs
+  - gnome-user-share
+  - gvfs-afc
+  - gvfs-afp
+  - gvfs-archive
+  - gvfs-fuse
+  - gvfs-goa
+  - gvfs-gphoto2
+  - gvfs-mtp
+  - gvfs-smb
+  - librsvg2
+  - libsane-hpaio
+  - localsearch
+  - mesa-dri-drivers
+  - mesa-libEGL
+  - mesa-vulkan-drivers
+  - nautilus
+  - plymouth-system-theme
+  - polkit
+  - ptyxis
+  - rygel
+  - systemd-oomd-defaults
+  - tinysparql
+  - totem-video-thumbnailer
+  - vte-profile
+  - xdg-desktop-portal
+  - xdg-desktop-portal-gnome
+  - xdg-desktop-portal-gtk
+  - xdg-user-dirs-gtk
+  - yelp
diff --git a/packages/sway-atomic.yaml b/packages/sway-atomic.yaml
new file mode 100644
index 0000000..97237cb
--- /dev/null
+++ b/packages/sway-atomic.yaml
@@ -0,0 +1,49 @@
+# DO NOT EDIT! This content is generated from comps-sync.py
+packages:
+  - NetworkManager-l2tp-gnome
+  - NetworkManager-libreswan-gnome
+  - NetworkManager-openconnect-gnome
+  - NetworkManager-openvpn-gnome
+  - NetworkManager-sstp-gnome
+  - NetworkManager-vpnc-gnome
+  - Thunar
+  - blueman
+  - bolt
+  - dunst
+  - foot
+  - fprintd-pam
+  - gnome-keyring-pam
+  - grim
+  - gvfs
+  - gvfs-smb
+  - imv
+  - kanshi
+  - lxqt-policykit
+  - mesa-dri-drivers
+  - mesa-vulkan-drivers
+  - network-manager-applet
+  - pavucontrol
+  - pinentry-gnome3
+  - playerctl
+  - plymouth-system-theme
+  - polkit
+  - pulseaudio-utils
+  - sddm
+  - sddm-wayland-sway
+  - slurp
+  - sway
+  - sway-config-fedora
+  - swaybg
+  - swayidle
+  - swaylock
+  - system-config-printer
+  - thunar-archive-plugin
+  - waybar
+  - wev
+  - wl-clipboard
+  - wlr-randr
+  - wlsunset
+  - xarchiver
+  - xdg-desktop-portal-gtk
+  - xdg-desktop-portal-wlr
+  - xorg-x11-server-Xwayland
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index a10feb2..1006d22 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/rawhide/${basearch}/silverblue
 
 include:
   - common.yaml
-  - silverblue-packages.yaml
+  - packages/silverblue.yaml
 
 packages:
   - fedora-release-silverblue
diff --git a/silverblue-packages.yaml b/silverblue-packages.yaml
deleted file mode 100644
index 1ce05cc..0000000
--- a/silverblue-packages.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - ModemManager
-  - NetworkManager-adsl
-  - NetworkManager-openconnect-gnome
-  - NetworkManager-openvpn-gnome
-  - NetworkManager-ppp
-  - NetworkManager-ssh-gnome
-  - NetworkManager-vpnc-gnome
-  - NetworkManager-wwan
-  - adobe-source-code-pro-fonts
-  - avahi
-  - dconf
-  - fprintd-pam
-  - gdm
-  - glib-networking
-  - glycin-thumbnailer
-  - gnome-backgrounds
-  - gnome-bluetooth
-  - gnome-browser-connector
-  - gnome-classic-session
-  - gnome-color-manager
-  - gnome-control-center
-  - gnome-disk-utility
-  - gnome-epub-thumbnailer
-  - gnome-initial-setup
-  - gnome-remote-desktop
-  - gnome-session-wayland-session
-  - gnome-settings-daemon
-  - gnome-shell
-  - gnome-software
-  - gnome-system-monitor
-  - gnome-user-docs
-  - gnome-user-share
-  - gvfs-afc
-  - gvfs-afp
-  - gvfs-archive
-  - gvfs-fuse
-  - gvfs-goa
-  - gvfs-gphoto2
-  - gvfs-mtp
-  - gvfs-smb
-  - librsvg2
-  - libsane-hpaio
-  - localsearch
-  - mesa-dri-drivers
-  - mesa-libEGL
-  - mesa-vulkan-drivers
-  - nautilus
-  - plymouth-system-theme
-  - polkit
-  - ptyxis
-  - rygel
-  - systemd-oomd-defaults
-  - tinysparql
-  - totem-video-thumbnailer
-  - vte-profile
-  - xdg-desktop-portal
-  - xdg-desktop-portal-gnome
-  - xdg-desktop-portal-gtk
-  - xdg-user-dirs-gtk
-  - yelp
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index 9ff80c3..ee3a07f 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/rawhide/${basearch}/sericea
 
 include:
   - common.yaml
-  - sway-atomic-packages.yaml
+  - packages/sway-atomic.yaml
 
 packages:
   - fedora-release-sway-atomic
diff --git a/sway-atomic-packages.yaml b/sway-atomic-packages.yaml
deleted file mode 100644
index 97237cb..0000000
--- a/sway-atomic-packages.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# DO NOT EDIT! This content is generated from comps-sync.py
-packages:
-  - NetworkManager-l2tp-gnome
-  - NetworkManager-libreswan-gnome
-  - NetworkManager-openconnect-gnome
-  - NetworkManager-openvpn-gnome
-  - NetworkManager-sstp-gnome
-  - NetworkManager-vpnc-gnome
-  - Thunar
-  - blueman
-  - bolt
-  - dunst
-  - foot
-  - fprintd-pam
-  - gnome-keyring-pam
-  - grim
-  - gvfs
-  - gvfs-smb
-  - imv
-  - kanshi
-  - lxqt-policykit
-  - mesa-dri-drivers
-  - mesa-vulkan-drivers
-  - network-manager-applet
-  - pavucontrol
-  - pinentry-gnome3
-  - playerctl
-  - plymouth-system-theme
-  - polkit
-  - pulseaudio-utils
-  - sddm
-  - sddm-wayland-sway
-  - slurp
-  - sway
-  - sway-config-fedora
-  - swaybg
-  - swayidle
-  - swaylock
-  - system-config-printer
-  - thunar-archive-plugin
-  - waybar
-  - wev
-  - wl-clipboard
-  - wlr-randr
-  - wlsunset
-  - xarchiver
-  - xdg-desktop-portal-gtk
-  - xdg-desktop-portal-wlr
-  - xorg-x11-server-Xwayland

From a70ce6b1b7df3ff11ebef54b16dd1994edba4b42 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 14 2025 08:53:49 +0000
Subject: [PATCH 9/11] manifests: Split Fedora specific config into its own manifest


This will make things easier for downstream builds which have to change
the release and logo packages.

---

diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 845f895..89087a4 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -10,9 +10,6 @@ include:
   - common.yaml
   - packages/budgie-atomic.yaml
 
-packages:
-  - fedora-release-budgie-atomic
-
 # Make sure the following are not pulled in when Recommended by other packages
 exclude-packages:
   # Not needed in Budgie Desktop
diff --git a/common.yaml b/common.yaml
index 0d31df5..5f67613 100644
--- a/common.yaml
+++ b/common.yaml
@@ -6,6 +6,8 @@ mutate-os-release: "${releasever}"
 variables:
   # Default to Bootable Containers and override in classic ostree manifests
   bootable_container: true
+  # Default to including Fedora branding and specific packages
+  distro: "fedora"
 
 # Default to `bash` in our container, the same as other containers we ship.
 container-cmd:
@@ -24,8 +26,6 @@ include:
   - kernel-install.yaml
   # Enable composefs
   - composefs.yaml
-  # Fixes for Fedora Third Party
-  - fedora.yaml
 
 arch-include:
   x86_64:
@@ -34,6 +34,10 @@ arch-include:
     - qemu-user-static-non-x86_64.yaml
 
 conditional-include:
+  # Manifests included only if we are building for Fedora
+  - if: distro == "fedora"
+    include:
+      - fedora.yaml
   # Manifests included only for classic ostree variants
   - if: bootable_container == false
     include:
@@ -72,9 +76,6 @@ packages:
   # Flatpak support
   - flatpak
   - xdg-desktop-portal
-  # Contains default ostree remote config to be used on client's
-  # system for fetching ostree update
-  - fedora-repos-ostree
   # the archive repo for more reliable package layering
   # https://github.com/coreos/fedora-coreos-tracker/issues/400
   - fedora-repos-archive
diff --git a/comps-sync-exclude-list.yml b/comps-sync-exclude-list.yml
index 3887fd6..e8f7579 100644
--- a/comps-sync-exclude-list.yml
+++ b/comps-sync-exclude-list.yml
@@ -98,6 +98,14 @@ exclude_list:
     - qadwaitadecorations-qt5
     # X11 specific
     - xorg-x11-drv-libinput
+    # Included explicitly in the fedora.yaml manifest
+    - fedora-chromium-config
+    - fedora-flathub-remote
+    - fedora-workstation-backgrounds
+    - fedora-workstation-repositories
+  firefox:
+    # Included explicitly in the fedora.yaml manifest
+    - fedora-bookmarks
   networkmanager-submodules:
     # Let's use the builtin one by default
     - dhcp-client
@@ -160,7 +168,7 @@ desktop_exclude_list:
     - NetworkManager-libreswan-gnome
     - NetworkManager-sstp-gnome
     - NetworkManager-strongswan-gnome
-    # Pulled-in via the common set of packages
+    # Included explicitly in the fedora.yaml manifest
     - fedora-flathub-remote
     - fedora-workstation-repositories
   budgie-desktop-apps:
@@ -196,7 +204,7 @@ desktop_exclude_list:
   kde-mobile:
     # Already included by default for all variants
     - glibc-all-langpacks
-    # Pulled-in via the common set of packages
+    # Included explicitly in the fedora.yaml manifest
     - fedora-flathub-remote
     - fedora-workstation-repositories
   swaywm-extended:
diff --git a/cosmic-atomic-common.yaml b/cosmic-atomic-common.yaml
index 1316369..195c7bd 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -11,6 +11,5 @@ include:
   - packages/cosmic-atomic.yaml
 
 packages:
-  - fedora-release-cosmic-atomic
   # Portals for Flatpak
   - xdg-desktop-portal-gtk
diff --git a/fedora.yaml b/fedora.yaml
index 9dbe8a1..f7e6957 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -1,3 +1,40 @@
+# All Fedora specific packages and configuration
+packages:
+  - fedora-bookmarks
+  - fedora-chromium-config
+  - fedora-flathub-remote
+  - fedora-workstation-backgrounds
+  - fedora-workstation-repositories
+  # Contains default ostree remote config to be used on client's
+  # system for fetching ostree update
+  - fedora-repos-ostree
+
+# Fedora specific packages for each variant
+conditional-include:
+  - if: variant == "silverblue"
+    include:
+      packages:
+        - fedora-release-silverblue
+  - if: variant == "kinoite"
+    include:
+      packages:
+        - fedora-release-kinoite
+        # Explicitely not included via comps
+        # See: https://pagure.io/fedora-kde/SIG/issue/295
+        - plasma-welcome-fedora
+  - if: variant == "sway-atomic"
+    include:
+      packages:
+        - fedora-release-sway-atomic
+  - if: variant == "budgie-atomic"
+    include:
+      packages:
+        - fedora-release-budgie-atomic
+  - if: variant == "cosmic-atomic"
+    include:
+      packages:
+        - fedora-release-cosmic-atomic
+
 # Remove the Google Chrome repo from the list of Fedora Third Party enabled
 # repos. Workaround for https://github.com/coreos/rpm-ostree/issues/5494
 postprocess:
diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index 67cbbc8..5f381e0 100644
--- a/kinoite-common.yaml
+++ b/kinoite-common.yaml
@@ -20,7 +20,6 @@ conditional-include:
       - packages/kinoite-mobile.yaml
 
 packages:
-  - fedora-release-kinoite
   # Install some minor optional tools for KInfoCenter
   - vulkan-tools
   - xdpyinfo
@@ -34,9 +33,6 @@ packages:
   - NetworkManager-ppp
   # Install gdb to make getting backtraces work with DrKonqi
   - gdb
-  # Explicitely not included via comps
-  # See: https://pagure.io/fedora-kde/SIG/issue/295
-  - plasma-welcome-fedora
   # Make sure rpm-ostree support is installed
   - plasma-discover-rpm-ostree
 
diff --git a/packages/common.yaml b/packages/common.yaml
index 845ab44..a00611e 100644
--- a/packages/common.yaml
+++ b/packages/common.yaml
@@ -54,11 +54,6 @@ packages:
   - e2fsprogs
   - ethtool
   - exfatprogs
-  - fedora-bookmarks
-  - fedora-chromium-config
-  - fedora-flathub-remote
-  - fedora-workstation-backgrounds
-  - fedora-workstation-repositories
   - file
   - filesystem
   - firefox
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index 1006d22..b260db0 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -11,7 +11,6 @@ include:
   - packages/silverblue.yaml
 
 packages:
-  - fedora-release-silverblue
   - desktop-backgrounds-gnome
   - gnome-shell-extension-background-logo
   - pinentry-gnome3
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index ee3a07f..36febee 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -11,7 +11,6 @@ include:
   - packages/sway-atomic.yaml
 
 packages:
-  - fedora-release-sway-atomic
   # explicitly list some defaults
   - firefox
 

From 1fde246de55ddfcce014ac8fc34c9d9d09082069 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 14 2025 09:52:25 +0000
Subject: [PATCH 10/11] ci: Minor Python lints fixes


---

diff --git a/ci/validate b/ci/validate
index c9e6a32..ab6b6f7 100755
--- a/ci/validate
+++ b/ci/validate
@@ -11,7 +11,7 @@ validated=0
 def openat(dirfd, name, mode='r'):
     def opener(path, flags):
         return os.open(path, flags, dir_fd=dirfd)
-    return open(name, mode, opener=opener)
+    return open(name, mode, opener=opener, encoding='UTF-8')
 
 
 def validate_shell(rootfd, name):
@@ -30,17 +30,18 @@ for root, dirs, files, rootfd in os.fwalk('.'):
             files.remove(f)
     for name in files:
         if name.endswith(('.yaml', '.yml')):
-            print("Validating:", name)
-            with open(os.open(name, dir_fd=rootfd, flags=os.O_RDONLY)) as f:
+            print("Validating:", os.path.join(root, name))
+            with open(os.open(name, dir_fd=rootfd, flags=os.O_RDONLY), encoding='UTF-8') as f:
                 yaml.safe_load(f)
-            result = subprocess.run(['grep', '-RniEv', '^(  )*[a-z#/-]|^(  )*\\[|^$|^#', name], encoding='UTF-8',
+            result = subprocess.run(['grep', '-RniEv', '^(  )*[a-z#/-]|^(  )*\\[|^$|^#', name],
+                                    encoding='UTF-8',
                                     preexec_fn=lambda: os.fchdir(rootfd))
             if result.returncode == 0:
                 raise Exception("Found likely invalid indentation in YAML file: {}".format(name))
             validated +=1
             continue
-        elif name.endswith('.sh'):
-            print("Validating:", name)
+        if name.endswith('.sh'):
+            print("Validating:", os.path.join(root, name))
             validate_shell(rootfd, name)
             continue
         stbuf = os.lstat(name, dir_fd=rootfd)
@@ -51,7 +52,7 @@ for root, dirs, files, rootfd in os.fwalk('.'):
         mimetype = subprocess.check_output(['file', '-b', '--mime-type', name], encoding='UTF-8',
                                            preexec_fn=lambda: os.fchdir(rootfd)).strip()
         if mimetype == 'text/x-shellscript':
-            print("Validating:", name)
+            print("Validating:", os.path.join(root, name))
             validate_shell(rootfd, name)
 
 print(f"Validated {validated} files")

From ba7af0aed6ce814d6dee4269c23e51da9be779bc Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 14 2025 11:43:13 +0000
Subject: [PATCH 11/11] justfile: Use 'just validate' in recipes


---

diff --git a/justfile b/justfile
index 9f2c0ca..4b1ce06 100644
--- a/justfile
+++ b/justfile
@@ -156,7 +156,7 @@ compose-legacy variant=default_variant:
         exit 1
     fi
 
-    ./ci/validate > /dev/null || (echo "Failed manifest validation" && exit 1)
+    just validate > /dev/null || (echo "Failed manifest validation" && exit 1)
 
     mkdir -p repo cache logs
     if [[ ! -f "repo/config" ]]; then
@@ -211,7 +211,7 @@ compose-image variant=default_variant:
         exit 1
     fi
 
-    ./ci/validate > /dev/null || (echo "Failed manifest validation" && exit 1)
+    just validate > /dev/null || (echo "Failed manifest validation" && exit 1)
 
     mkdir -p repo cache
     if [[ ! -f "repo/config" ]]; then

