Name: linuxpods Version: 1.0.1 Release: 1%{?dist} Summary: AirPods control daemon and KDE Plasma 6 widget License: GPL-3.0-or-later URL: https://github.com/Explor3Universe/LinuxPods Source0: %{URL}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: %{name}.rpmlintrc BuildRequires: cmake >= 3.16 BuildRequires: gcc-c++ BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtconnectivity-devel BuildRequires: openssl-devel BuildRequires: pulseaudio-libs-devel BuildRequires: pkgconfig BuildRequires: systemd-rpm-macros # Runtime deps auto-detected from ELF linkage, except the following which # do not appear as .so dependencies but are still required at runtime. Requires: bluez Requires: dbus-common # Bundled third-party library (MIT licensed, upstream at # https://www.nayuki.io/page/qr-code-generator-library). Kept vendored # because Fedora does not currently package this project. Provides: bundled(qr-code-generator) = 1.8 %description LinuxPods is a native Linux backend for Apple AirPods that exposes battery, noise control, ear detection and related features through a session D-Bus interface, using the reverse-engineered Apple Accessory Protocol (AAP) over Bluetooth L2CAP. This package ships the headless daemon (linuxpods-daemon), its systemd user unit, the D-Bus session activation file, and the linuxpods command-line client. Install the linuxpods-plasmoid sub-package for the native KDE Plasma 6 system tray widget. Features: * Battery status (left earbud, right earbud, case, headset) * Active Noise Cancellation, Transparency, Adaptive modes * Ear detection with auto pause/play * Conversational Awareness * D-Bus API for scripting and integration * Command-line control tool (linuxpods) # ── Plasmoid subpackage ────────────────────────────────────────────── %package plasmoid Summary: KDE Plasma 6 system tray widget for LinuxPods BuildArch: noarch Requires: %{name}%{?_isa} = %{version}-%{release} Requires: plasma-workspace %description plasmoid Native KDE Plasma 6 system tray widget for LinuxPods. Provides a compact tray icon with battery percentage and a full popup with noise control, feature toggles, and settings. Communicates with linuxpods-daemon over D-Bus. %prep %autosetup -n LinuxPods-%{version} %build pushd src %cmake -DLINUXPODS_BUILD_GUI=OFF %cmake_build popd %install pushd src %cmake_install popd install -Dpm 0644 data/man/linuxpods-daemon.1 %{buildroot}%{_mandir}/man1/linuxpods-daemon.1 install -Dpm 0644 data/man/linuxpods.1 %{buildroot}%{_mandir}/man1/linuxpods.1 %check # No upstream unit tests yet. As a smoke test, verify the installed # binaries are present and executable. test -x %{buildroot}%{_bindir}/linuxpods-daemon test -x %{buildroot}%{_bindir}/linuxpods %post %systemd_user_post linuxpods-daemon.service %preun %systemd_user_preun linuxpods-daemon.service %postun %systemd_user_postun_with_restart linuxpods-daemon.service # ── Main package files ─────────────────────────────────────────────── %files %license LICENSE %doc README.md %{_bindir}/linuxpods-daemon %{_bindir}/linuxpods %{_mandir}/man1/linuxpods-daemon.1* %{_mandir}/man1/linuxpods.1* %{_datadir}/dbus-1/services/io.github.Explor3Universe.LinuxPods.service %{_userunitdir}/linuxpods-daemon.service %{_userpresetdir}/90-linuxpods.preset # ── Plasmoid subpackage files ──────────────────────────────────────── %files plasmoid %license LICENSE %doc README.md %{_datadir}/plasma/plasmoids/io.github.Explor3Universe.LinuxPods/ %changelog * Sun Apr 13 2026 Nick - 1.0.1-1%{?dist} - Address Fedora reviewer feedback (rhbz#2456922, comment 11): - Fix CLI socket bug: was connecting to wrong socket name, CLI never worked - Move CLI socket from /tmp to XDG_RUNTIME_DIR to prevent ownership conflicts - Rename CLI from librepods-ctl to linuxpods for consistent naming - Add --help/-h flag to CLI - Rebrand D-Bus namespace from me.kavishdevar.linuxpods to io.github.Explor3Universe.LinuxPods - Remove all legacy librepods/LibrePods references - Fix build.sh accumulating stale RPMs from previous builds * Sat Apr 11 2026 Nick - 1.0.0-1%{?dist} - Address second round of Fedora package review feedback (rhbz#2456922): - Fix upstream URL to github.com/Explor3Universe/LinuxPods (the previous github.com/Puerh0x1/LinuxPods reference returned 404) - First tagged upstream release v1.0.0, replacing the untagged 0.2.0 placeholder per Fedora Versioning Guidelines - Source0 now fetches the v1.0.0 GitHub archive directly, dropping the manual tarball generation workflow - %%autosetup uses LinuxPods-%%{version}/ to match the GitHub archive's directory name (repository is LinuxPods, not linuxpods) - %%build and %%install push into src/ where CMakeLists.txt lives * Fri Apr 10 2026 Nick - 0.2.0-2%{?dist} - Address Fedora package review feedback (rhbz#2456922): - Source0 now uses %%{URL} prefix as required by SourceURL guideline - Add Requires: dbus-common for /usr/share/dbus-1 ownership - Use %%{?_isa} in plasmoid subpackage inter-package Requires - Strip RPATH from installed binaries (CMake + Qt fix) - Ship man pages for linuxpods-daemon and linuxpods - Add %%check section validating built binaries - Mark plasmoid subpackage BuildArch: noarch (pure QML) - Add rpmlintrc to filter legitimate project-name false positives - Declare bundled(qr-code-generator) Provides - Add SPDX-License-Identifier headers to all first-party sources - Drop the standalone Qt GUI front-end and the proprietary Apple SF Symbols font it depended on; the package now ships only the daemon, the CLI client and (via the subpackage) the Plasma 6 widget - Drop unused desktop file, application icon and metainfo together with the GUI to keep the package legally clean * Thu Apr 09 2026 Nick - 0.2.0-1%{?dist} - Architecture split: headless daemon + Plasma 6 plasmoid - Add D-Bus interface (io.github.Explor3Universe.LinuxPods.Manager) - Add systemd user service and D-Bus activation - Add native Plasma 6 system tray widget (linuxpods-plasmoid) - Fix critical bugs: use-after-free, double-free, socket leaks - Add AppStream metainfo for Fedora guidelines compliance