Bug 711848

Summary: Review Request: kmetronome - KDE MIDI Metronome using ALSA Sequencer
Product: [Fedora] Fedora Reporter: Robin Lee <robinlee.sysu>
Component: Package ReviewAssignee: Martin Gieseking <martin.gieseking>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, kevin, martin.gieseking, notting, rdieter
Target Milestone: ---Flags: martin.gieseking: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kmetronome-0.10.0-3.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-22 14:52:08 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:    
Bug Blocks: 656997    

Description Robin Lee 2011-06-08 18:01:51 UTC
Spec URL: http://cheeselee.fedorapeople.org/kmetronome.spec
SRPM URL: http://cheeselee.fedorapeople.org/kmetronome-0.10.0-1.fc15.src.rpm
Description:
KMetronome is a MIDI metronome with KDE interface, based on the ALSA
sequencer. The intended audience is musicians and music students. Like
solid, real metronomes it is a tool to keep the rhythm while playing musical
instruments. It uses MIDI for sound generation instead of digital audio,
allowing low CPU usage, and very accurate timing thanks to the ALSA sequencer.

Comment 1 Kevin Kofler 2011-06-10 16:05:42 UTC
This shares the drumstick library with my kmid2 package. If you want to comaintain drumstick, just apply for it in pkgdb. (You can also comaintain kmid2 if you want.)

Your kmetronome.spec looks good at a first glance, but that's not a formal review: I or somebody else will have to run through the complete review checklist before approving it.

One remark: Are you sure the direct "BuildRequires: alsa-lib-devel" is needed? I think drumstick-devel should be sufficient.

Comment 2 Robin Lee 2011-06-10 16:24:28 UTC
I have request co-maintainership on drumstick.

OK, I will remove BR alsa-lib-devel in next update.

Comment 3 Martin Gieseking 2011-07-28 07:46:35 UTC
Just some more comments:

- The package doesn't build in mock because of missing BR gettext.

- Remove folder drumstick/ in %prep to ensure that the bundled library is not
  linked.

- The .desktop file must be properly installed/validated as described here:
  https://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files
  I'm not sure if there's an exception for KDE applications now.

- Drop %doc from the manpage. It's automatically tagged as doc file.

Comment 4 Kevin Kofler 2011-07-28 12:57:52 UTC
> I'm not sure if there's an exception for KDE applications now.

There isn't any. .desktop files in /usr/share/applications or its subdirectories are interpreted by all desktops, so they must be validated.

Comment 5 Martin Gieseking 2011-07-28 16:04:28 UTC
(In reply to comment #4)
> There isn't any. .desktop files in /usr/share/applications or its
> subdirectories are interpreted by all desktops, so they must be validated.

OK, thanks for the info. In this case, some KDE packages (like kdbg, kst and krusader) are missing this validation by mistake.

Comment 6 Kevin Kofler 2011-07-28 17:26:18 UTC
I fixed Krusader (which I comaintain) in Rawhide. The others are not my packages, please file bugs.

Comment 7 Robin Lee 2011-07-29 08:18:30 UTC
Spec URL: http://cheeselee.fedorapeople.org/kmetronome.spec
SRPM URL: http://cheeselee.fedorapeople.org/kmetronome-0.10.0-2.fc15.src.rpm

Changes:
- Add kde4-macros(api) requirement
- BR: gettext and desktop-file-utils added, alsa-lib-devel removed
- Check the desktop entry file
- Drop explicit %%doc tag from the manpage

Comment 8 Martin Gieseking 2011-07-29 12:53:46 UTC
The package looks almost fine. There are just two things left to be fixed:

- correct the typo in %prep: drumstikc/ -> drumstick/

- add the missing scriptlets to update the icon cache:
  http://fedoraproject.org/wiki/Packaging/ScriptletSnippets#Icon_Cache

$ rpmlint kmetronome-*.rpm
3 packages and 0 specfiles checked; 0 errors, 0 warnings.

---------------------------------
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.
    - 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.
    $ md5sum kmetronome-0.10.0.tar.bz2*
    af52c1179f4c27496bb67e965be3931e  kmetronome-0.10.0.tar.bz2
    af52c1179f4c27496bb67e965be3931e  kmetronome-0.10.0.tar.bz2.1

[+] 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.
[X] 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: .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.

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: All patches should be commented in the spec file
[+] 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 9 Robin Lee 2011-07-29 14:59:19 UTC
Thanks!

Spec URL: http://cheeselee.fedorapeople.org/kmetronome.spec
SRPM URL: http://cheeselee.fedorapeople.org/kmetronome-0.10.0-3.fc15.src.rpm

Changes:
- Fix a typo
- Add scriptlets to update the icon cache

Comment 10 Martin Gieseking 2011-07-29 15:12:44 UTC
OK, the package is ready now.

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

Comment 11 Robin Lee 2011-07-29 15:27:40 UTC
New Package SCM Request
=======================
Package Name: kmetronome
Short Description: KDE MIDI Metronome using ALSA Sequencer
Owners: cheeselee
Branches: f14 f15 f16
InitialCC:

Comment 12 Gwyn Ciesla 2011-07-29 15:34:22 UTC
Git done (by process-git-requests).

Comment 13 Fedora Update System 2011-07-29 16:10:10 UTC
kmetronome-0.10.0-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/kmetronome-0.10.0-3.fc16

Comment 14 Fedora Update System 2011-08-01 20:16:26 UTC
kmetronome-0.10.0-3.fc16 has been pushed to the Fedora 16 testing repository.

Comment 15 Fedora Update System 2011-08-22 14:52:02 UTC
kmetronome-0.10.0-3.fc16 has been pushed to the Fedora 16 stable repository.