Bug 844070 (alsamixer-dockapp)

Summary: Review Request: alsamixer-dockapp - Simple mixer application for ALSA drivers
Product: [Fedora] Fedora Reporter: Mario Blättermann <mario.blaettermann>
Component: Package ReviewAssignee: Martin Gieseking <martin.gieseking>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: martin.gieseking, notting, package-review
Target Milestone: ---Flags: martin.gieseking: 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: 2012-11-15 10:00:40 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:
Attachments:
Description Flags
removes gcc warnings about conversions from const char* to char* none

Description Mario Blättermann 2012-07-28 15:34:27 UTC
Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/AlsaMixer.app.spec
SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/AlsaMixer.app-0.1-1.fc17.src.rpm
Description:
AlsaMixer.app is a WM applet sound mixer utility for Linux systems with ALSA sound driver. It works with Alsa and PulseAudio.

Fedora Account System Username: mariobl

Comment 1 Martin Gieseking 2012-10-04 12:35:26 UTC
I take this tiny one.

Comment 2 Martin Gieseking 2012-10-06 09:22:13 UTC
Here we go. The package contains a couple of issues that need to be addressed:

- According to the guidelines, package names must not contain periods. I 
  suggest to replace it with a dash. => AlsaMixer-app
  http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators
  
- The spec filename has a trailing tilde that should be dropped.

- Replace the tab characters in the BuildRequires lines with spaces to make 
  rpmlint happy (see below).

- If upstream is still alive, please ask them to update the FSF address in
  COPYING and the source files.

- gcc reports several warnings about deprecated non-const char pointer 
  initializations:
  warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

  Future versions of gcc might drop support for this. Thus, I recommend to 
  patch the sources by adding the missing "const" modifier before "char*".
  That's not a blocker, though.


$ rpmlint ./AlsaMixer.app-*
AlsaMixer.app.i686: E: incorrect-fsf-address /usr/share/doc/AlsaMixer.app-0.1/COPYING
AlsaMixer.app.i686: W: no-manual-page-for-binary AlsaMixer.app
AlsaMixer.app.src:10: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 10)
AlsaMixer.app-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/AlsaMixer.app-0.1/Xpm.cc
AlsaMixer.app-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/AlsaMixer.app-0.1/Mixer.h
AlsaMixer.app-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/AlsaMixer.app-0.1/Mixer.cc
AlsaMixer.app-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/AlsaMixer.app-0.1/Xpm.h
AlsaMixer.app-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/AlsaMixer.app-0.1/Main.cc
3 packages and 0 specfiles checked; 6 errors, 2 warnings.

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

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

[X] MUST: The package must be named according to the Package Naming Guidelines.
    - dots are not allowed in package names => replace it with a dash, for 
      example

[X] MUST: The spec file name must match the base package %{name}.
    - drop the trailing tilde from the spec filename

[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    - GPLv2+ according to source file headers

[+] 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.
    $ sha256sum AlsaMixer.app-0.1.tar.gz*
    7d55d3ba5ffd82bcddcb546e0aa33ab8638df5d1418aa170e91c42e35c0c8c15  AlsaMixer.app-0.1.tar.gz
    7d55d3ba5ffd82bcddcb546e0aa33ab8638df5d1418aa170e91c42e35c0c8c15  AlsaMixer.app-0.1.tar.gz.upstream

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[+] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.
[.] MUST: The spec file MUST handle locales properly.
[.] 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: 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: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

EPEL <= 5 only:
[X] MUST: The spec file must contain a valid BuildRoot field.
[X] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}.
[X] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'


[.] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[+] SHOULD: Timestamps of files should be preserved.
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described.
[.] 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 consider requiring the package which provides the file instead of the file itself.
[.] SHOULD: Your package should contain man pages for binaries/scripts.

Comment 3 Mario Blättermann 2012-10-06 15:50:05 UTC
Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/alsamixer-dockapp.spec
SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/alsamixer-dockapp-0.1-2.fc17.src.rpm

I've renamed the package to avoid the period and use a more common style (not capitalized). Morevover, a symlink is now present which points from alsamixer-dockapp to the original binary.

(In reply to comment #2) 
> - According to the guidelines, package names must not contain periods. I 
>   suggest to replace it with a dash. => AlsaMixer-app
>   http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators
>   
> - The spec filename has a trailing tilde that should be dropped.
> 
> - Replace the tab characters in the BuildRequires lines with spaces to make 
>   rpmlint happy (see below).
>
Done. 
> - If upstream is still alive, please ask them to update the FSF address in
>   COPYING and the source files.
>

Impossible. Upstream is dead for ages, as usual for a lot of dockapp packages.

> - gcc reports several warnings about deprecated non-const char pointer 
>   initializations:
>   warning: deprecated conversion from string constant to 'char*'
> [-Wwrite-strings]
> 
>   Future versions of gcc might drop support for this. Thus, I recommend to 
>   patch the sources by adding the missing "const" modifier before "char*".
>   That's not a blocker, though.

I've no programming skills... Do you mean:

int main(int argc, const char** argv)

instead of the current:

int main(int argc, char** argv) 

> [.] SHOULD: Your package should contain man pages for binaries/scripts.

What about to adding a man page? I've created one from the --help output with help2man. Needs some love, but could be more convenient for users.

Comment 4 Martin Gieseking 2012-10-08 15:13:03 UTC
Created attachment 623502 [details]
removes gcc warnings about conversions from const char* to char*

(In reply to comment #3)
> Impossible. Upstream is dead for ages, as usual for a lot of dockapp
> packages.

OK, then we can leave the files as it is.


> >   Future versions of gcc might drop support for this. Thus, I recommend to 
> >   patch the sources by adding the missing "const" modifier before "char*".
> >   That's not a blocker, though.
> 
> I've no programming skills... 

Right, sorry. I've attached a simple patch that adds the const modifiers and const_cast operators where necessary so that the warnings go away.


> What about to adding a man page? I've created one from the --help output
> with help2man. Needs some love, but could be more convenient for users.

Yes, a manpage documenting the command-line options would be nice. 

Everything else looks good now so that we can finish here.

----------------
Package APPROVED
----------------

Comment 5 Mario Blättermann 2012-10-08 17:15:31 UTC
Thanks for your review! I will apply your patch anyway before importing it to the Git repo. Adding a manpage will probably be a task for future releases of this package.


New Package SCM Request
=======================
Package Name: alsamixer-dockapp
Short Description: Simple mixer application for ALSA drivers
Owners: mariobl
Branches: f17 f18

Comment 6 Gwyn Ciesla 2012-10-09 10:49:52 UTC
Git done (by process-git-requests).

Comment 7 Fedora Update System 2012-10-11 20:09:44 UTC
alsamixer-dockapp-0.1-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/alsamixer-dockapp-0.1-3.fc18

Comment 8 Fedora Update System 2012-10-11 20:09:56 UTC
alsamixer-dockapp-0.1-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/alsamixer-dockapp-0.1-3.fc17

Comment 9 Fedora Update System 2012-10-12 02:55:50 UTC
alsamixer-dockapp-0.1-3.fc17 has been pushed to the Fedora 17 testing repository.

Comment 10 Mario Blättermann 2012-11-15 10:00:40 UTC
Packages are marked as stable now.