Bug 710672 - Review Request: pnmixer - Lightweight mixer applet
Review Request: pnmixer - Lightweight mixer applet
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Nobody's working on this, feel free to take it
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-06-03 20:50 EDT by Christoph Wickert
Modified: 2011-06-21 13:34 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-06-09 00:29:55 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
mario.blaettermann: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Christoph Wickert 2011-06-03 20:50:10 EDT
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 13:35:41 EDT
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 14:41:32 EDT
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 16:48:46 EDT
(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 17:05:58 EDT
(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 17:27:57 EDT
(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 17:37:54 EDT
Just filed a bug agaist pnmixer at Github:

https://github.com/nicklan/pnmixer/issues/2
Comment 7 Martin Gieseking 2011-06-05 01:33:55 EDT
(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 02:43:46 EDT
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 03:06:38 EDT
(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 16:54:06 EDT
(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 17:43:36 EDT
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 18:15:16 EDT
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 Jon Ciesla 2011-06-08 18:35:40 EDT
Git done (by process-git-requests).
Comment 14 Fedora Update System 2011-06-08 20:13:48 EDT
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-08 20:14:09 EDT
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 13:17:40 EDT
pnmixer-0.3-1.fc15 has been pushed to the Fedora 15 stable repository.
Comment 17 Fedora Update System 2011-06-21 13:34:30 EDT
pnmixer-0.3-1.fc14 has been pushed to the Fedora 14 stable repository.

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