Bug 652616

Summary: Review Request: erlang-ebloom - A NIF wrapper around a basic bloom filter
Product: [Fedora] Fedora Reporter: Peter Lemenkov <lemenkov>
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, martin.gieseking, notting
Target Milestone: ---Flags: martin.gieseking: fedora‑review+
tibbs: fedora‑cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: erlang-ebloom-1.0.2-2.fc14 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-01-12 01:19:03 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On: 639263    
Bug Blocks: 652623, 652629    

Description Peter Lemenkov 2010-11-12 06:01:12 EST
Spec URL: http://peter.fedorapeople.org/erlang-ebloom.spec
SRPM URL: http://peter.fedorapeople.org/erlang-ebloom-1.0.2-1.fc12.src.rpm
Description: A NIF wrapper around a basic bloom filter

This is one of the requirements for Riak.
Comment 1 Peter Lemenkov 2010-11-24 10:42:22 EST
koji scratchbuild for Rawhide:

http://koji.fedoraproject.org/koji/taskinfo?taskID=2621314

rpmlint:

sulaco ~/rpmbuild/SPECS: rpmlint ../RPMS/ppc/erlang-ebloom-*
erlang-ebloom.ppc: E: explicit-lib-dependency erlang-stdlib
erlang-ebloom.ppc: W: no-documentation
2 packages and 0 specfiles checked; 1 errors, 1 warnings.
sulaco ~/rpmbuild/SPECS:
Comment 2 Martin Gieseking 2011-01-10 15:59:13 EST
I take this one. If you like, I'd appreciate a review of the tiny xqc package (bug #655866) :)

Some initial comments:

- The binary package provides the erlang extension library ebloom_nifs.so.
  Is this library supposed to be accessible by other external applications too?
  If not, I suggest to filter it from the provides list as described in
  http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering

- you can simplify the %files section by replacing all file/dir lines with the
  single line
  %{_libdir}/erlang/lib/%{realname}-%{version}/
  But that's optional and a matter of personal preference
Comment 3 Peter Lemenkov 2011-01-11 07:07:05 EST
(In reply to comment #2)
> I take this one. If you like, I'd appreciate a review of the tiny xqc package
> (bug #655866) :)
> 
> Some initial comments:
> 
> - The binary package provides the erlang extension library ebloom_nifs.so.
>   Is this library supposed to be accessible by other external applications too?
>   If not, I suggest to filter it from the provides list as described in
>   http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering

Yes, indeed - this should be filtered out.

http://peter.fedorapeople.org/erlang-ebloom.spec
http://peter.fedorapeople.org/erlang-ebloom-1.0.2-2.fc12.src.rpm

I added only filtering of internal dynamic library - no other changes.

> - you can simplify the %files section by replacing all file/dir lines with the
>   single line
>   %{_libdir}/erlang/lib/%{realname}-%{version}/
>   But that's optional and a matter of personal preference

Actually, I personally prefer to list them in this way :). I plan to write a checking tool which would analyze %files sections for my internal needs, so I would need full enumeration of packaged files and directories.
Comment 4 Martin Gieseking 2011-01-11 08:28:38 EST
(In reply to comment #3)
> Actually, I personally prefer to list them in this way :).

That's OK.

The package looks fine to me now. Just two minor notes (no blockers though):

- You can drop Requires: erlang-stdlib as it's a dependency of erlang-erts. 
  This would also remove the rpmlint error below.

- it would be nice if upstream could add the texts of the involved licenses 
  (CPL, ASL 2.0) 


$ rpmlint /var/lib/mock/fedora-14-i386/result/*.rpm
erlang-ebloom.i686: E: explicit-lib-dependency erlang-stdlib
erlang-ebloom.i686: W: no-documentation
erlang-ebloom.src: W: invalid-url Source0: basho-ebloom-ebloom-1.0.2-0-g0d070d8.tar.gz
3 packages and 0 specfiles checked; 1 errors, 2 warnings.

- the error "explicit-lib-dependency" is false positive but can be avoided by 
  dropping Requires: erlang-stdlib

- the missing doc warning is expected and no blocker


---------------------------------
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.
    - C sources of filter algorithm: CPL
    - NIF wrapper code: ASL 2.0

[+] 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.
    - no license files present

[+] 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 basho-ebloom-ebloom-1.0.2-0-g0d070d8.tar.gz*
    cf6f766679ce10ad9d42e78090979f27  basho-ebloom-ebloom-1.0.2-0-g0d070d8.tar.gz
    cf6f766679ce10ad9d42e78090979f27  basho-ebloom-ebloom-1.0.2-0-g0d070d8.tar.gz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch build (f14):
    http://koji.fedoraproject.org/koji/taskinfo?taskID=2714702

[.] MUST: If the package does not successfully compile, build or work ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly.
[.] 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 ...
[.] MUST: devel packages must require the base package 
[+] 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.

[X] 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: 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.
    - seems to work properly 

[.] 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) 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.

----------------
Package APPROVED
----------------
Comment 5 Peter Lemenkov 2011-01-11 08:48:42 EST
Thanks!

I'll contact upstream regarding adding explicit licensing information. As for erlang-stdlib - all these dependencies are automatically added, and I'll try to improve the scripts used for dependency resolution in the future.



New Package SCM Request
=======================
Package Name: erlang-ebloom
Short Description: A NIF wrapper around a basic bloom filter
Owners: peter
Branches: f14 el6
InitialCC:
Comment 6 Jason Tibbitts 2011-01-11 13:18:58 EST
Git done (by process-git-requests).
Comment 7 Fedora Update System 2011-01-11 15:56:09 EST
erlang-ebloom-1.0.2-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/erlang-ebloom-1.0.2-2.fc14
Comment 8 Fedora Update System 2011-01-21 17:55:54 EST
erlang-ebloom-1.0.2-2.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.