Bug 957529

Summary: Review Request: solaar - Device manager for Logitech Unifying Receiver
Product: [Fedora] Fedora Reporter: Eric Smith <spacewar>
Component: Package ReviewAssignee: Susi Lehtola <susi.lehtola>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: i, spacewar, susi.lehtola
Target Milestone: ---Flags: susi.lehtola: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: solaar-0.9.2-1.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-19 07:05:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 957527    
Bug Blocks:    

Description Eric Smith 2013-04-28 19:01:38 UTC
Spec URL: http://fedorapeople.org/~brouhaha/solaar/solaar.spec
SRPM URL: http://fedorapeople.org/~brouhaha/solaar/solaar-0.8.7-1.fc17.src.rpm
Description:
Solaar is a Linux device manager for Logitech's Unifying Receiver
peripherals. It is able to pair/unpair devices to the receiver, and
for most devices read battery status.

It comes in two flavors, command-line and GUI. Both are able to list
the devices paired to a Unifying Receiver, show detailed info for each
device, and also pair/unpair supported devices with the receiver.

Fedora Account System Username: brouhaha

Spec has a dependency on unifying-receiver-udev package, for which review request #957527 has been separately submitted.  However, it is also possible to force installation of the solaar package without the unifying-receiver-udev package (using the "--nodeps" option to rpm), and to run the solaar-cli utility as root.

Comment 1 Susi Lehtola 2013-04-30 13:22:56 UTC
Package Review
==============

Key:
[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated


Issues:
=======
- gtk-update-icon-cache is invoked when required
  Note: icons in solaar
  See: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

The file %{_datadir}/icons/%{name}.png should be in %{_datadir}/pixmaps/, not in %{_datadir}/icons/.

===== 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]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Development files must be in a -devel package
[x]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package complies to the Packaging Guidelines

[~]: License field in the package spec file matches the actual license.
- lib/solaar/ui/action.py implicitly defines GPLv2, and so does setup.py. 
- However, no license headers are included in the source code, and no verbal specification of the license exists either.
- Please ask upstream to add a proper license definition.

[!]: Package consistently uses macros (instead of hard-coded directory
     names).
- You are mixing %{name} and solaar in %files. Please choose a convention and stick to it.

[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]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.

[!]: Requires correct, justified where necessary.
- I don't think that the R: pygtk2 is warranted. The upstream web page just states that the GUI uses gtk3.

[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: update-desktop-database is invoked when required

[!]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 665600 bytes in 12 files.
- The doc/ directory needs to be branched into a separate package.

[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[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 if there is
     such a file.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Fully versioned dependency in subpackages, if present.
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[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 %doc.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[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
[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).

Python:
[x]: Python eggs must not download any dependencies during the build process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== 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.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[-]: Packages should try to preserve timestamps of original installed files.
[x]: Sources can be downloaded from URI in Source: tag
[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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Checking: solaar-0.8.7-1.fc18.noarch.rpm
solaar.noarch: W: spelling-error %description -l en_US unpair -> unpaid, unfair, unpaired
solaar.noarch: E: incorrect-fsf-address /usr/share/doc/solaar-0.8.7/COPYING
solaar.noarch: W: no-manual-page-for-binary solaar
solaar.noarch: W: no-manual-page-for-binary solaar-cli
1 packages and 0 specfiles checked; 1 errors, 3 warnings.

Please report the FSF address issue upstream.


Rpmlint (installed packages)
----------------------------
# rpmlint solaar
solaar.noarch: W: spelling-error %description -l en_US unpair -> unpaid, unfair, unpaired
solaar.noarch: E: incorrect-fsf-address /usr/share/doc/solaar-0.8.7/COPYING
solaar.noarch: W: no-manual-page-for-binary solaar
solaar.noarch: W: no-manual-page-for-binary solaar-cli
1 packages and 0 specfiles checked; 1 errors, 3 warnings.
# echo 'rpmlint-done:'



Requires
--------
solaar (rpmlib, GLIBC filtered):
    /usr/bin/python
    pygtk2
    python(abi)
    python-pyudev
    unifying-receiver-udev



Provides
--------
solaar:
    solaar



MD5-sum check
-------------
https://github.com/pwr/Solaar/archive/0.8.7.tar.gz :
  CHECKSUM(SHA256) this package     : e0e167134c6a689574f0f248cba99bc212f930916b2dfffcdeda0c9294e0d167
  CHECKSUM(SHA256) upstream package : e0e167134c6a689574f0f248cba99bc212f930916b2dfffcdeda0c9294e0d167

Comment 2 Susi Lehtola 2013-05-12 16:53:46 UTC
Ping Eric

Comment 3 Eric Smith 2013-07-15 02:23:07 UTC
Spec URL: http://fedorapeople.org/~brouhaha/solaar/solaar.spec
SRPM URL: http://fedorapeople.org/~brouhaha/solaar/solaar-0.9.1-1.fc19.src.rpm

Updated per review comments.  Emailed upstream about requested license clarification and added comment about that to spec.

Comment 4 Christopher Meng 2013-07-15 03:50:36 UTC
A suggestion:

Can you sort tags like this?

Name:           solaar
Version:        0.9.1
Release:        1%{?dist}
Group:          Applications/System
Summary:        Device manager for Logitech Unifying Receiver
License:        GPLv2
URL:            http://pwr.github.io/Solaar/
Source:         https://github.com/pwr/Solaar/archive/%{version}.tar.gz
BuildArch:      noarch

I think you should put URL tag with Source0(you wrote it as "Source", no problem) tag.

An issue:

As you can see,

%{_datadir}/icons/hicolor/scalable/apps/solaar.svg

is presented in %files section.

So, please follow guideline:

http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

to add scripts for updating icon cache.

Thanks.

Comment 5 Susi Lehtola 2013-07-15 11:09:38 UTC
(In reply to Eric Smith from comment #3)
> Spec URL: http://fedorapeople.org/~brouhaha/solaar/solaar.spec
> SRPM URL:
> http://fedorapeople.org/~brouhaha/solaar/solaar-0.9.1-1.fc19.src.rpm
> 
> Updated per review comments.  Emailed upstream about requested license
> clarification and added comment about that to spec.

Please fix the icon issue per comment #1.

Comment 6 Susi Lehtola 2013-07-15 11:31:43 UTC
Also, you're missing BR: desktop-file-utils.

Comment 7 Eric Smith 2013-07-20 04:42:39 UTC
Spec URL: http://fedorapeople.org/~brouhaha/solaar/solaar.spec
SRPM URL: http://fedorapeople.org/~brouhaha/solaar/solaar-0.9.1-2.fc19.src.rpm

Added icon cache scriptlets, BuildRequires for desktop-file-utils.

Comment 8 Christopher Meng 2013-07-26 00:27:04 UTC
# Notice of incorrect FSF address in COPYING file emailed to author on
# 2013-04-28.

Is it solved?

Comment 9 Eric Smith 2013-07-26 05:17:09 UTC
> Is it solved?

Yes, although in any case the wrong FSF address doesn't block Fedora packaging.  It is only a requirement that upstream be notified, not that they do anything about it.

Updated to latest upstream:

Spec URL: http://fedorapeople.org/~brouhaha/solaar/solaar.spec
SRPM URL: http://fedorapeople.org/~brouhaha/solaar/solaar-0.9.2-1.fc19.src.rpm

Comment 10 Susi Lehtola 2013-09-04 14:26:01 UTC
Whoops, this seems to have been drowned among other bugzilla emails. Sorry for that.


All issues seem to have been fixed, so the package has been

APPROVED

Comment 11 Eric Smith 2013-09-14 23:48:59 UTC
New Package SCM Request
=======================
Package Name: solaar
Short Description: Device manager for Logitech Unifying Receiver
Owners: brouhaha
Branches: f19 f20 el6
InitialCC: 

Thanks for the review!

Comment 12 Gwyn Ciesla 2013-09-16 12:42:36 UTC
Git done (by process-git-requests).

Comment 13 Christopher Meng 2013-11-12 15:24:08 UTC
No action still.

Comment 14 Susi Lehtola 2013-11-12 15:28:02 UTC
Eric: please import the package to git and push the update.

Comment 15 Fedora Update System 2013-11-23 17:55:12 UTC
solaar-0.9.2-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/solaar-0.9.2-1.fc20

Comment 16 Fedora Update System 2013-11-23 18:01:04 UTC
solaar-0.9.2-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/solaar-0.9.2-1.fc19

Comment 17 Fedora Update System 2013-11-24 03:26:11 UTC
solaar-0.9.2-1.fc19 has been pushed to the Fedora 19 testing repository.

Comment 18 Fedora Update System 2013-11-24 23:12:56 UTC
solaar-0.9.2-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/solaar-0.9.2-2.el6

Comment 19 Fedora Update System 2013-12-19 07:05:25 UTC
solaar-0.9.2-1.fc20 has been pushed to the Fedora 20 stable repository.

Comment 20 Fedora Update System 2013-12-19 07:15:33 UTC
solaar-0.9.2-1.fc19 has been pushed to the Fedora 19 stable repository.