Bug 652616 - Review Request: erlang-ebloom - A NIF wrapper around a basic bloom filter
Review Request: erlang-ebloom - A NIF wrapper around a basic bloom filter
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Martin Gieseking
Fedora Extras Quality Assurance
:
Depends On: 639263
Blocks: 652623 652629
  Show dependency treegraph
 
Reported: 2010-11-12 06:01 EST by Peter Lemenkov
Modified: 2011-01-21 17:55 EST (History)
3 users (show)

See Also:
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:
Cloudforms Team: ---
martin.gieseking: fedora‑review+
tibbs: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
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.

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