Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.2/linuxpods.spec SRPM URL: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-1.fc43.src.rpm Description: LinuxPods is a native Linux application for Apple AirPods management via the reverse-engineered Apple Accessory Protocol (AAP) over Bluetooth L2CAP. It provides a headless D-Bus daemon and a native KDE Plasma 6 system tray widget. Features: - Battery monitoring - Noise control (ANC/Transparency/Adaptive) - Ear detection with auto-pause - Conversational Awareness Upstream: https://github.com/Explor3Universe/LinuxPods COPR: https://copr.fedorainfracloud.org/coprs/explor3universe/linuxpods/ License: GPL-3.0-or-later This is my first package, I need a sponsor. Fedora Account System Username: explor3universe
Copr build: https://copr.fedorainfracloud.org/coprs/build/10308826 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10308826-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
The spec file doesn't follow the guidelines for the Source tag, please see https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/
1: Change Source0: %{name}-%{version}.tar.gz to Source0: %{URL}/%{name}-%{version}.tar.gz 2: Add this to the main package Requires: hicolor-icon-theme 3: Change Requires: %{name} = %{version}-%{release} to Requires: %{name}%{?_isa} = %{version}-%{release} 4: change, you must own the directory %{_datadir}/librepods/translations/librepods_tr.qm to %{_datadir}/librepods/
Thanks Dan and Leigh for the review — much appreciated, especially as this is my first package. I updated the spec addressing all points: * Source0 now follows the SourceURL guideline (%{URL}/...) * Removed the need for hicolor-icon-theme (GUI front-end is no longer shipped) * Updated sub-package dependency to use %{?_isa} * Fixed directory ownership (no longer creating /usr/share/librepods/) I also addressed several rpmlint issues and improved licensing: * Added SPDX headers to project files * Removed non-redistributable assets (SF Symbols font) * Added man pages and a basic %check section * Declared bundled QR library Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/main/linuxpods.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/explor3universe/linuxpods/srpm-builds/10311771/linuxpods-0.2.0-2.fc43.src.rpm COPR build: https://copr.fedorainfracloud.org/coprs/build/10311771 Please let me know if anything else needs to be fixed. Thanks again!
Created attachment 2136589 [details] The .spec file difference from Copr build 10308826 to 10311860
Copr build: https://copr.fedorainfracloud.org/coprs/build/10311860 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10311860-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
hey Nick! Thanks for packaging it. - looks like url in the spec file is 404 [1]. Doesn't match the upstream url you mentioned above. - considering that upstream doesn't have any versioning I think you shouldn't use it in the package either (you have it set to 0.2.0). - check out Versioning Guidelines and snapshot type of it [2] if you want to refer to a specific commit (e.g 0^commitsha) - as far as I understand you're the upstream's author, is there anything that blocks you from making a release? (it's not a blocker though, it's ok if there is no release) [1] https://github.com/Puerh0x1/LinuxPods [2] https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
Hi Ruslan, thanks for the review! Both issues have been addressed in the v1.0.0 release: 1. URL: The spec now points to the correct upstream: https://github.com/Explor3Universe/LinuxPods The previous reference was stale due to upstream repository relocation. 2. Versioning: Switched to a proper upstream release (v1.0.0) instead of snapshot versioning. The project is now tagged, and Source0 fetches the archive from: %{URL}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Updated package: * Spec: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.0/linuxpods.spec * SRPM: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.0/linuxpods-1.0.0-1.fc43.src.rpm * Release: https://github.com/Explor3Universe/LinuxPods/releases/tag/v1.0.0 Verification: * spectool --get-files resolves Source0 successfully * rpmbuild -ba builds cleanly from the release tarball * Copr build (10313908) succeeded for fedora-42, fedora-43, and rawhide: https://copr.fedorainfracloud.org/coprs/build/10313908 Please let me know if anything else needs to be addressed.
Hello. Looking forward for this package to land! Although I was quite hyped about GUI in the tray. What made you stop shipping it? IMO it loses all point? How to control modes etc without it?
> Please let me know if anything else needs to be addressed. I guess description, if there is no widget anymore. inuxpods.spec: > Summary: AirPods control daemon and KDE Plasma 6 widget
My bad GUI frontend != plasmoid widget. Nvm. Although I have few things to point after testing: 1. Why is ctl called *libre*pods and main daemon *linux*pods? 2. librepods-ctl does not work for me: > $ librepods-ctl noise:off > Could not connect to librepods (is it running?) - Yes it is, in a second terminal. 3. Would be nice if there was some 'usage' hints. 4. My personal nitpick: let me control modes from tray icon:)
Hi Andrei, thanks a lot for testing and for the detailed feedback! You were absolutely right — the CLI issue was a real bug caused by a mismatch between the socket name used by the CLI and the daemon. I’ve fixed this along with a few related improvements and updated the package to a new upstream release (v1.0.1), which now supersedes the previously submitted version for this review. Changes relevant to your feedback: * Fixed CLI connectivity issue * Renamed CLI for consistency (linuxpods) * Added basic usage/help output * Improved runtime handling ($XDG_RUNTIME_DIR) Documentation and usage examples are also available in the upstream repository: https://github.com/Explor3Universe/LinuxPods Updated package: * Spec: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.1/linuxpods.spec * SRPM: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.1/linuxpods-1.0.1-1.fc43.src.rpm * Copr build: https://copr.fedorainfracloud.org/coprs/explor3universe/linuxpods/build/10319280/ * Release: https://github.com/Explor3Universe/LinuxPods/releases/tag/v1.0.1 Please let me know if anything else needs to be addressed.
Created attachment 2136998 [details] The .spec file difference from Copr build 10311860 to 10319924
Copr build: https://copr.fedorainfracloud.org/coprs/build/10319924 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10319924-linuxpods/fedora-review/review.txt Found issues: - Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/linuxpods/diff.txt Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Updated package (v1.0.1) with fixes for review comments: Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.1/linuxpods.spec SRPM URL: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.1/linuxpods-1.0.1-1.fc43.src.rpm [ fedora-review-service-build ]
Copr build: https://copr.fedorainfracloud.org/coprs/build/10320450 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10320450-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Hi, me again. - It says I am supposed to see a popup from tray icon allowing to control modes: does not happen, only battery % on hover. - Its still possible to run linuxpods noise:off when AirPods are disconnected with no error, might want to check that. - Another nitpick: `linuxpods noise:off` does not have any autocomplete options by pressing tab, needing to type whole thing every time. - No option to disable conversation awareness. I should have probably typed it into issues of the repo as improvement suggestions, but well, at least first point is a legit bug for me.
Hi Andrei, thanks again for your testing — this helped clarify the situation. There was a misunderstanding related to how the plasmoid is intended to be used. The widget integrates into the system tray automatically via: X-Plasma-NotificationArea: "true" So normally: * the icon appears automatically when AirPods are connected * clicking it opens the popup UI If the system tray plasmoid (org.kde.plasma.systemtray) is not present, the icon will not appear automatically. In that case it may look like there is no GUI. What likely happened is that the plasmoid was added manually as a standalone widget. In this mode it is not managed by the system tray, and originally click handling was not implemented, since the tray itself provides that behavior. To avoid this confusion, I’ve now updated the plasmoid: * click handling works even when added manually * the popup opens in both tray and standalone modes Regarding other points: * CLI behavior when disconnected The CLI communicates with the daemon via a one-way Unix socket and currently does not receive a response. The plasmoid, on the other hand, uses D-Bus and has full state awareness. I agree this can be improved and plan to address it. * Autocomplete Not implemented yet, noted as an improvement. * Conversation Awareness Available in the GUI. It was missing in the CLI before — now implemented, and usage is included in the CLI help output. Updated package: * Spec: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.2/linuxpods.spec * SRPM: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-1.fc43.src.rpm * Copr build: https://copr.fedorainfracloud.org/coprs/explor3universe/linuxpods/build/10332586/ * Release: https://github.com/Explor3Universe/LinuxPods/releases/tag/v1.0.2 Thanks again for your feedback.
Updated package (v1.0.2): Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.2/linuxpods.spec SRPM URL: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-1.fc43.src.rpm [fedora-review-service-build]
Some spec feedback here: > Source0: %{URL}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz This should be "%{url}/archive/v%{version}/%{name}-%{version}.tar.gz" Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_git_tags > BuildRequires: qt6-qtbase-devel > BuildRequires: qt6-qtconnectivity-devel These should be converted to their "cmake()" virtual names. For example, your CMakeLists has the following: > find_package(Qt6 REQUIRED COMPONENTS Core Bluetooth DBus) That would become: BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6Bluetooth) BuildRequires: cmake(Qt6DBus) > BuildRequires: pulseaudio-libs-devel This is requested via pkgconfig in CMake, it seems: > pkg_check_modules(PULSEAUDIO REQUIRED libpulse) So this would become BuildRequires: pkgconfig(libpulse) > %build > pushd src > %cmake -DLINUXPODS_BUILD_GUI=OFF > %cmake_build > popd This should be broken up into %conf and %build like so %conf pushd src %cmake -DLINUXPODS_BUILD_GUI=OFF popd %build pushd %cmake_build popd > * Wed Apr 15 2026 Nick <noreply> - 1.0.2-1%{?dist} This formatting isn't correct. The author needs to be *you* with a contactable email address. You are permitted to obscure it from spam harvesting, but the idea is that people need to be able to contact you if needed. You also shouldn't put "%{?dist}" there. Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/manual-changelog/
Also, just as a tip, I notice you have a lot of section comments. You can structure a spec file such that all the declarative parts are grouped together. You can see a simple example of that here: https://src.fedoraproject.org/rpms/redhat-systemd-presets/blob/rawhide/f/redhat-systemd-presets.spec
Oh and one more thing: > %{_userpresetdir}/90-linuxpods.preset This is *not allowed* in any package *except* redhat-systemd-presets. Please drop this file and follow the process described below once your package is in Fedora to get the service enabled. Cf. https://docs.fedoraproject.org/en-US/packaging-guidelines/DefaultServices/#_how_to_enable_a_service_by_default
Copr build: https://copr.fedorainfracloud.org/coprs/build/10339524 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10339524-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10339549 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10339549-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Hi Neal, thanks a lot for taking the time to review this — really appreciate the detailed feedback. I’ve gone through all your points and pushed an updated build (1.0.2-3). Changes: Source0 updated to: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires switched to virtual provides: cmake(Qt6Core), cmake(Qt6Bluetooth), cmake(Qt6DBus), cmake(Qt6Network), pkgconfig(openssl), pkgconfig(libpulse) CMake macros split into %conf and %build Changelog cleaned up and updated with proper maintainer info Section comments simplified Removed the preset file; the daemon is now enabled manually via: systemctl --user enable --now linuxpods-daemon Additionally: License tag updated to GPL-3.0-or-later AND MIT (bundled components) Dropped %{?_isa} from the noarch plasmoid subpackage Updated package: Spec: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/v1.0.2/linuxpods.spec SRPM: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-3.fc43.src.rpm Copr build: https://copr.fedorainfracloud.org/coprs/build/10339679 Release: https://github.com/Explor3Universe/LinuxPods/releases/tag/v1.0.2 Let me know if there’s anything else I should adjust.
Created attachment 2137374 [details] The .spec file difference from Copr build 10339549 to 10339850
Copr build: https://copr.fedorainfracloud.org/coprs/build/10339850 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10339850-linuxpods/fedora-review/review.txt Found issues: - Systemd user unit service file(s) in linuxpods Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_user_units Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Hi Neal, just a gentle ping in case this got buried. I believe I’ve addressed the points from your previous review. Would appreciate a look when you have time. Thanks!