Bug 2456922 - Review Request: linuxpods - AirPods control and battery monitor for KDE Plasma 6
Summary: Review Request: linuxpods - AirPods control and battery monitor for KDE Plasma 6
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Andrei
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/Puerh0x1/LinuxPods
Whiteboard:
Depends On:
Blocks: FE-NEEDSPONSOR
TreeView+ depends on / blocked
 
Reported: 2026-04-09 15:23 UTC by Nikita Sizikov
Modified: 2026-10-13 12:15 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
aradchen: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 10308826 to 10311860 (6.45 KB, patch)
2026-04-10 14:44 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 10311860 to 10319924 (5.64 KB, patch)
2026-04-13 18:22 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 10339549 to 10339850 (8.44 KB, patch)
2026-04-16 16:47 UTC, Fedora Review Service
no flags Details | Diff

Description Nikita Sizikov 2026-04-09 15:23:54 UTC
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

Comment 1 Fedora Review Service 2026-04-09 15:36:43 UTC
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.

Comment 2 Dan Horák 2026-04-10 10:12:19 UTC
The spec file doesn't follow the guidelines for the Source tag, please see https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

Comment 3 leigh scott 2026-04-10 10:42:05 UTC
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/

Comment 4 Nikita Sizikov 2026-04-10 14:37:06 UTC
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!

Comment 5 Fedora Review Service 2026-04-10 14:44:03 UTC
Created attachment 2136589 [details]
The .spec file difference from Copr build 10308826 to 10311860

Comment 6 Fedora Review Service 2026-04-10 14:44:05 UTC
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.

Comment 7 Ruslan Bekenev 2026-04-11 12:37:57 UTC
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/

Comment 8 Nikita Sizikov 2026-04-11 14:25:41 UTC
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.

Comment 9 Andrei 2026-04-13 11:25:51 UTC
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?

Comment 10 Andrei 2026-04-13 11:28:12 UTC
> 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

Comment 11 Andrei 2026-04-13 11:42:10 UTC
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:)

Comment 12 Nikita Sizikov 2026-04-13 16:32:57 UTC
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.

Comment 13 Fedora Review Service 2026-04-13 18:22:46 UTC
Created attachment 2136998 [details]
The .spec file difference from Copr build 10311860 to 10319924

Comment 14 Fedora Review Service 2026-04-13 18:22:49 UTC
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.

Comment 15 Nikita Sizikov 2026-04-13 19:32:41 UTC
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 ]

Comment 16 Fedora Review Service 2026-04-13 19:42:36 UTC
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.

Comment 17 Andrei 2026-04-15 15:19:32 UTC
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.

Comment 18 Nikita Sizikov 2026-04-15 18:37:05 UTC
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.

Comment 20 Neal Gompa 2026-04-16 12:02:53 UTC
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/

Comment 21 Neal Gompa 2026-04-16 12:05:14 UTC
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

Comment 22 Neal Gompa 2026-04-16 12:14:36 UTC
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

Comment 23 Fedora Review Service 2026-04-16 14:31:58 UTC
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.

Comment 24 Fedora Review Service 2026-04-16 14:37:13 UTC
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.

Comment 25 Nikita Sizikov 2026-04-16 16:39:39 UTC
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.

Comment 26 Fedora Review Service 2026-04-16 16:47:34 UTC
Created attachment 2137374 [details]
The .spec file difference from Copr build 10339549 to 10339850

Comment 27 Fedora Review Service 2026-04-16 16:47:37 UTC
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.

Comment 28 Nikita Sizikov 2026-04-23 16:31:10 UTC
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!

Comment 29 Andrei 2026-05-18 09:29:50 UTC
FWIW now daemon works correctly and that plasmoid appeared finally for me. 

[fedora-review-service-build]

Comment 30 Fedora Review Service 2026-05-18 21:39:42 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10477020
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2456922-linuxpods/fedora-rawhide-x86_64/10477020-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.

Comment 31 Nikita Sizikov 2026-08-06 06:28:26 UTC
Hi Neal (ngompa13),

just a gentle ping — the package has been waiting for further review feedback since mid-May.  
All the points from your previous comments appear to have been addressed, and recent testing (comment 29) confirms that the daemon and plasmoid now work correctly.

Would really appreciate a look when you have a moment.

Thanks a lot!

Comment 32 Package Review 2026-09-06 00:45:25 UTC
This is an automatic action taken by review-stats script.

The ticket reviewer failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we reset the status and the assignee of this ticket.

Comment 33 Andrei 2026-09-07 08:27:29 UTC
Hi, I hope you haven't abandoned this request. I can take review from here if you'd like.

Comment 34 Nikita Sizikov 2026-09-07 19:08:25 UTC
Hi Andrei,still here, sorry for the radio silence — just didn't want to keep pinging the same ticket.Yes, please take the review, that would be great.Current files:
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.rpmThis is still 1.0.2-3, the one after Neal's spec comments. I can do a new build if you want something refreshed against current rawhide.[fedora-review-service-build]

Comment 35 Andrei 2026-09-08 09:30:26 UTC
[fedora-review-service-build]

Comment 37 Nikita Sizikov 2026-09-13 16:33:29 UTC
Hi Andrei,

fedora-review-service never commented after the last two
[fedora-review-service-build] triggers, so there's no new review.txt
from it. Don't wait on the bot.

Files are still the 1.0.2-3 from comment 34.

If you're taking the formal review, could you assign the bug to
yourself and set fedora-review to '?'? Status is ASSIGNED but the
assignee is still nobody, so it looks unowned again.

I'll fix whatever you find.

Comment 38 Andrei 2026-09-16 12:11:46 UTC
I did run fedora-review manually, going through it. Question though, are you planing to enable GUI at some point (-DLINUXPODS_BUILD_GUI=OFF)? If not it will simplify licensing.

Comment 39 Nikita Sizikov 2026-09-16 13:38:59 UTC
No, I am not going to enable the standalone Qt GUI in Fedora.
The Plasma plasmoid is the UI; -DLINUXPODS_BUILD_GUI=OFF stays.

Updated package (1.0.2-4) for comment 38:

* Stop linking the vendored MIT QR-Code-generator into the daemon
  (it is GUI-only).
* Drop Apple product images, unused QR sources and design mockups
  in %prep.
* License: GPL-3.0-or-later (no bundled() provide).

Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/main/linuxpods.spec
SRPM URL: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-4.fc44.src.rpm
Copr: https://copr.fedorainfracloud.org/coprs/explor3universe/linuxpods/build/10992106/

[fedora-review-service-build]

Comment 40 Nikita Sizikov 2026-09-28 17:43:05 UTC
Hi Andrei,

Just checking in on comment 39 / 1.0.2-4.
Happy to fix whatever you find.

Comment 41 Andrei 2026-10-07 09:16:29 UTC
Hello, Nikita

Sorry its taking so long.

I went through review, few things left to check

1. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in linuxpods-plasmoid 
Not sure where would it be needed, it installs fine for me, but maybe add ?_isa bits.

2. Consider removing unused stuff in some prep script before uploading to lookaside, instead of removing directories in %prep. Check nodejs (https://src.fedoraproject.org/rpms/nodejs26/tree/rawhide) for an example, we remove bundled deps when we are sure we will use system counterparts instead.
It complains: 
Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "*No copyright* GNU General Public License, Version 3". 7 files have unknown license.

Comment 42 Andrei 2026-10-07 09:17:02 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- systemd_user_post is invoked in %post and systemd_user_preun in %preun
  for Systemd user units service files.
  Note: Systemd user unit service file(s) in linuxpods
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/Scriptlets/#_user_units


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[ ]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* GNU General Public
     License, Version 3". 7 files have unknown license. Detailed output of
     licensecheck in /home/aradchen/linuxpods-
     review/2456922-linuxpods/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries or specifies bundled libraries
     with Provides: bundled(<libname>) if unbundling is not possible.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[-]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 8006 bytes in 2 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     linuxpods-plasmoid
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: linuxpods-1.0.2-4.fc46.x86_64.rpm
          linuxpods-plasmoid-1.0.2-4.fc46.noarch.rpm
          linuxpods-1.0.2-4.fc46.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.8.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpnyortk6z')]
checks: 32, packages: 3

linuxpods.src: E: spelling-error ('systemd', '%description -l en_US systemd -> systems, system, system d')
linuxpods.src: E: spelling-error ('plasmoid', '%description -l en_US plasmoid -> plasmon')
linuxpods.x86_64: E: spelling-error ('plasmoid', '%description -l en_US plasmoid -> plasmon')
 3 packages and 0 specfiles checked; 3 errors, 0 warnings, 13 filtered, 3 badness; has taken 0.3 s 




Rpmlint (debuginfo)
-------------------
Checking: linuxpods-debuginfo-1.0.2-4.fc46.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.8.0
configuration:
    /usr/lib/python3.14/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpxmg4a346')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 12 filtered, 0 badness; has taken 0.2 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.10.0
configuration:
    /usr/lib/python3.15/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 33, packages: 3

linuxpods.x86_64: W: spelling-error ('plasmoid', '%description -l en_US plasmoid -> plasmon')
 3 packages and 0 specfiles checked; 0 errors, 1 warnings, 22 filtered, 0 badness; has taken 0.6 s 



Source checksums
----------------
https://github.com/Explor3Universe/LinuxPods/archive/v1.0.2/linuxpods-1.0.2.tar.gz :
  CHECKSUM(SHA256) this package     : 61d778de1adadf5aa981f2ab3505cea41e10c4e4619ad7a2d09b02384ff606bc
  CHECKSUM(SHA256) upstream package : 61d778de1adadf5aa981f2ab3505cea41e10c4e4619ad7a2d09b02384ff606bc


Requires
--------
linuxpods (rpmlib, GLIBC filtered):
    /bin/sh
    bluez
    dbus-common
    libQt6Bluetooth.so.6()(64bit)
    libQt6Bluetooth.so.6(Qt_6)(64bit)
    libQt6Core.so.6()(64bit)
    libQt6Core.so.6(Qt_6)(64bit)
    libQt6Core.so.6(Qt_6.11)(64bit)
    libQt6DBus.so.6()(64bit)
    libQt6DBus.so.6(Qt_6)(64bit)
    libQt6Network.so.6()(64bit)
    libQt6Network.so.6(Qt_6)(64bit)
    libc.so.6()(64bit)
    libcrypto.so.4()(64bit)
    libcrypto.so.4(OPENSSL_4.0.0)(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libpulse.so.0()(64bit)
    libpulse.so.0(PULSE_0)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

linuxpods-plasmoid (rpmlib, GLIBC filtered):
    linuxpods
    plasma-workspace



Provides
--------
linuxpods:
    linuxpods
    linuxpods(x86-64)

linuxpods-plasmoid:
    linuxpods-plasmoid



Generated by fedora-review 0.12.0 (a08f0fc) last change: 2026-09-18
Command line :/usr/sbin/fedora-review -m fedora-rawhide-x86_64 -b 2456922
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: Python, Perl, Haskell, SugarActivity, Java, fonts, Ocaml, R, PHP
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH, UNRETIREMENT

Comment 43 Nikita Sizikov 2026-10-07 16:28:39 UTC
Hi Andrei,

Thanks for the detailed review. Updated package: 1.0.2-5.

1. The plasmoid dependency

linuxpods-plasmoid is noarch and has:
Requires: %{name} = %{version}-%{release}

I have kept it without %{?_isa}, since adding that would tie the
noarch package to the build architecture. The Requiring Base Package
guideline specifies arch-specific dependencies for non-noarch packages:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_requiring_base_package

2. Source preparation and licensing

Source0 is now a filtered archive prepared before SRPM creation.
The SRPM includes a standalone, checksum-pinned repacking script
(Source1) and documentation of the excluded files. The upstream
v1.0.2 tag remains unchanged.

The GUI-only code/assets, QR library and unused research/design
material are now absent from the source archive itself. The cleanup
is no longer performed by deleting directories in %prep.

I reproduced the seven UNKNOWN licensecheck entries locally:
- build.sh and linuxpods.rpmlintrc: obsolete upstream packaging copies,
  now excluded from the archive.
- The three files under docs/: unused research material, now excluded.
- LICENSE: the unchanged full GNU GPL v3 text, installed with %license.
  The source SPDX headers and widget metadata specify GPL-3.0-or-later.
- rpmbuild.env: generated by RPM outside the unpacked upstream tree.

The last two scanner results remain and are documented for manual
review. The QR library is neither shipped nor linked into the daemon.

Regarding the systemd warning: the required user-unit macros are
present in %post, %preun and %postun. I verified the actual RPM
scriptlets against their macro expansions, and the installed unit
passes systemd-analyze verification. The fedora-review 0.12.0 check
still flags this, which appears to be a checker false positive.

Verification:
- Copr build 11090187 succeeded on Fedora 43, Fedora 45 and Rawhide.
- The CLI/daemon/D-Bus checks in %check passed in all three builds.
- The submitted SRPM matches the GitHub release asset byte-for-byte.
- Local Fedora 44 and Rawhide RPMs and the spec pass rpmlint with
  zero errors and warnings using the stock Fedora configuration.

Spec URL: https://raw.githubusercontent.com/Explor3Universe/LinuxPods/bbc0681c84531b951081115b118171fd045552c6/linuxpods.spec
SRPM URL: https://github.com/Explor3Universe/LinuxPods/releases/download/v1.0.2/linuxpods-1.0.2-5.fc44.src.rpm
Copr: https://copr.fedorainfracloud.org/coprs/explor3universe/linuxpods/build/11090187/
Source/license notes: https://github.com/Explor3Universe/LinuxPods/blob/bbc0681c84531b951081115b118171fd045552c6/linuxpods-source-notes.md

[fedora-review-service-build]

Comment 44 Andrei 2026-10-12 11:49:50 UTC
Hello, 

Thank you for addressing those issues. Package now, in my opinion, ready to be onboarded to Fedora. I'd give my review + to this, if others in CC have anything else to say please do so now.

P.S. Keep this request open until package becomes available in Fedora, as per guidelines.

Regards,
Andrei.

Comment 45 Nikita Sizikov 2026-10-13 12:15:03 UTC
Hi Andrei,

Thanks a lot for the review and all the work you put into it — really glad the package made it through.

One last step for me as a first-time packager is finding a sponsor. I've filed a request here:
https://forge.fedoraproject.org/packaging/sponsors/issues/805

If you happen to know someone who'd be willing to pick it up, I'd really appreciate a pointer.

Thanks again!
Nikita


Note You need to log in before you can comment on or make changes to this bug.