[Bug 2037] Review request: acoustid-fingerprinter - Music AcoustID fingerprinting application

RPM Fusion Bugzilla noreply at rpmfusion.org
Tue Jan 3 19:51:38 CET 2012


https://bugzilla.rpmfusion.org/show_bug.cgi?id=2037

--- Comment #6 from Andrea Musuruane <musuruan at gmail.com> 2012-01-03 19:51:38 CET ---
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[x]  Package is named according to the Package Naming Guidelines. [1]
[x]  Spec file name must match the base package %{name}, in the format
%{name}.spec.
[x]  Spec file is legible and written in American English.
[x]  Spec file lacks Packager, Vendor, PreReq tags.
[!]  Spec uses macros instead of hard-coded directory names.
[!]  Package consistently uses macros.
[-]  Macros in Summary, %description expandable at SRPM build time.
[x]  PreReq is not used.
[-]  Requires correct, justified where necessary.
[x]  All build dependencies are listed in BuildRequires, except for any that
are listed in the exceptions section of Packaging Guidelines. [2]
[!]  Fedora does not require the presence of the BuildRoot tag.
[!]  Fedora does not require to run rm -rf %{buildroot} (or $RPM_BUILD_ROOT)
and the beginning of %install.
[-]  Package use %makeinstall only when ``make install DESTDIR=...'' doesn't
work.
[x]  The %clean section is not required.
[-]  The spec file handles locales properly.
[x]  Changelog in prescribed format.
[x]  Rpmlint output is silent.
[x]  License field in the package spec file matches the actual license.
[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.
[-]  License file installed when any subpackage combination is installed.
[x]  Package is licensed with an open-source compatible license and meets other
legal requirements as defined in the legal section of Packaging Guidelines.
[3,4]
[!]  Sources contain only permissible code or content.
[x]  Sources used to build the package matches the upstream source, as provided
in the spec URL.
     MD5SUM this package     : 0f9783093f43f0e7f6b2c86edfce03e0
     MD5SUM upstream package : 0f9783093f43f0e7f6b2c86edfce03e0
[!]  Compiler flags are appropriate.
[!]  %build honors applicable compiler flags or justifies otherwise.
[-]  ldconfig called in %post and %postun if required.
[x]  Package must own all directories that it creates.
[!]  Package does not own files or directories owned by other packages.
[!]  Package requires other packages for directories it uses.
[x]  Package does not contain duplicates in %files.
[x]  Permissions on files are set properly.
[!]  It is no longer necessary to explicitly include a %defattr section at the
beginning of each %files section.
[x]  No %config files under /usr.
[-]  %config files are marked noreplace or the reason is justified.
[!]  Package contains a properly installed %{name}.desktop using
desktop-file-install file if it is a GUI application. [5]
[!]  Package contains a valid .desktop file.
[!]  Package contains code, or permissible content.
[-]  Package contains a systemd init script if in need of one.
[x]  File names are valid UTF-8.
[-]  Large documentation files are in a -doc subpackage, if required.
[x]  Package uses nothing in %doc for runtime.
[!]  Package contains no bundled libraries.
[-]  Header files in -devel subpackage, if present.
[-]  Static libraries in -static subpackage, if present.
[x]  Package contains no static executables.
[-]  Package requires pkgconfig, if .pc files are present.
[-]  Development .so files in -devel subpackage, if present.
[-]  Fully versioned dependency in subpackages, if present.
[x]  Package does not contain any libtool archives (.la).
[x]  Useful -debuginfo package or justification otherwise.
[x]  Rpath absent or only used for internal libs.
[x]  Package does not generate any conflict.
[x]  Package does not contains kernel modules.
[x]  Package is not relocatable.
[x]  Package successfully compiles and builds into binary rpms on at least one
supported architecture.
     Tested under F16/x86_64
[x]  Package is not known to require ExcludeArch.
[x]  Package installs properly.
[x]  Package obeys FHS, except libexecdir and /usr/target.
[!]  Package meets the Packaging Guidelines. [6]

=== SUGGESTED ITEMS ===
[!]  Package functions as described.
[x]  Latest version is packaged.
[x]  Package does not include license text files separate from upstream.
[-]  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]  Description and summary sections in the package spec file contains
translations for supported Non-English languages, if available.
[x]  SourceX is a working URL.
[x]  SourceX / PatchY prefixed with %{name}.
[x]  Final provides and requires are sane (rpm -q --provides and rpm -q
--requires).
[-]  %check is present and all tests pass.
[-]  Usually, subpackages other than devel should require the base package
using a fully versioned dependency.
[x]  Reviewer should test that the package builds in mock.
     Tested on fedora-rawhide-x86_64-rpmfusion_free
[?]  Package should compile and build into binary rpms on all supported
architectures.
[x]  Dist tag is present.
[-]  Spec use %global instead of %define.
[!]  Scriptlets must be sane, if used.
[-]  The placement of pkgconfig(.pc) files are correct.
[x]  No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]  Packages should try to preserve timestamps of original installed files.
[-]  File based requires are sane.
[!]  Man pages included for all executables.
[x]  Uses parallel make.
[-]  Patches link to upstream bugs/comments/lists or are otherwise justified.

=== Issues ===
1. Package doesn't consistently use macros:
%{_bindir}/acoustid-fingerprinter

Should be:
%{_bindir}/%{name}

2. Buildroot, rm -rf %{buildroot} in %install, are not needed unless you want
to build for EL5:
http://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag

3. This package is not permitted in Fedora because it links with ffmpeg. Anyway
this is fine for RPM Fusion.

4. %{_datadir}/icons/hicolor is owned by "hicolor-icon-theme". You must not own
it too.

Update your %files section with:
%{_datadir}/icons/hicolor/*/apps/%{name}.png

5. You must have a 'Requires: hicolor-icon-theme', which owns the
%{_datadir}/icons/hicolor directory.

6. %defattr in %files are not needed:
https://fedoraproject.org/wiki/Packaging:Guidelines#File_Permissions

7. Why are you using an external desktop instead of the one provided upstream
included in the tarball? They are identical.

Moreover, the desktop file included in the tarball is already installed by
"make install". Therefore, use desktop-icon-validate to validate this file:
https://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage

Verifying the desktop file will show the following warning: 
key "Encoding" in group "Desktop Entry" is deprecated

You can get rid of the Enconding key using desktop-file-install in the
following way:

desktop-file-install \
  --delete-original \
  --remove-key Encoding \
  --dir %{buildroot}%{_datadir}/applications \
  %{buildroot}%{_datadir}/applications/%{name}.desktop

8. If an application installs icons into one of the subdirectories in
%{_datadir}/icons/ (such as hicolor), icon caches must be updated so that the
installed icons show up in menus right after package installation:
https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Icon_Cache

Your scriptlet is not the one provided in the wiki page. It misses the
%posttrans section

9. Man pages is missing (this is a should item).

10. Icons could be installed with a for loop (really NOT mandatory at all but
the spec file would be more readable though):

for i in 16 24 32 48 128 256; do
  install -d -m 755 %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps
  install -m 644 images/acoustid-fp-${i}.png  \
    %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png
done

11. The spec file should not use an hard-coded directory name and it must not
mix hard-coded and macro paths:
https://fedoraproject.org/wiki/Packaging:Guidelines#Macros

Therefore:
-DCMAKE_INSTALL_PREFIX=/usr/ 

Should be:
-DCMAKE_INSTALL_PREFIX=%{_prefix}  

12. Anyway -DCMAKE_INSTALL_PREFIX=/usr/ is useless. It's already the default,
just strip it.

13. The sources contain two upstream ffmpeg header files in the /ffmpeg
directory. Please patch the source to use system header files.

$ find /usr/include/ffmpeg/ -name audioconvert.h
/usr/include/ffmpeg/libavutil/audioconvert.h

$ find /usr/include/ffmpeg/ -name samplefmt.h
/usr/include/ffmpeg/libavutil/samplefmt.h

14. The package doesn't work properly on F-16+ (with qt 4.8). You cannot submit
fingerprints. An upstream patch is here:
https://github.com/lalinsky/acoustid-fingerprinter/commit/7577c13c02bcbf4f82f6dff0ab083f2933c7e06d.diff

15. %{optflags} are partly overwritten. On x86_64 I can see:
"-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4  -m64 -mtune=generic  -O3"

Please notice the -O3 at the end that overwrites the -O2 at the beginning.


[1] https://fedoraproject.org/wiki/Packaging:NamingGuidelines
[2] https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 
[3] https://fedoraproject.org/wiki/Packaging:LicensingGuidelines
[4] https://fedoraproject.org/wiki/Licensing:Main
[5] https://fedoraproject.org/wiki/Packaging:Guidelines#Desktop_files
[6] https://fedoraproject.org/wiki/Packaging:Guidelines

-- 
Configure bugmail: https://bugzilla.rpmfusion.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the rpmfusion-developers mailing list