%global build_timestamp %(date -u -d @${SOURCE_DATE_EPOCH:-$(date +%%s)} +%%Y%%m%%d%%H%%M%%S) Name: pocketds Version: 1 Release: %{build_timestamp}%{?dist} Summary: Meta packages for the AYANEO Pocket DS Fedora port License: GPL-2.0-or-later URL: https://gitlab.com/linux-pocketds BuildArch: noarch Source0: README.md %global debug_package %{nil} %description Meta-package family for the AYANEO Pocket DS Fedora port. Contains a device-support base and one marker subpackage per desktop profile (KDE Plasma, KDE Plasma Mobile, GNOME, Phosh). The actual desktop package set is chosen at image-build time by mkosi via dnf comps groups (@kde-desktop, @gnome-desktop, @phosh-desktop, @kde-mobile); the profile subpackages here only declare device-side dependencies and serve as a per-image marker so `rpm -q pocketds-` identifies the chosen desktop. # ───────────────────────────────────────────────────────────────────────── # Base — mandatory device support, picked up by every profile. # ───────────────────────────────────────────────────────────────────────── %package base Summary: AYANEO Pocket DS device support (kernel, firmware, ABL, etc.) # kernel ships /boot/Image (boot.img-wrapped) with the embedded busybox # initramfs and the rocknix-patched config. Requires: kernel # Vendor blobs (ADSP, CDSP, GPU, ATH12K WCN7850, etc.). Requires: pocketds-firmware # udev hwdb + InputPlumber capability_map for the AYANEO MCU. Requires: pocketds-userspace # kernel-overlays + first-boot-resize systemd unit. Requires: pocketds-initramfs # ROCKNIX-signed Qualcomm ABL + updateabl. Requires: rocknix-abl # Linux firmware for non-Pocket-DS bits the kernel still touches # (ath12k, wcn7850-bt, qrtr). Requires: linux-firmware # Qualcomm GPU SQE microcode + GMU firmware. Fedora's qcom-firmware # noarch package ships the Adreno SQE / GMU / zap blobs that # linux-firmware doesn't (a740_sqe.fw.xz for SM8550's Adreno 740, # gmu_gen70200.bin, the genXXXX_sqe.fw.xz set, etc.). Without it # drm/msm logs "Direct firmware load for qcom/a740_sqe.fw failed # with error -2" on probe and the GPU never comes up. Requires: qcom-firmware # Mesa + Vulkan stack — kept in base because every profile needs it. Requires: mesa-dri-drivers mesa-vulkan-drivers Requires: mesa-libGL mesa-libEGL mesa-libgbm Requires: libdrm vulkan-loader # Audio. Requires: pipewire pipewire-pulseaudio wireplumber alsa-utils # Networking. Requires: NetworkManager NetworkManager-wifi iwd wpa_supplicant # Input layer (composite virtual gamepad). Requires: inputplumber # Calibration UI (analog sticks). Requires: gamepadcalibration # Power. Requires: power-profiles-daemon upower # Bluetooth. Requires: bluez bluez-tools # Anaconda first-boot wizard core. The graphical front-end (GTK or KDE) # is added by the profile subpackage. Requires: initial-setup %description base Device-support base for the AYANEO Pocket DS. Pulls in the rocknix- patched kernel + DTB, vendor firmware, the ROCKNIX-signed ABL, InputPlumber for the MCU gamepad, the analog stick calibration tool, the Mesa/Vulkan stack, audio (PipeWire) and networking (NetworkManager + iwd) bits. Every desktop profile builds on this. # ───────────────────────────────────────────────────────────────────────── # Marker subpackages. Each pulls in pocketds-base + a *minimum* per-DE # add-on; the bulk of the desktop comes from the dnf comps group named # in mkosi.conf. (@kde-desktop, @gnome-desktop, …). # ───────────────────────────────────────────────────────────────────────── %package kde Summary: KDE Plasma desktop profile marker for the Pocket DS Requires: pocketds-base = %{version}-%{release} Conflicts: pocketds-kde-mobile pocketds-gnome pocketds-phosh # initial-setup-gui ships the wizard core; the wayland-plasma sub-pkg # provides /usr/libexec/initial-setup/run-gui-backend for a Plasma # session. Without the wayland-* backend, run-initial-setup falls # back to the newt TUI on tty7 even on graphical.target. Requires: initial-setup-gui Requires: initial-setup-gui-wayland-plasma %description kde Marker for the KDE Plasma desktop profile. The Plasma 6 stack itself is installed via the @kde-desktop and @kde-apps comps groups in mkosi.conf.kde — those pull in plasma-workspace, plasma-desktop, kwin, plasma-pa, plasma-nm, dolphin, konsole, kate, the breeze theme, and the Plasma greeter (sddm or plasma-login depending on the Fedora release default). %package kde-mobile Summary: KDE Plasma Mobile profile marker for the Pocket DS Requires: pocketds-base = %{version}-%{release} Conflicts: pocketds-kde pocketds-gnome pocketds-phosh # Plasma Mobile is wayland-only and uses the same kwin_wayland session # under the hood, so the wayland-plasma backend works for it too. Requires: initial-setup-gui Requires: initial-setup-gui-wayland-plasma %description kde-mobile Marker for the KDE Plasma Mobile profile. The Plasma Mobile shell is installed via the @kde-mobile and @kde-mobile-apps comps groups in mkosi.conf.kde-mobile. %package gnome Summary: GNOME desktop profile marker for the Pocket DS Requires: pocketds-base = %{version}-%{release} Conflicts: pocketds-kde pocketds-kde-mobile pocketds-phosh # GNOME's own first-boot wizard (replaces anaconda's TUI on graphical # Fedora Workstation). Both can coexist; gnome-initial-setup is # preferred under GDM. We additionally pull the generic wayland # backend for anaconda-style initial-setup so it has a GUI mode in # case gnome-initial-setup is bypassed. Requires: gnome-initial-setup Requires: initial-setup-gui Requires: initial-setup-gui-wayland-generic %description gnome Marker for the GNOME desktop profile. The GNOME stack itself is installed via the @gnome-desktop comps group in mkosi.conf.gnome — that pulls in gnome-shell, mutter, gnome-control-center, GDM, and the gnome-* app set. %package phosh Summary: Phosh (mobile-friendly GNOME) profile marker for the Pocket DS Requires: pocketds-base = %{version}-%{release} Conflicts: pocketds-kde pocketds-kde-mobile pocketds-gnome Requires: gnome-initial-setup Requires: initial-setup-gui Requires: initial-setup-gui-wayland-generic %description phosh Marker for the Phosh (Phone Shell) profile. The Phosh stack is installed via the @phosh-desktop comps group in mkosi.conf.phosh. %prep %build %install mkdir -p %{buildroot}%{_docdir}/%{name} cp %{SOURCE0} %{buildroot}%{_docdir}/%{name}/ %files base %doc %{_docdir}/%{name}/README.md %files kde %doc %{_docdir}/%{name}/README.md %files kde-mobile %doc %{_docdir}/%{name}/README.md %files gnome %doc %{_docdir}/%{name}/README.md %files phosh %doc %{_docdir}/%{name}/README.md %changelog * Wed May 06 2026 Pocket DS Maintainers - %{version}-%{release} - Release auto-stamped from build_timestamp; full history in git log