Bug 578981

Summary: Review Request: libdrizzle - Drizzle Client & Protocol Library
Product: [Fedora] Fedora Reporter: BJ Dierkes <derks>
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, ruben
Target Milestone: ---Flags: martin.gieseking: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libdrizzle-0.8-6.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-05-19 19:08:17 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: 581344    

Description BJ Dierkes 2010-04-02 00:18:31 UTC
Spec URL: http://5dollarwhitebox.org/tmp/libdrizzle.spec
SRPM URL: http://5dollarwhitebox.org/tmp/libdrizzle-0.8-2.fc12.src.rpm

Description: 

This is the the client and protocol library for the Drizzle project. The
server, drizzled, will use this as for the protocol library, as well as the
client utilities and any new projects that require low-level protocol
communication (like proxies). Other language interfaces (PHP extensions, SWIG,
...) should be built off of this interface.


Notes:

Drizzle itself is not yet at a stable point where it can be added to Fedora, however libdrizzle is stable and will be required by drizzle once ready for production.

Comment 1 Martin Gieseking 2010-04-02 13:31:43 UTC
A couple of initial comments:

- drop BR: gcc gcc-c++ (they are picked up automatically)

- drop INSTALL from %doc

- change the defattrs to %defattr(-,root,root,-)

- remove %attr(0755,root,root) as the permissions are set automatically

- .la files must not be packaged. Remove them in the %build section 
(see https://fedoraproject.org/wiki/Packaging/Guidelines#StaticLibraries)

- I suggest to use the %{name} macro instead of explicitly stating libdrizzle (in Source0, %files)

- append a slash to directories, e.g. %{_includedir}/%{name}/

Comment 2 BJ Dierkes 2010-04-02 16:12:55 UTC
Thank you for the feedback.  I've included the changes:

SPEC: http://5dollarwhitebox.org/tmp/libdrizzle.spec
SRPMS: http://5dollarwhitebox.org/tmp/libdrizzle-0.8-3.fc12.src.rpm

Comment 3 Martin Gieseking 2010-04-30 05:59:16 UTC
I suggest to add a doc subpackage with the doxygen documentation of the library. To build and include it, add 
- BR: doxygen
- "make doxygen" and "rm docs/*.*" to the %build section
- "%doc docs/api/ docs/dev/" to the %files section of the doc package

To enhance the readability of the spec file, I also suggest to replace the "ugly" macros %{__rm} and %{__make} with plain rm and make.

Comment 4 Martin Gieseking 2010-04-30 07:08:03 UTC
Sorry, the previously mentioned "rm docs/*.*" is redundant. You can ignore it.

Comment 5 BJ Dierkes 2010-04-30 17:19:51 UTC
Thank you for the feedback, I've made the suggested changes:

SPEC: http://5dollarwhitebox.org/tmp/libdrizzle.spec
SRPM: http://5dollarwhitebox.org/tmp/libdrizzle-0.8-4.fc12.src.rpm

Comment 6 Martin Gieseking 2010-05-03 13:01:54 UTC
Sorry for the delay. Here's the formal review of your package. It's almost clean. I only found two further things that need to be fixed:

- libdrizzle uses Steve Reid's implementation of SHA1 (sha1.{h,c}) which is in public domain. Hence, add "and Public Domain" to the Licence field plus a short comment before it.

- the -doc package should get a fully versioned dependency to the base package, i.e. add Requires: %{name} = %{version}-%{release}


$ rpmlint /var/lib/mock/fedora-12-i386/result/*.rpm
libdrizzle-devel.i686: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 1 warnings.

The warning can be safely ignored.

---------------------------------
keys used in following checklist:

[+] 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 and meet the Licensing Guidelines.
[X] MUST: The License field in the package spec file must match the actual license.

[+] MUST: File containing the text of the license 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 libdrizzle-0.8.tar.gz*
    644ac8b318b2dbae6edbcfabba23ccd5  libdrizzle-0.8.tar.gz
    644ac8b318b2dbae6edbcfabba23ccd5  libdrizzle-0.8.tar.gz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch builds:
    F-12: http://koji.fedoraproject.org/koji/taskinfo?taskID=2157557
    F-13: http://koji.fedoraproject.org/koji/taskinfo?taskID=2157545

[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly. 
[+] MUST: RPM packages which store shared library files 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 the spec file's %files listings.
[+] 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: .so files with a suffix must go in a -devel package.
[+] 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: Packages must not own files or directories already owned by other packages.
[+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[+] 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: All used scriptlets must be sane.
[X] 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.

Comment 7 BJ Dierkes 2010-05-03 17:28:32 UTC
Thank you, I've updated with the changes:

SPEC: http://5dollarwhitebox.org/tmp/libdrizzle.spec
SRPM: http://5dollarwhitebox.org/tmp/libdrizzle-0.8-5.fc12.src.rpm

Comment 8 Martin Gieseking 2010-05-03 18:18:15 UTC
Please re-add the files removed from the base package's %doc line in the latest revision (AUTHORS ChangeLog COPYING).

The file PROTOCOL contains technical details about the drizzle protocol. I think it should go into the -devel package.

Comment 9 BJ Dierkes 2010-05-03 18:44:38 UTC
Martin, sorry about that.  I honestly don't know how that got removed as I didn't mean to... possibly a vim navigation error.. I guess I wiped the line without knowing:

SPEC: http://5dollarwhitebox.org/tmp/libdrizzle.spec
SRPM: http://5dollarwhitebox.org/tmp/libdrizzle-0.8-6.fc12.src.rpm

Comment 10 Martin Gieseking 2010-05-03 19:35:03 UTC
(In reply to comment #9)
> Martin, sorry about that.  I honestly don't know how that got removed as I
> didn't mean to... possibly a vim navigation error.

Absolutely no problem. That's what the review process is good for. :)
The package looks fine now and we can finish here. Maybe you want to fix the typo in the latest %changelog entry (COPYIN) before checking the package into cvs.

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

Comment 11 BJ Dierkes 2010-05-03 19:39:16 UTC
New Package CVS Request
=======================
Package Name: libdrizzle
Short Description: Drizzle Client & Protocol Library
Owners: derks
Branches: EL-5 EL-6 F-12 F-13
InitialCC:

Comment 12 Kevin Fenzi 2010-05-04 02:51:24 UTC
CVS done (by process-cvs-requests.py).

Comment 13 Fedora Update System 2010-05-04 16:51:07 UTC
libdrizzle-0.8-6.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.fc12

Comment 14 Fedora Update System 2010-05-04 16:51:13 UTC
libdrizzle-0.8-6.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.el5

Comment 15 Fedora Update System 2010-05-04 16:51:17 UTC
libdrizzle-0.8-6.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.fc13

Comment 16 Fedora Update System 2010-05-05 07:23:38 UTC
libdrizzle-0.8-6.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libdrizzle'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.fc13

Comment 17 Fedora Update System 2010-05-06 00:52:31 UTC
libdrizzle-0.8-6.el5 has been pushed to the Fedora EPEL 5 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libdrizzle'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.el5

Comment 18 Fedora Update System 2010-05-06 03:44:54 UTC
libdrizzle-0.8-6.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libdrizzle'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/libdrizzle-0.8-6.fc12

Comment 19 Fedora Update System 2010-05-19 19:08:12 UTC
libdrizzle-0.8-6.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2010-05-19 19:08:24 UTC
libdrizzle-0.8-6.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 21 Fedora Update System 2010-05-21 00:29:56 UTC
libdrizzle-0.8-6.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.