From 01a073a28db11e21f9aba34146df438e5fdafd44 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 1/27] manifests: Update metadata


---

diff --git a/base-atomic.yaml b/base-atomic.yaml
index 98dba08..cfdef59 100644
--- a/base-atomic.yaml
+++ b/base-atomic.yaml
@@ -1,15 +1,14 @@
+metadata:
+  summary: "Fedora Base Atomic"
+
 variables:
   variant: "base-atomic"
 
+ref: fedora/43/${basearch}/base-atomic
+
 include:
   - common.yaml
 
-ref: fedora/43/${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 7fd6bba..eeab5aa 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/43/${basearch}/onyx
+
 include:
   - common.yaml
   - budgie-atomic-packages.yaml
 
-ref: fedora/43/${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 efa32de..5d4a547 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/43/${basearch}/cosmic-atomic
+
 include:
   - common.yaml
   - cosmic-atomic-packages.yaml
 
-ref: fedora/43/${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 f3ce822..cdeae2d 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/43/${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/43/${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 b797199..31c0d97 100644
--- a/kinoite-mobile.yaml
+++ b/kinoite-mobile.yaml
@@ -1,16 +1,14 @@
+metadata:
+  summary: "Fedora Kinoite Mobile"
+
 variables:
   variant: "kinoite-mobile"
 
+ref: fedora/43/${basearch}/kinoite-mobile
+
 include:
   - kinoite-common.yaml
 
-# Override the default Kinoite ref from the kinoite-common.yaml manifest
-ref: fedora/43/${basearch}/kinoite-mobile
-rojig:
-  name: fedora-kde
-  summary: "Fedora Kinoite Mobile"
-  license: MIT
-
 # Kept in the leaf manifest as they are overwritten by Pungi in composes
 repos:
   - fedora-43
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index a2db765..31fce29 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -1,16 +1,15 @@
+metadata:
+  summary: "Fedora Silverblue"
+
 variables:
   variant: "silverblue"
 
+ref: fedora/43/${basearch}/silverblue
+
 include:
   - common.yaml
   - silverblue-packages.yaml
 
-ref: fedora/43/${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 4235e77..b2a040a 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/43/${basearch}/sericea
+
 include:
   - common.yaml
   - sway-atomic-packages.yaml
 
-ref: fedora/43/${basearch}/sericea
-rojig:
-  name: fedora-sericea
-  summary: "Fedora Sway Atomic"
-  license: MIT
-
 packages:
   - fedora-release-sway-atomic
   # explicitly list some defaults

From 6535e34de6a63b6d8dbeecf82b5722727e26a497 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 2/27] 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 5804829..229f77b 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 53b812d408e53810a1bfd8c03e9dbc7cb5fa57e1 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 3/27] 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 229f77b..6f06139 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 7cef5b426459ccd08189b544f9210a973491aad6 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 4/27] common: Use 2024 edition


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

---

diff --git a/common.yaml b/common.yaml
index 6f06139..36b7ad9 100644
--- a/common.yaml
+++ b/common.yaml
@@ -1,3 +1,4 @@
+edition: "2024"
 releasever: 43
 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 5bd26bfd894b004becad449b270fad0c6748eaab Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 5/27] common: Always exclude gnome-software-fedora-langpacks


---

diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index eeab5aa..3614b23 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 36b7ad9..715e02f 100644
--- a/common.yaml
+++ b/common.yaml
@@ -155,6 +155,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 31fce29..39c71a1 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -33,11 +33,6 @@ packages:
   # See: https://github.com/fedora-silverblue/issue-tracker/issues/201
   - openssl
 
-# 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 a25c21d54191c8d2188196f20d5e2572410f1c6a Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 6/27] common: Always exclude PackageKit-glib


---

diff --git a/common.yaml b/common.yaml
index 715e02f..dcf742b 100644
--- a/common.yaml
+++ b/common.yaml
@@ -133,6 +133,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 b2a040a..7d00689 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 bedbbe6945c6c0b5be8bf01ddc59ec068a301488 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 7/27] 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 3614b23..45b9b70 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 42e58610ae0500672c8c4799a1ecdb1038091541 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:49:46 +0000
Subject: [PATCH 8/27] 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 45b9b70..89f5dea 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/43/${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 d9b4112..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
-  - dhcp-client
-  - 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
-  - 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 dcf742b..e94576a 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 e2faa2d..35c3f6b 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 5d4a547..d9e0531 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/43/${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 cdeae2d..c62cbbb 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..d9b4112
--- /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
+  - dhcp-client
+  - 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
+  - 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..8fc2718
--- /dev/null
+++ b/packages/sway-atomic.yaml
@@ -0,0 +1,50 @@
+# 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
+  - gnome-themes-extra
+  - 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 39c71a1..de12aea 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/43/${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 7d00689..d4e865e 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -8,7 +8,7 @@ ref: fedora/43/${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 8fc2718..0000000
--- a/sway-atomic-packages.yaml
+++ /dev/null
@@ -1,50 +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
-  - gnome-themes-extra
-  - 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 e8def16ef17f5d596f912ad64a3434f9636adf81 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:50:16 +0000
Subject: [PATCH 9/27] 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 89f5dea..29ce0f8 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 e94576a..4a375df 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 5e70337..39f1edb 100644
--- a/comps-sync-exclude-list.yml
+++ b/comps-sync-exclude-list.yml
@@ -98,8 +98,16 @@ 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
     # See: https://gitlab.com/fedora/ostree/sig/-/issues/81
     - plocate
+  firefox:
+    # Included explicitly in the fedora.yaml manifest
+    - fedora-bookmarks
   networkmanager-submodules:
     # Let's use the builtin one by default
     - dhcp-client
@@ -162,7 +170,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:
@@ -198,7 +206,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 d9e0531..64779b4 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 de81bff..7c0a213 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
+
 # Enable the fedora-third-party-refresh.service unit that was meant for Atomic
 # Desktops but never got enabled.
 # Remove the Google Chrome repo from the list of Fedora Third Party enabled
diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index c62cbbb..1f57367 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 d9b4112..df74a43 100644
--- a/packages/common.yaml
+++ b/packages/common.yaml
@@ -55,11 +55,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 de12aea..f4c2dab 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 d4e865e..4300420 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 70670aefcbb29e674488f936bf57eaf1e8e8c30d Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:50:23 +0000
Subject: [PATCH 10/27] 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 2b88c47bc787d643bfaec7cbb3d6f57bbcf67c72 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:50:23 +0000
Subject: [PATCH 11/27] 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

From 6a790d98f7a4d39e768a3acf3b855df8a4730018 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:50:23 +0000
Subject: [PATCH 12/27] fedora: Add case for kinoite-mobile variant


Missed during the split in [1].

[1] a70ce6b manifests: Split Fedora specific config into its own manifest

---

diff --git a/fedora.yaml b/fedora.yaml
index 7c0a213..73f0700 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -22,6 +22,13 @@ conditional-include:
         # Explicitely not included via comps
         # See: https://pagure.io/fedora-kde/SIG/issue/295
         - plasma-welcome-fedora
+  - if: variant == "kinoite-mobile"
+    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:

From 1d101b1b94268f88e44dd5ccb010527a399c1be8 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 19 2025 13:50:23 +0000
Subject: [PATCH 13/27] common: Re-add explicit license info


Initial dropped in [1], but better to be explicit.

[1] fe766a8 manifests: Update metadata

---

diff --git a/common.yaml b/common.yaml
index 4a375df..74e197b 100644
--- a/common.yaml
+++ b/common.yaml
@@ -3,6 +3,9 @@ releasever: 43
 automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
 mutate-os-release: "${releasever}"
 
+metadata:
+  license: MIT
+
 variables:
   # Default to Bootable Containers and override in classic ostree manifests
   bootable_container: true

From 3f71833fb154534e814faba651b0783ed382ec7c Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 14/27] manifests: Set ref using variables


Remove duplication and a common soure of conflicts during backports.

---

diff --git a/README.md b/README.md
index afcdf7f..f6ff303 100644
--- a/README.md
+++ b/README.md
@@ -201,7 +201,7 @@ sed -i "s/43/44/g" README.md
 rm fedora-rawhide.repo
 sed -i --follow-symlinks "/- fedora-rawhide/d" *.yaml
 sed -i --follow-symlinks "s/# - fedora-43/- fedora-43/" *.yaml
-sed -i --follow-symlinks "s/ref: fedora\/rawhide/ref: fedora\/43/" *.yaml
+sed -i "s/releasever_ref: \"rawhide\"/releasever_ref: \"43\"/" common.yaml
 ```
 
 ## Historical references
diff --git a/base-atomic.yaml b/base-atomic.yaml
index cfdef59..c34b2f4 100644
--- a/base-atomic.yaml
+++ b/base-atomic.yaml
@@ -4,8 +4,6 @@ metadata:
 variables:
   variant: "base-atomic"
 
-ref: fedora/43/${basearch}/base-atomic
-
 include:
   - common.yaml
 
diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index 29ce0f8..a6fd037 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -4,7 +4,8 @@ metadata:
 variables:
   variant: "budgie-atomic"
 
-ref: fedora/43/${basearch}/onyx
+# Overriden to keep the legacy name used in Fedora
+ref: fedora/${releasever_ref}/${basearch}/onyx
 
 include:
   - common.yaml
diff --git a/common.yaml b/common.yaml
index 74e197b..f260ba1 100644
--- a/common.yaml
+++ b/common.yaml
@@ -11,6 +11,11 @@ variables:
   bootable_container: true
   # Default to including Fedora branding and specific packages
   distro: "fedora"
+  # Used in ref. Equal to releasever, unless it's for Rawhide
+  releasever_ref: "43"
+
+# Default ref, overriden for some variants with legacy names
+ref: ${distro}/${releasever_ref}/${basearch}/${variant}
 
 # Default to `bash` in our container, the same as other containers we ship.
 container-cmd:
diff --git a/cosmic-atomic-common.yaml b/cosmic-atomic-common.yaml
index 64779b4..428747e 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -4,8 +4,6 @@ metadata:
 variables:
   variant: "cosmic-atomic"
 
-ref: fedora/43/${basearch}/cosmic-atomic
-
 include:
   - common.yaml
   - packages/cosmic-atomic.yaml
diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index 1f57367..23a9498 100644
--- a/kinoite-common.yaml
+++ b/kinoite-common.yaml
@@ -5,9 +5,6 @@ metadata:
 variables:
   variant: "kinoite"
 
-# Default to Kinoite (Desktop). Overriden in the Kinoite Mobile manifest
-ref: fedora/43/${basearch}/kinoite
-
 include:
   - common.yaml
 
diff --git a/kinoite-mobile.yaml b/kinoite-mobile.yaml
index 31c0d97..77c87ae 100644
--- a/kinoite-mobile.yaml
+++ b/kinoite-mobile.yaml
@@ -4,8 +4,6 @@ metadata:
 variables:
   variant: "kinoite-mobile"
 
-ref: fedora/43/${basearch}/kinoite-mobile
-
 include:
   - kinoite-common.yaml
 
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index f4c2dab..d6456fe 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -4,8 +4,6 @@ metadata:
 variables:
   variant: "silverblue"
 
-ref: fedora/43/${basearch}/silverblue
-
 include:
   - common.yaml
   - packages/silverblue.yaml
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index 4300420..79bb0e8 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -4,7 +4,8 @@ metadata:
 variables:
   variant: "sway-atomic"
 
-ref: fedora/43/${basearch}/sericea
+# Overriden to keep the legacy name used in Fedora
+ref: fedora/${releasever_ref}/${basearch}/sericea
 
 include:
   - common.yaml

From eb019f4e7ae4c79e7051d931e099ecc135376309 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 15/27] fedora: Skip ostree repo config for Bootable Containers


Ostree repo config is only needed on the classic ostree variants.

---

diff --git a/fedora.yaml b/fedora.yaml
index 73f0700..0be4c8d 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -5,9 +5,6 @@ packages:
   - 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:
@@ -41,6 +38,11 @@ conditional-include:
     include:
       packages:
         - fedora-release-cosmic-atomic
+  # Include ostree remote configuration only on classic ostree variants
+  - if: bootable_container == false
+    include:
+      packages:
+        - fedora-repos-ostree
 
 # Enable the fedora-third-party-refresh.service unit that was meant for Atomic
 # Desktops but never got enabled.

From 12bb9bff6bfa6883f2efb09dc6a1699b0096746b Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 16/27] manifests: Fix PackageKit-glib exclude


Only exclude it for vairants without GNOME Software.

Fixes: a8f2e39 common: Always exclude PackageKit-glib

---

diff --git a/common.yaml b/common.yaml
index f260ba1..1490346 100644
--- a/common.yaml
+++ b/common.yaml
@@ -142,7 +142,6 @@ 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/fedora.yaml b/fedora.yaml
index 0be4c8d..b4aeabe 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -43,6 +43,11 @@ conditional-include:
     include:
       packages:
         - fedora-repos-ostree
+  # Can only be excluded on variants that do not include GNOME Software
+  - if: variant != "silverblue"
+    include:
+      exclude-packages:
+        - PackageKit-glib
 
 # Enable the fedora-third-party-refresh.service unit that was meant for Atomic
 # Desktops but never got enabled.

From dbb8b1f63ea9439e2bf4491fd75621b4102ad3d8 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 17/27] base-atomic: Move fedora-release package to fedora manifest


---

diff --git a/base-atomic.yaml b/base-atomic.yaml
index c34b2f4..d9d87b5 100644
--- a/base-atomic.yaml
+++ b/base-atomic.yaml
@@ -8,9 +8,6 @@ include:
   - common.yaml
 
 packages:
-  # Generic release package for desktop variants
-  - fedora-release
-  - fedora-release-ostree-desktop
   # XWayland support
   - xorg-x11-server-Xwayland
   # Portals for Flatpak
diff --git a/fedora.yaml b/fedora.yaml
index b4aeabe..c572c3d 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -38,6 +38,11 @@ conditional-include:
     include:
       packages:
         - fedora-release-cosmic-atomic
+  - if: variant == "base-atomic"
+    include:
+      packages:
+        - fedora-release
+        - fedora-release-ostree-desktop
   # Include ostree remote configuration only on classic ostree variants
   - if: bootable_container == false
     include:

From 241ef35c7b863c1704d1a25b633c008d257a6ffb Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 18/27] kinoite: Re-split shared manifest to not depend on variant


Variant names are Fedora specific, so we should not depend on those in
shared manifests. Thus re-split the shared config into a shared
manifests for Kinoite and Kinoite Mobile.

---

diff --git a/kinoite-common.yaml b/kinoite-common.yaml
index 23a9498..2d20d67 100644
--- a/kinoite-common.yaml
+++ b/kinoite-common.yaml
@@ -1,65 +1,10 @@
 metadata:
   summary: "Fedora Kinoite"
 
-# Default to Kinoite and override in Kinoite Mobile manifests
 variables:
   variant: "kinoite"
 
 include:
+  - kinoite-shared.yaml
   - common.yaml
-
-conditional-include:
-  - if: variant == "kinoite"
-    include:
-      - packages/kinoite.yaml
-  - if: variant == "kinoite-mobile"
-    include:
-      - packages/kinoite-mobile.yaml
-
-packages:
-  # Install some minor optional tools for KInfoCenter
-  - vulkan-tools
-  - xdpyinfo
-  # Includes a KIO & KCM (can not be Flatpak'ed), used by Dolphin and Gwenview
-  # See https://pagure.io/fedora-kde/SIG/issue/291
-  - kamera
-  # Make sure that previous Anaconda dependencies are kept in the image
-  # See: https://pagure.io/fedora-kde/SIG/issue/243
-  - mobile-broadband-provider-info
-  # Make sure that modem support is installed
-  - NetworkManager-ppp
-  # Install gdb to make getting backtraces work with DrKonqi
-  - gdb
-  # Make sure rpm-ostree support is installed
-  - plasma-discover-rpm-ostree
-
-# Make sure the following are not pulled in when Recommended by other packages
-exclude-packages:
-  - plasma-discover-offline-updates
-  - plasma-discover-packagekit
-  - plasma-pk-updates
-  # Manually excluded as recommended by gtk3 (and likely gtk4 in the future)
-  # See https://pagure.io/fedora-kde/SIG/issue/124
-  - tracker
-  - tracker-miners
-  - localsearch
-  - tinysparql
-  # Ensure we do not include X11 support
-  - plasma-x11
-  - plasma-workspace-x11
-  # Exclude mariadb server tools that bring in Perl
-  - mariadb-server-utils
-
-# Kinoite specific workarounds and configuration
-postprocess:
-  - |
-    #!/bin/bash
-    set -xeuo pipefail
-
-    # Enable weekly auto updates in Discover. In the future, Flatpaks will be
-    # updated daily. See: https://bugs.kde.org/show_bug.cgi?id=454422
-    cat > /etc/xdg/PlasmaDiscoverUpdates <<EOF
-    [Global]
-    UseUnattendedUpdates=true
-    RequiredNotificationInterval=604800
-    EOF
+  - packages/kinoite.yaml
diff --git a/kinoite-mobile-common.yaml b/kinoite-mobile-common.yaml
new file mode 100644
index 0000000..a469b3c
--- /dev/null
+++ b/kinoite-mobile-common.yaml
@@ -0,0 +1,10 @@
+metadata:
+  summary: "Fedora Kinoite Mobile"
+
+variables:
+  variant: "kinoite-mobile"
+
+include:
+  - kinoite-shared.yaml
+  - common.yaml
+  - packages/kinoite-mobile.yaml
diff --git a/kinoite-mobile.yaml b/kinoite-mobile.yaml
index 77c87ae..22690fb 100644
--- a/kinoite-mobile.yaml
+++ b/kinoite-mobile.yaml
@@ -1,11 +1,5 @@
-metadata:
-  summary: "Fedora Kinoite Mobile"
-
-variables:
-  variant: "kinoite-mobile"
-
 include:
-  - kinoite-common.yaml
+  - kinoite-mobile-common.yaml
 
 # Kept in the leaf manifest as they are overwritten by Pungi in composes
 repos:
diff --git a/kinoite-shared.yaml b/kinoite-shared.yaml
new file mode 100644
index 0000000..8227797
--- /dev/null
+++ b/kinoite-shared.yaml
@@ -0,0 +1,49 @@
+# Shared manifest between Kinoite & Kinoite Mobile
+
+packages:
+  # Install some minor optional tools for KInfoCenter
+  - vulkan-tools
+  - xdpyinfo
+  # Includes a KIO & KCM (can not be Flatpak'ed), used by Dolphin and Gwenview
+  # See https://pagure.io/fedora-kde/SIG/issue/291
+  - kamera
+  # Make sure that previous Anaconda dependencies are kept in the image
+  # See: https://pagure.io/fedora-kde/SIG/issue/243
+  - mobile-broadband-provider-info
+  # Make sure that modem support is installed
+  - NetworkManager-ppp
+  # Install gdb to make getting backtraces work with DrKonqi
+  - gdb
+  # Make sure rpm-ostree support is installed
+  - plasma-discover-rpm-ostree
+
+# Make sure the following are not pulled in when Recommended by other packages
+exclude-packages:
+  - plasma-discover-offline-updates
+  - plasma-discover-packagekit
+  - plasma-pk-updates
+  # Manually excluded as recommended by gtk3 (and likely gtk4 in the future)
+  # See https://pagure.io/fedora-kde/SIG/issue/124
+  - tracker
+  - tracker-miners
+  - localsearch
+  - tinysparql
+  # Ensure we do not include X11 support
+  - plasma-x11
+  - plasma-workspace-x11
+  # Exclude mariadb server tools that bring in Perl
+  - mariadb-server-utils
+
+# Kinoite specific workarounds and configuration
+postprocess:
+  - |
+    #!/bin/bash
+    set -xeuo pipefail
+
+    # Enable weekly auto updates in Discover. In the future, Flatpaks will be
+    # updated daily. See: https://bugs.kde.org/show_bug.cgi?id=454422
+    cat > /etc/xdg/PlasmaDiscoverUpdates <<EOF
+    [Global]
+    UseUnattendedUpdates=true
+    RequiredNotificationInterval=604800
+    EOF

From ffff5bfe54ef1e554684655b2deae3d9b8fb8e20 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 19/27] manifests: Move exclude to specific variants


Keep exclude config in variants, not in the Fedora specific manifest.

Fixes: a567407 manifests: Fix PackageKit-glib exclude

---

diff --git a/base-atomic.yaml b/base-atomic.yaml
index d9d87b5..65024eb 100644
--- a/base-atomic.yaml
+++ b/base-atomic.yaml
@@ -14,6 +14,10 @@ packages:
   - xdg-desktop-portal
   - xdg-desktop-portal-gtk
 
+# Can only be excluded on variants that do not include GNOME Software
+exclude-packages:
+  - PackageKit-glib
+
 # Kept in the leaf manifest as they are overwritten by Pungi in composes
 repos:
   - fedora-43
diff --git a/budgie-atomic-common.yaml b/budgie-atomic-common.yaml
index a6fd037..b0eee18 100644
--- a/budgie-atomic-common.yaml
+++ b/budgie-atomic-common.yaml
@@ -18,3 +18,5 @@ exclude-packages:
   - tracker-miners
   - localsearch
   - tinysparql
+  # Can only be excluded on variants that do not include GNOME Software
+  - PackageKit-glib
diff --git a/cosmic-atomic-common.yaml b/cosmic-atomic-common.yaml
index 428747e..4d08878 100644
--- a/cosmic-atomic-common.yaml
+++ b/cosmic-atomic-common.yaml
@@ -11,3 +11,7 @@ include:
 packages:
   # Portals for Flatpak
   - xdg-desktop-portal-gtk
+
+# Can only be excluded on variants that do not include GNOME Software
+exclude-packages:
+  - PackageKit-glib
diff --git a/fedora.yaml b/fedora.yaml
index c572c3d..797c61a 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -1,4 +1,9 @@
-# All Fedora specific packages and configuration
+# Fedora specific packages and configuration
+
+# Note that this manifest must be additive only to allow downstream users to
+# reuse the manifests in this project, excluding this one by setting the
+# "distro" variable to their own value.
+
 packages:
   - fedora-bookmarks
   - fedora-chromium-config
@@ -48,11 +53,6 @@ conditional-include:
     include:
       packages:
         - fedora-repos-ostree
-  # Can only be excluded on variants that do not include GNOME Software
-  - if: variant != "silverblue"
-    include:
-      exclude-packages:
-        - PackageKit-glib
 
 # Enable the fedora-third-party-refresh.service unit that was meant for Atomic
 # Desktops but never got enabled.
diff --git a/kinoite-shared.yaml b/kinoite-shared.yaml
index 8227797..1a98dd5 100644
--- a/kinoite-shared.yaml
+++ b/kinoite-shared.yaml
@@ -33,6 +33,8 @@ exclude-packages:
   - plasma-workspace-x11
   # Exclude mariadb server tools that bring in Perl
   - mariadb-server-utils
+  # Can only be excluded on variants that do not include GNOME Software
+  - PackageKit-glib
 
 # Kinoite specific workarounds and configuration
 postprocess:
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index 79bb0e8..e74a882 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -21,3 +21,5 @@ exclude-packages:
   - tracker-miners
   - localsearch
   - tinysparql
+  # Can only be excluded on variants that do not include GNOME Software
+  - PackageKit-glib

From 0daac161d44912fbb20b621d2688b3e6840fd0e6 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 20/27] fedora: Remove preset for fedora-third-party-refresh


Moved to fedora-release package.

See: https://bugzilla.redhat.com/show_bug.cgi?id=2403093
See: https://src.fedoraproject.org/rpms/fedora-release/pull-request/390

---

diff --git a/fedora.yaml b/fedora.yaml
index 797c61a..2723f2e 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -54,8 +54,6 @@ conditional-include:
       packages:
         - fedora-repos-ostree
 
-# Enable the fedora-third-party-refresh.service unit that was meant for Atomic
-# Desktops but never got enabled.
 # 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:
@@ -63,6 +61,4 @@ postprocess:
     #!/bin/bash
     set -xeuo pipefail
 
-    echo "enable fedora-third-party-refresh.service" >> /usr/lib/systemd/system-preset/81-atomic-desktop.preset
-
     sed -i -e '/google-chrome/,+2d' /usr/lib/fedora-third-party/conf.d/fedora-workstation.conf

From e78c1d441507c9e1b5da7b51791e8cedcdcf2849 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 21/27] bootupd: Remove preset for bootloader-update


Moved to fedora-release package.

See: https://bugzilla.redhat.com/show_bug.cgi?id=2403094
See: https://src.fedoraproject.org/rpms/fedora-release/pull-request/390

---

diff --git a/bootupd.yaml b/bootupd.yaml
index 68b7829..fb03fb9 100644
--- a/bootupd.yaml
+++ b/bootupd.yaml
@@ -19,7 +19,5 @@ postprocess:
     ExecStart=/usr/bin/bootupctl migrate-static-grub-config
     EOF
 
-    echo "enable bootloader-update.service" >> /usr/lib/systemd/system-preset/81-atomic-desktop.preset
-
     # Turn permissive mode on for bootupd until all SELinux issues are fixed
     semanage permissive --noreload --add bootupd_t

From e8a4b535ce82c1d709e7cc81973267d3ea8adb49 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 22/27] comps-sync-exclude-list: Drop file-roller


Has already been removed from comps a while ago.

See: 61ff3046 gnome-desktop: Drop file-roller (fedora-comps)
See: https://pagure.io/fedora-workstation/issue/167

---

diff --git a/comps-sync-exclude-list.yml b/comps-sync-exclude-list.yml
index 39f1edb..274f639 100644
--- a/comps-sync-exclude-list.yml
+++ b/comps-sync-exclude-list.yml
@@ -128,8 +128,6 @@ desktop_exclude_list:
     - cheese
     - decibels
     - snapshot
-    - file-roller
-    - file-roller-nautilus
     - gnome-boxes
     - gnome-calculator
     - gnome-calendar

From d8eb791aecf746d4f27a9a7e93bc7b91b16ed74a Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 23/27] silverblue: Move background & logo packages to fedora manifest


- desktop-backgrounds-gnome: Fedora specific config to set the default
  wallpaper
- gnome-shell-extension-background-logo: GNOME Shell extension to
  include the (Fedora) logo on top of the background

---

diff --git a/fedora.yaml b/fedora.yaml
index 2723f2e..7ae21e7 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -17,6 +17,8 @@ conditional-include:
     include:
       packages:
         - fedora-release-silverblue
+        - desktop-backgrounds-gnome
+        - gnome-shell-extension-background-logo
   - if: variant == "kinoite"
     include:
       packages:
diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index d6456fe..88544ac 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -9,8 +9,6 @@ include:
   - packages/silverblue.yaml
 
 packages:
-  - desktop-backgrounds-gnome
-  - gnome-shell-extension-background-logo
   - pinentry-gnome3
   # Included for now to have layered Qt5 applications use a constistent style
   # Manually included here as it is excluded from the workstation-product group

From b37dd91c54f4a89948adbe6a8f8967cab36dafd8 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 24/27] silverblue: Replace evince with papers


Evince has been replaced with Papers for F43.

See: 5e4daae1 F43: Replace Evince with Papers (fedora-comps)
See: https://pagure.io/fedora-workstation/issue/434
Fixes: cc19180 Update exclude list for some Workstation app changes

---

diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index 88544ac..0e68a97 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -13,12 +13,16 @@ packages:
   # Included for now to have layered Qt5 applications use a constistent style
   # Manually included here as it is excluded from the workstation-product group
   - qadwaitadecorations-qt5
-  # Include evince-thumbnailer otherwise PDF thumbnails won't work in Nautilus
+  # Include papers-thumbnailer otherwise PDF thumbnails won't work in Nautilus
   # https://github.com/fedora-silverblue/issue-tracker/issues/98
-  - evince-thumbnailer
-  # Include evince-previewer otherwise print previews are broken in Evince
+  # https://pagure.io/fedora-workstation/issue/434
+  - papers-thumbnailer
+  # Include papers-previewer otherwise print previews are broken in Papers
   # https://github.com/fedora-silverblue/issue-tracker/issues/122
-  - evince-previewer
+  # https://pagure.io/fedora-workstation/issue/434
+  - papers-previewer
+  # Papers extension for the Nautilus file manager
+  - papers-nautilus
   # Include totem-video-thumbnailer for video thumbnailing in Nautilus
   # https://pagure.io/fedora-workstation/issue/168
   - totem-video-thumbnailer

From 39e6990d4337eebf2f44709460fa0459a5042c37 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 25/27] silverblue: Update note about totem-video-thumbnailer


We still need the thumbnailer as Showtime does not provide one.

See: https://pagure.io/fedora-workstation/issue/488

---

diff --git a/silverblue-common.yaml b/silverblue-common.yaml
index 0e68a97..155a6f3 100644
--- a/silverblue-common.yaml
+++ b/silverblue-common.yaml
@@ -25,6 +25,8 @@ packages:
   - papers-nautilus
   # Include totem-video-thumbnailer for video thumbnailing in Nautilus
   # https://pagure.io/fedora-workstation/issue/168
+  # Totem was replaced by Showtime but we still need the thumbnailer
+  # https://pagure.io/fedora-workstation/issue/488
   - totem-video-thumbnailer
   # Make sure that GNOME Software's rpm-ostree plugin is always installed
   - gnome-software-rpm-ostree

From 1feedd75d62337567a173e869243cf2e96ec6ea5 Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 26/27] manifests: Move Firefox inclusion to Fedora's manifest


We want to, eventually, remove Firefox from the base image. Before we
can effectively do it, we need to figure out a transition path and make
sure that the Firefox Flatpak is mostly functionally equivalent.

This change does not remove Firefox from the image but moves it to the
Fedora manifest so that downstream builds can exclude it if they want
to.

See: https://gitlab.com/fedora/ostree/sig/-/issues/3
See: https://github.com/fedora-silverblue/issue-tracker/issues/288
See: https://gitlab.com/fedora/sigs/flatpak/fedora-flatpaks/-/issues/13

---

diff --git a/comps-sync-exclude-list.yml b/comps-sync-exclude-list.yml
index 274f639..3e69301 100644
--- a/comps-sync-exclude-list.yml
+++ b/comps-sync-exclude-list.yml
@@ -108,6 +108,7 @@ exclude_list:
   firefox:
     # Included explicitly in the fedora.yaml manifest
     - fedora-bookmarks
+    - firefox
   networkmanager-submodules:
     # Let's use the builtin one by default
     - dhcp-client
@@ -171,6 +172,7 @@ desktop_exclude_list:
     # Included explicitly in the fedora.yaml manifest
     - fedora-flathub-remote
     - fedora-workstation-repositories
+    - firefox
   budgie-desktop-apps:
     # Non-critical apps -> Flatpak
     - atril
@@ -178,6 +180,8 @@ desktop_exclude_list:
     - gnome-calculator
     - parole
     - rhythmbox
+    # Included explicitly in the fedora.yaml manifest
+    - firefox
   kde-desktop:
     # Incompatible with ostree for various reasons
     - abrt-desktop
diff --git a/fedora.yaml b/fedora.yaml
index 7ae21e7..18e5add 100644
--- a/fedora.yaml
+++ b/fedora.yaml
@@ -10,6 +10,9 @@ packages:
   - fedora-flathub-remote
   - fedora-workstation-backgrounds
   - fedora-workstation-repositories
+  # Must be included in the image until we figure out how to transistion users
+  # to the Flatpak'ed one. See: https://gitlab.com/fedora/ostree/sig/-/issues/3
+  - firefox
 
 # Fedora specific packages for each variant
 conditional-include:
diff --git a/packages/budgie-atomic.yaml b/packages/budgie-atomic.yaml
index 5bfcd38..a943c62 100644
--- a/packages/budgie-atomic.yaml
+++ b/packages/budgie-atomic.yaml
@@ -15,7 +15,6 @@ packages:
   - budgie-desktop-view
   - budgie-screensaver
   - dconf
-  - firefox
   - fprintd-pam
   - gedit
   - glib-networking
diff --git a/packages/common.yaml b/packages/common.yaml
index df74a43..e4feb04 100644
--- a/packages/common.yaml
+++ b/packages/common.yaml
@@ -57,7 +57,6 @@ packages:
   - exfatprogs
   - file
   - filesystem
-  - firefox
   - firewalld
   - fpaste
   - fwupd
diff --git a/sway-atomic-common.yaml b/sway-atomic-common.yaml
index e74a882..35284ec 100644
--- a/sway-atomic-common.yaml
+++ b/sway-atomic-common.yaml
@@ -11,10 +11,6 @@ include:
   - common.yaml
   - packages/sway-atomic.yaml
 
-packages:
-  # explicitly list some defaults
-  - firefox
-
 exclude-packages:
   # nothing in the tree would use these
   - tracker

From 7240d3f27be7c12b4d5be3bbc6da59c1599014bc Mon Sep 17 00:00:00 2001
From: Timothée Ravier <tim@siosm.fr>
Date: Oct 25 2025 14:56:40 +0000
Subject: [PATCH 27/27] common: Add wireguard-tools for all variants


While we expect users to use the support in NetworkManager and
corresponding graphical interfaces to setup WireGuard connections, it is
practical to have the command line tool at hand to validate settings and
debug issues.

Users have also been requesting the additional functionnality provided
by the associated tools and services from the package.

Finally, it is a really small package.

See: https://github.com/fedora-silverblue/issue-tracker/issues/390
See: https://pagure.io/fedora-workstation/issue/353
See: https://pagure.io/fedora-kde/SIG/issue/381

---

diff --git a/common.yaml b/common.yaml
index 1490346..4812bd1 100644
--- a/common.yaml
+++ b/common.yaml
@@ -108,6 +108,8 @@ packages:
   - printer-driver-brlaser
   - ptouch-driver
   - splix
+  # See: https://github.com/fedora-silverblue/issue-tracker/issues/390
+  - wireguard-tools
 
 selinux: true
 documentation: true

