Bug 2149834 - Review Request: tuner - Minimalist radio station player
Summary: Review Request: tuner - Minimalist radio station player
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Benson Muite
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-12-01 06:02 UTC by Vasiliy Glazov
Modified: 2024-01-24 07:42 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:
benson_muite: fedora-review?


Attachments (Terms of Use)

Description Vasiliy Glazov 2022-12-01 06:02:54 UTC
Spec URL: https://raw.githubusercontent.com/Vascom/tuner/main/tuner.spec
SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/3436/94733436/tuner-1.5.1-1.fc38.src.rpm

Description:
Discover and Listen to your favourite internet radio stations.

Comment 1 Vasiliy Glazov 2022-12-05 06:16:17 UTC
Any progress?

Comment 2 Benson Muite 2022-12-06 13:56:18 UTC
Need another day or so. Thanks for your patience and making this available to Fedora linux users.

Comment 3 Benson Muite 2022-12-07 20:27:41 UTC
Package Review
==============

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



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

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.
[x]: 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", "GNU General Public License v3.0 or later". 66
     files have unknown license. Detailed output of licensecheck in
     /home/fedora/tuner/2149834-tuner/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[?]: Sources contain only permissible code or content.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[?]: The spec file handles locales properly.
[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.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[?]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 2 files.
[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]: 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]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or
     desktop-file-validate if there is such a file.
[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]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[-]: 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).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[?]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: 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]: Fully versioned dependency in subpackages if applicable.
[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: tuner-1.5.1-1.fc38.aarch64.rpm
          tuner-debuginfo-1.5.1-1.fc38.aarch64.rpm
          tuner-debugsource-1.5.1-1.fc38.aarch64.rpm
          tuner-1.5.1-1.fc38.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.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/tmp1b5l041j')]
checks: 31, packages: 4

tuner.aarch64: W: no-manual-page-for-binary com.github.louis77.tuner
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/128x128@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/128x128/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/16x16@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/16x16/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/24x24@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/24x24/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/32x32@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/32x32/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/48x48@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/48x48/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/64x64@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/64x64/apps/com.github.louis77.tuner.svg
 4 packages and 0 specfiles checked; 0 errors, 7 warnings, 0 badness; has taken 2.1 s 




Rpmlint (debuginfo)
-------------------
Checking: tuner-debuginfo-1.5.1-1.fc38.aarch64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.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/tmpo2a4cv0g')]
checks: 31, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.8 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.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: 31, packages: 3

tuner.aarch64: W: no-manual-page-for-binary com.github.louis77.tuner
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/128x128@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/128x128/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/16x16@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/16x16/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/24x24@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/24x24/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/32x32@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/32x32/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/48x48@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/48x48/apps/com.github.louis77.tuner.svg
tuner.aarch64: W: files-duplicate /usr/share/icons/hicolor/64x64@2/apps/com.github.louis77.tuner.svg /usr/share/icons/hicolor/64x64/apps/com.github.louis77.tuner.svg
 3 packages and 0 specfiles checked; 0 errors, 7 warnings, 0 badness; has taken 2.9 s 



Source checksums
----------------
https://github.com/louis77/tuner/archive/refs/tags/1.5.1.tar.gz :
  CHECKSUM(SHA256) this package     : bbb5e7c97da1ee495651d85aca33c2fe58daba81906ae247e12b6a41b1ed7592
  CHECKSUM(SHA256) upstream package : bbb5e7c97da1ee495651d85aca33c2fe58daba81906ae247e12b6a41b1ed7592


Requires
--------
tuner (rpmlib, GLIBC filtered):
    hicolor-icon-theme
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libgdk-3.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgee-0.8.so.2()(64bit)
    libgeoclue-2.so.0()(64bit)
    libgeocode-glib.so.0()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgranite.so.6()(64bit)
    libgstplayer-1.0.so.0()(64bit)
    libgstreamer-1.0.so.0()(64bit)
    libgtk-3.so.0()(64bit)
    libjson-glib-1.0.so.0()(64bit)
    libjson-glib-1.0.so.0(libjson-glib-1.0.so.0)(64bit)
    libsoup-2.4.so.1()(64bit)
    rtld(GNU_HASH)

tuner-debuginfo (rpmlib, GLIBC filtered):

tuner-debugsource (rpmlib, GLIBC filtered):



Provides
--------
tuner:
    application()
    application(com.github.louis77.tuner.desktop)
    metainfo()
    metainfo(com.github.louis77.tuner.appdata.xml)
    tuner
    tuner(aarch-64)

tuner-debuginfo:
    debuginfo(build-id)
    tuner-debuginfo
    tuner-debuginfo(aarch-64)

tuner-debugsource:
    tuner-debugsource
    tuner-debugsource(aarch-64)



Generated by fedora-review 0.9.0 (6761b6c) last change: 2022-08-23
Command line :/usr/bin/fedora-review -b 2149834
Buildroot used: fedora-rawhide-aarch64
Active plugins: Shell-api, Generic
Disabled plugins: Haskell, Perl, Python, SugarActivity, C/C++, Java, R, Ocaml, fonts, PHP
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comments:
a) May want to have
%global forgeurl https://github.com/louis77/tuner
%global tag %{version}
at the top of your spec file and the use
URL:       %{forgeurl}

%forgemeta
Source:    %{forgesource}
b) The license seems to be GPLv3 not GPLv3+
c) Some build warnings:
ted in error domains yet
  250 | 		public unowned string get_name ();
      | 		^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
../src/Controllers/PlayerController.vala:38.5-38.41: warning: Type `Gst.PlayerSt
ate?' can not be used for a GLib.Object property
   38 |     public Gst.PlayerState? current_state { 
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
Additional warnings:
cpio: redhat-linux-build/AboutDialog.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/AbstractContentList.c: Cannot stat: No such file or dir
ectory
cpio: redhat-linux-build/Application.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/ContentBox.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/Countries.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/CountryList.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/DBusInterface.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/DBusMediaPlayer.c: Cannot stat: No such file or directo
ry
cpio: redhat-linux-build/DirectoryController.c: Cannot stat: No such file or dir
ectory
cpio: redhat-linux-build/Genre.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/HeaderBar.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/HeaderLabel.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/LocationDiscovery.c: Cannot stat: No such file or direc
tory
cpio: redhat-linux-build/Main.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/PlayerController.c: Cannot stat: No such file or direct
ory
cpio: redhat-linux-build/PreferencesPopover.c: Cannot stat: No such file or dire
ctory
cpio: redhat-linux-build/RadioBrowserDirectory.c: Cannot stat: No such file or d
irectory
cpio: redhat-linux-build/RevealLabel.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/Station.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/StationBox.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/StationContextMenu.c: Cannot stat: No such file or dire
ctory
cpio: redhat-linux-build/StationList.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/StationStore.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/Theme.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/WelcomeButton.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/Window.c: Cannot stat: No such file or directory
cpio: redhat-linux-build/glib-2.0.vapi: Cannot stat: No such file or directory

d) Assume icons have been made for this project and so are also under GPLv3?
e) It is helpful to do a build on Copr/Koji for all required architectures.
f) Could the files 
%{_datadir}/icons/hicolor/*/apps/com.github.louis77.%{name}.svg
%{_datadir}/metainfo/com.github.louis77.%{name}.appdata.xml
%{_datadir}/applications/com.github.louis77.%{name}.desktop
%{_datadir}/glib-2.0/schemas/com.github.louis77.%{name}.gschema.xml
be placed in
%{_datadir}/tuner/icons/hicolor/*/apps/com.github.louis77.%{name}.svg
%{_datadir}/tuner/metainfo/com.github.louis77.%{name}.appdata.xml
%{_datadir}/tuner/applications/com.github.louis77.%{name}.desktop
%{_datadir}/tuner/glib-2.0/schemas/com.github.louis77.%{name}.gschema.xml
and also add
%dir %{_datadir}/tuner
to the spec file

Comment 4 Vasiliy Glazov 2022-12-08 06:18:06 UTC
a) No need to create additional macro for Source: and Version:
b) I will change license to GPL-3.0-only
c) Warnings is not errors :)
d) Special license for icons not described by upstream.
e) Package build directly in koji for all supported arches https://koji.fedoraproject.org/koji/taskinfo?taskID=94733366
f) Icons, desktop and xml files on their places. No need to move them and create additional %{_datadir}/tuner directory.

Comment 5 Vasiliy Glazov 2022-12-08 06:20:19 UTC
Addition
e) Review request process not require from me build anything. Only spec-file and src.rpm package.

Comment 6 Vasiliy Glazov 2022-12-08 06:50:43 UTC
Fix:
b) Source files contain in header
SPDX-License-Identifier: GPL-3.0-or-later

So License identifier GPLv3+ was right. I will change it to GPL-3.0-or-later

Comment 7 Benson Muite 2022-12-08 07:57:32 UTC
a) Just a suggestion, seems cleaner, not essential
b) Thanks.
c) Ok. Maybe report upstream? Any idea why getting cpio errors?
d) Assume it is fine.
e) Thanks - this makes it helpful to review. It is not necessary on your part but speeds up the review process.
f) This seems fine.

Checking functionality.

Comment 8 Vasiliy Glazov 2022-12-08 08:06:46 UTC
cpio errors seems like Fedora's problem during debuginfo extracting.

Comment 10 Benson Muite 2022-12-09 12:47:03 UTC
It seems to work. Why not name the binary executable tuner instead of com.github.louis77.tuner ?

In the description, may want to indicate it uses radio-browser.info/radio-browser.org to get station information.

Is tracking enabled/disabled by default?

Comment 11 Vasiliy Glazov 2022-12-09 13:00:16 UTC
Since it have desktop-file i think it is not need to rename executable.
I will add radio-browser.info/radio-browser.org to description.
About enabled/disabled tracking I don't know.

Comment 12 Benson Muite 2022-12-09 13:21:34 UTC
Not everybody will use a desktop to launch the application, some may launch it from the command line.

For tracking information, check when you launch the application and the source code.  Preferred default
is tracking disabled.

Comment 13 Vasiliy Glazov 2022-12-09 13:58:44 UTC
This naming provided by upstream. If anyone want run binary from command line it is not difficult to find name.
Also "tuner" seems widely used word and can conflict with other binaries in the future.

Default tracking is enabled. Can you help me find what need to change to disable by default?

Comment 14 Benson Muite 2022-12-14 08:48:23 UTC
See https://github.com/louis77/tuner/blob/master/src/Widgets/Window.vala#L33
Perhaps use a patch or sed to change:
{ ACTION_DISABLE_TRACKING, on_action_disable_tracking, null, "false" }
to
{ ACTION_DISABLE_TRACKING, on_action_disable_tracking, null, "true" }

It seems to affect:
https://github.com/louis77/tuner/blob/master/src/Controllers/DirectoryController.vala#L140

Comment 20 Vasiliy Glazov 2022-12-15 06:04:12 UTC
I think https://github.com/louis77/tuner/blob/master/src/Widgets/Window.vala#L33 no need to change.

Comment 21 Benson Muite 2022-12-15 06:24:46 UTC
Why?

Comment 22 Vasiliy Glazov 2022-12-15 06:31:42 UTC
Is it mandatory?

Comment 23 Benson Muite 2022-12-15 20:57:23 UTC
We want to ensure a good Fedora user experience, so it is helpful to get this done correctly.

Comment 24 Vasiliy Glazov 2022-12-16 11:10:00 UTC
I'm not sure this is necessary to change more.

Comment 25 Vasiliy Glazov 2022-12-22 11:47:13 UTC
So review approved or I need to make some changes?

Comment 26 Benson Muite 2022-12-22 13:00:37 UTC
Trying to understand where tracking information is actually set.
Does schema.xml take precedence over window.vala?
If so, why duplicate settings in window.vala?

Comment 27 Benson Muite 2022-12-22 16:40:17 UTC
The documentation 
https://valadoc.org/gio-2.0/GLib.SimpleAction.SimpleAction.stateful.html#!
indicates the last entry is the initial state, so this should match what is in the schema.

Schema example at https://wiki.gnome.org/Projects/Vala/GSettingsSample
seems much clearer.

Comment 28 Benson Muite 2022-12-23 05:34:21 UTC
Project development has moved to Codeberg https://codeberg.org/tuner/tuner

Comment 30 Vasiliy Glazov 2023-01-19 07:13:28 UTC
What do I need to do to get your approval?

Comment 31 Package Review 2024-01-20 00:45:24 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time, but it seems
that the review is still being working out by you. If this is right, please
respond to this comment clearing the NEEDINFO flag and try to reach out the
submitter to proceed with the review.

If you're not interested in reviewing this ticket anymore, please clear the
fedora-review flag and reset the assignee, so that a new reviewer can take
this ticket.

Without any reply, this request will shortly be resetted.

Comment 32 Benson Muite 2024-01-24 07:42:48 UTC
Going through it. Upstream is not very active.


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