Bug 710672

Summary: Review Request: pnmixer - Lightweight mixer applet
Product: [Fedora] Fedora Reporter: Christoph Wickert <christoph.wickert>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, mario.blaettermann, martin.gieseking, notting
Target Milestone: ---Flags: mario.blaettermann: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-09 04:29:55 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:

Description Christoph Wickert 2011-06-04 00:50:10 UTC
Spec URL: http://cwickert.fedorapeople.org/review/pnmixer-0.2-1.fc16.src.rpm
SRPM URL: http://cwickert.fedorapeople.org/review/pnmixer.spec
Description: PNMixer is system tray sound mixer. Currently it supports ALSA and Pulse audio. It is written in C, depends only on GTK+, and does not require Gnome.

PNMixer is a fork of OBMixer with a number of additions. These include:
* Volume adjustment with the scroll wheel
* Textual display of volume level in popup window
* Continuous volume adjustment when dragging the slider (not just when you let go)
* Use system icon theme for icons and use mute/low/medium/high volume icons
* Configurable middle click action (default is mute/unmute)
* Preferences for:
  - volume text display
  - volume text position
  - icon theme
  - amount to adjust per scroll
  - middle click action


Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3110835

Comment 1 Mario Blättermann 2011-06-04 17:35:41 UTC
An issue from rpmlint:

pnmixer.src: E: description-line-too-long C * Continuous volume adjustment when dragging the slider (not just when you let go)

The line is longer than 80 characters.

Comment 2 Christoph Wickert 2011-06-04 18:41:32 UTC
Thanks for the hint. However I consider this a minor problem and not worth rolling a new package at this point. I would rather prefer somebody first does a complete review and then I fix all problems found.

Comment 3 Mario Blättermann 2011-06-04 20:48:46 UTC
(In reply to comment #2)
> Thanks for the hint. However I consider this a minor problem and not worth
> rolling a new package at this point. I would rather prefer somebody first does
> a complete review and then I fix all problems found.

I agree with you. It was just a cosmetic issue which I get from rpmlint.


Complete rpmlint output:

$ rpmlint -v *
pnmixer.src: I: checking
pnmixer.src: W: spelling-error %description -l en_US popup -> pop up, pop-up, popular
pnmixer.src: W: spelling-error %description -l en_US unmute -> mute
pnmixer.src: E: description-line-too-long C * Continuous volume adjustment when dragging the slider (not just when you let go)
pnmixer.src: I: checking-url https://github.com/nicklan/pnmixer/wiki (timeout 10 seconds)
pnmixer.src: I: checking-url https://github.com/downloads/nicklan/pnmixer/pnmixer-0.2.tar.gz (timeout 10 seconds)
pnmixer.x86_64: I: checking
pnmixer.x86_64: W: spelling-error %description -l en_US popup -> pop up, pop-up, popular
pnmixer.x86_64: W: spelling-error %description -l en_US unmute -> mute
pnmixer.x86_64: E: description-line-too-long C * Continuous volume adjustment when dragging the slider (not just when you let go)
pnmixer.x86_64: I: checking-url https://github.com/nicklan/pnmixer/wiki (timeout 10 seconds)
pnmixer.x86_64: W: obsolete-not-provided obmixer
pnmixer.x86_64: W: non-conffile-in-etc /etc/xdg/autostart/pnmixer.desktop
pnmixer.x86_64: W: no-manual-page-for-binary pnmixer
pnmixer-debuginfo.x86_64: I: checking
pnmixer-debuginfo.x86_64: I: checking-url https://github.com/nicklan/pnmixer/wiki (timeout 10 seconds)
pnmixer.spec: I: checking-url https://github.com/downloads/nicklan/pnmixer/pnmixer-0.2.tar.gz (timeout 10 seconds)
3 packages and 1 specfiles checked; 2 errors, 7 warnings.

The warnings could be ignored, also the description line. The obsolete-not-provided is because pnmixer obsoletes older versions of obmixer and don't provide obmixer itself. If pnmixer is *not* the official successor of obmixer, this warning could be ignored too.


---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    GPLv3+
[+] MUST: The License field in the package spec file must match the actual
license.
[+] MUST: The file containing the text of the license(s) for the package must
be included in %doc.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum *
    20e62e73d970cf63b2bac52077453f02  pnmixer-0.2.tar.gz
    20e62e73d970cf63b2bac52077453f02  pnmixer-0.2.tar.gz.orig

[+] MUST: The package MUST successfully compile and build into binary rpms on
at least one primary architecture.
    - Succesful Koji build available.
[.] MUST: If the package does not successfully compile, build or work on an
architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly.
    Although there is a l10n infrastructure, no translations available yet.

[.] MUST: If a package installs files below %{_datadir}/icons, the icon cache
must be updated.
[.] MUST: Packages storing shared library files (not just symlinks) must call
ldconfig in %post and %postun.
[.] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Packages must not provide RPM dependency information when that
information is not global in nature, or are otherwise handled.
[.] MUST: When filtering automatically generated RPM dependency information,
the filtering system implemented by Fedora must be used.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: If a package contains library files with a suffix (e.g.
libfoo.so.1.1), ...
[.] MUST: devel packages must require the base package using a fully versioned
dependency.
[.] MUST: Packages must NOT contain any .la libtool archives.
[.] MUST: Packages containing GUI applications must include a %{name}.desktop
file
[+] MUST: .desktop files must be properly installed with desktop-file-install
in the %install section.
[+] MUST: Packages must not own files or directories already owned by other
packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[.] SHOULD: If the source package does not include license text(s) as a
    separate file from upstream, the packager SHOULD query upstream...
[+] SHOULD: Timestamps of files should be preserved.
    The -p switch is applied to "install"

[+] SHOULD: The reviewer should test that the package builds in mock.
    See Koji build above (which uses mock anyway)
[+] SHOULD: The reviewer should test that the package functions as described.
    I assume the packager has tested it.

[+] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base
package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin,
/usr/bin, or /usr/sbin ...
[.] SHOULD: Your package should contain man pages for binaries/scripts.
    No manpage available.

Comment 4 Martin Gieseking 2011-06-04 21:05:58 UTC
(In reply to comment #3)
> [+] MUST: The package must be licensed with a Fedora approved license.
>     GPLv3+

Hm, the headers of src/main.c and src/callbacks.c say they are licensed under GPLv2.

Comment 5 Mario Blättermann 2011-06-04 21:27:57 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > [+] MUST: The package must be licensed with a Fedora approved license.
> >     GPLv3+
> 
> Hm, the headers of src/main.c and src/callbacks.c say they are licensed under
> GPLv2.

Yes, you are right. But the file COPYING references the GPLv3 (no hint about future versions anyway). Moreover, the other source files from src don't declare a license at all. What to do in this case?

Comment 6 Mario Blättermann 2011-06-04 21:37:54 UTC
Just filed a bug agaist pnmixer at Github:

https://github.com/nicklan/pnmixer/issues/2

Comment 7 Martin Gieseking 2011-06-05 05:33:55 UTC
(In reply to comment #6)
> Just filed a bug agaist pnmixer at Github:
> https://github.com/nicklan/pnmixer/issues/2

OK, great, that's the right thing to do. Without getting further information from upstream I'd say the program is licensed under GPLv2 and would exclude COPYING from the package.

Comment 8 Mario Blättermann 2011-06-08 06:43:46 UTC
New upstream version available:

https://github.com/downloads/nicklan/pnmixer/pnmixer-0.3.tar.gz

This version solves the licensing problem. Everything is updated to GPLv3+. Moreover, the gettext stack is now working and the package ships a German translation. Means, the find_lang macro has to be applied.

Comment 9 Martin Gieseking 2011-06-08 07:06:38 UTC
(In reply to comment #8)
> This version solves the licensing problem. Everything is updated to GPLv3+.

Sorry for bugging again, but the license has changed to GPLv3 only. Now I keep quiet. :)

Comment 10 Christoph Wickert 2011-06-08 20:54:06 UTC
(In reply to comment #7)
> OK, great, that's the right thing to do. Without getting further information
> from upstream I'd say the program is licensed under GPLv2 and would exclude
> COPYING from the package.

I think this would be the wrong approach. GPL by default is "or any later version", so it would be at least GPLv2+. The headers in the code are probably a leftover from the old obmixer and COPYING was GPLv3. Even if we didn't knew the intentions of the author, GPLv3+ is a sane choice as it meets both: Copying on the one hand and the headers on the other because GPLv3 is a later version of GPLv2.

But thanks to Mario we know the proper license now. Thanks also for the translation. Mario, I really appreciate that.

Here is the updated package:
SPEC URL: http://cwickert.fedorapeople.org/review/pnmixer.spec
SRPM URL: http://cwickert.fedorapeople.org/review/pnmixer-0.3-1.fc16.src.rpm

I added another patch to change the default mouse scroll step from 1 to 5. 

Scratch build at http://koji.fedoraproject.org/koji/taskinfo?taskID=3119814

Comment 11 Mario Blättermann 2011-06-08 21:43:36 UTC
Small additions to the formal review:

[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum *
    94cfcbb0dc9a1cdb061f195ed26ca75d  pnmixer-0.3.tar.gz
    94cfcbb0dc9a1cdb061f195ed26ca75d  pnmixer-0.3.tar.gz.orig

[+] MUST: The spec file MUST handle locales properly.

(In reply to comment #10)
> Thanks also for the
> translation. Mario, I really appreciate that.
> 
You know: If I find an untranslated software anywhere in the world, I'll translate it, what else ;)

OK, all looks fine so far, that's why:

----------------

PACKAGE APPROVED

----------------

Comment 12 Christoph Wickert 2011-06-08 22:15:16 UTC
Thanks for the quick review. I wish I found this package in time for F15 because I had to had to switch from gmixer (orphaned) to pavucontrol, so the panel icon was missing.

New Package SCM Request
=======================
Package Name: pnmixer
Short Description: Lightweight mixer applet
Owners: cwickert
Branches: f14 f15
InitialCC:

Comment 13 Gwyn Ciesla 2011-06-08 22:35:40 UTC
Git done (by process-git-requests).

Comment 14 Fedora Update System 2011-06-09 00:13:48 UTC
pnmixer-0.3-1.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/pnmixer-0.3-1.fc14

Comment 15 Fedora Update System 2011-06-09 00:14:09 UTC
pnmixer-0.3-1.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/pnmixer-0.3-1.fc15

Comment 16 Fedora Update System 2011-06-21 17:17:40 UTC
pnmixer-0.3-1.fc15 has been pushed to the Fedora 15 stable repository.

Comment 17 Fedora Update System 2011-06-21 17:34:30 UTC
pnmixer-0.3-1.fc14 has been pushed to the Fedora 14 stable repository.