# CATATAN logo: src/ui/logo.rs memuat logo shell dari `assets/` memakai # `env!("CARGO_MANIFEST_DIR")` pada RUNTIME, bukan `include_bytes!`. Path itu # menunjuk direktori build saat paket dibuat, sehingga di mesin pengguna file # tidak ditemukan dan kode jatuh ke fallback huruf (kartu tetap tampil, tapi # tanpa logo). Perbaikan sesungguhnya ada di aplikasi (baca dari direktori # data sistem, mis. /usr/share/rakuos-shell-picker), # bukan di spec ini — lihat pembahasan terpisah. Untuk sementara paket tetap # dibangun apa adanya. # rpm di Fedora 44 otomatis membuat subpaket debuginfo/debugsource; dari # tarball pihak ketiga tidak ada layout debugsource yang bisa dietakan, # sehingga keduanya dimatikan (sama seperti software-center/omashow). %global debug_package %{nil} Name: rakuos-shell-picker Version: 0.9.1 Release: 1%{?dist} Summary: Pick the desktop shell (Noctalia/DMS/Caelestia/Ambxst) on Hyprland License: GPL-3.0-only URL: https://github.com/tofan79/rakuos-shell-picker Source0: %{name}-%{version}.tar.gz ExclusiveArch: x86_64 # Rust + GTK4/libadwaita (gtk4 crate 0.9 butuh gtk4 >= 4.6; libadwaita crate # 0.7 dengan feature v1_6 butuh libadwaita >= 1.6 — keduanya sudah jauh # terpenuhi di Fedora 44, chroot COPR tidak perlu repo pihak ketiga). BuildRequires: rust BuildRequires: cargo BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: gtk4-devel BuildRequires: libadwaita-devel BuildRequires: pkgconf-pkg-config BuildRequires: desktop-file-utils # Polkit agent dipanggil lewat `pkexec` untuk operasi install/uninstall paket. # gtk4/libadwaita tidak ditulis manual: rpm mendeteksi soname ELF otomatis. Requires: polkit %description RakuOS Shell Picker memilih desktop shell (panel/widgets/lapisan status) yang berjalan di atas compositor Hyprland, tanpa me-restart compositor. Shell yang tersedia: Noctalia, DMS (DankMaterialShell), Caelestia, dan Ambxst. Setiap switch mem-backup konfigurasi lama dan bisa di-rollback. %prep %autosetup -n %{name}-%{version} %build cargo build --release --locked %install install -Dpm0755 target/release/rakuos-shell-picker \ %{buildroot}%{_bindir}/rakuos-shell-picker install -Dpm0644 data/org.rakuos.ShellPicker.desktop \ %{buildroot}%{_datadir}/applications/org.rakuos.ShellPicker.desktop for s in 16 22 24 32 48 64 128 256 512; do install -Dpm0644 "data/icons/hicolor/${s}x${s}/apps/org.rakuos.ShellPicker.png" \ "%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/org.rakuos.ShellPicker.png" done %check desktop-file-validate \ %{buildroot}%{_datadir}/applications/org.rakuos.ShellPicker.desktop %files %license LICENSE %{_bindir}/rakuos-shell-picker %{_datadir}/applications/org.rakuos.ShellPicker.desktop %{_datadir}/icons/hicolor/*/apps/org.rakuos.ShellPicker.png %changelog * Sat Oct 10 2026 Mindset Apps - 0.9.1-1 - Initial COPR packaging of rakuos-shell-picker. - Rust + GTK4/libadwaita app; ships binary, .desktop entry, and the hicolor icon set (org.rakuos.ShellPicker). Shell logos are compiled into the binary (include_bytes!), so no runtime data files are needed.