[Bug 739856] Review Request: opendbx - abstraction library for database access in C

bugzilla at redhat.com bugzilla at redhat.com
Mon Oct 10 05:14:15 UTC 2011


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


https://bugzilla.redhat.com/show_bug.cgi?id=739856

Dan Callaghan <dcallagh at redhat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dcallagh at redhat.com,
                   |                            |pingou at pingoured.fr

--- Comment #4 from Dan Callaghan <dcallagh at redhat.com> 2011-10-10 01:14:14 EDT ---
Unfortunately I can't take this review or sponsor you, but I've done an
informal review of this package and there are a few issues you may wish to fix.

Package Review
==============

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

=== REQUIRED ITEMS ===
[X]  Package is named according to the Package Naming Guidelines.
[X]  Spec file name must match the base package %{name}, in the format
%{name}.spec.
[X]  Package meets the Packaging Guidelines.

You can remove the rm -rf $RPM_BUILD_ROOT from the %install section, and the 
Requires: pkgconfig, as these are not necessary.

[X]  Package successfully compiles and builds into binary rpms on at least one
supported architecture.
Tested on: Fedora 15 x86_64
[X]  Rpmlint output:

opendbx-debuginfo.x86_64: E: incorrect-fsf-address
/usr/src/debug/opendbx-1.4.5/utils/argmap.hpp
opendbx-debuginfo.x86_64: E: incorrect-fsf-address
/usr/src/debug/opendbx-1.4.5/utils/argmap.cpp
opendbx-firebird.x86_64: W: spelling-error Summary(en_US) backend -> backed,
back end, back-end
opendbx-firebird.x86_64: W: spelling-error %description -l en_US odbx ->
oxblood
opendbx-firebird.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-firebird.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-firebird.x86_64: W: no-documentation
opendbx-firebird.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libfirebirdbackend.so
opendbx-mssql.x86_64: W: spelling-error Summary(en_US) backend -> backed, back
end, back-end
opendbx-mssql.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-mssql.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-mssql.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-mssql.x86_64: W: no-documentation
opendbx-mssql.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libmssqlbackend.so
opendbx-mysql.x86_64: W: spelling-error Summary(en_US) backend -> backed, back
end, back-end
opendbx-mysql.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-mysql.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-mysql.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-mysql.x86_64: W: no-documentation
opendbx-mysql.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libmysqlbackend.so
opendbx-postgresql.x86_64: W: spelling-error Summary(en_US) backend -> backed,
back end, back-end
opendbx-postgresql.x86_64: W: spelling-error %description -l en_US odbx ->
oxblood
opendbx-postgresql.x86_64: W: spelling-error %description -l en_US init ->
unit, int, nit
opendbx-postgresql.x86_64: W: spelling-error %description -l en_US pgsql 
opendbx-postgresql.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-postgresql.x86_64: W: no-documentation
opendbx-postgresql.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libpgsqlbackend.so
opendbx-sqlite.x86_64: W: spelling-error Summary(en_US) backend -> backed, back
end, back-end
opendbx-sqlite.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-sqlite.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-sqlite.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-sqlite.x86_64: W: no-documentation
opendbx-sqlite.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libsqlite3backend.so
opendbx-sqlite2.x86_64: W: spelling-error Summary(en_US) backend -> backed,
back end, back-end
opendbx-sqlite2.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-sqlite2.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-sqlite2.x86_64: W: spelling-error %description -l en_US sqlite -> sq
lite, sq-lite, satellite
opendbx-sqlite2.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-sqlite2.x86_64: W: no-documentation
opendbx-sqlite2.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libsqlitebackend.so
opendbx-sybase.x86_64: W: spelling-error Summary(en_US) backend -> backed, back
end, back-end
opendbx-sybase.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-sybase.x86_64: W: spelling-error %description -l en_US init -> unit,
int, nit
opendbx-sybase.x86_64: W: spelling-error %description -l en_US backend ->
backed, back end, back-end
opendbx-sybase.x86_64: W: no-documentation
opendbx-sybase.x86_64: W: devel-file-in-non-devel-package
/usr/lib64/opendbx/libsybasebackend.so
opendbx-utils.x86_64: W: spelling-error %description -l en_US odbx -> oxblood
opendbx-utils.x86_64: W: spelling-error %description -l en_US sql -> sq, sol,
sq l
12 packages and 0 specfiles checked; 2 errors, 46 warnings.

You should ask upstream to fix (or even just remove) in the incorrect FSF 
mailing addresses. I think the rest of these warnings can be ignored.

I also notice those two files (util/argmap.{cpp,hpp}) have a GPL license header 
rather than an LGPL one. If this is a typo you should ask upstream to correct 
it. Otherwise the specfile should declare License: GPLv2+ as that is a stricter 
license than LGPLv2+.

[X]  Package is not relocatable.
[X]  Buildroot tag is absent
[X]  Package is licensed with an open-source compatible license and meets other
legal requirements as defined in the legal section of Packaging Guidelines.
[!]  License field in the package spec file matches the actual license.
License type: LGPLv2+ but see above
[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.
[X]  Spec file is legible and written in American English.
[X]  Sources used to build the package matches the upstream source, as provided
in the spec URL.
MD5SUM this package    : 8347e9583d83c5186dea14f992c19dec
MD5SUM upstream package: 8347e9583d83c5186dea14f992c19dec
[X]  Package is not known to require ExcludeArch
[X]  All build dependencies are listed in BuildRequires, except for any that
are listed in the exceptions section of Packaging Guidelines.
[X]  The spec file handles locales properly.
[X]  ldconfig called in %post and %postun if required.
[!]  Package must own all directories that it creates.

Nothing owns the /usr/lib64/opendbx directory. The best solution is probably to 
make all the backend subpackages which own libs under this directory to also 
own the directory itself.

[X]  Package requires other packages for directories it uses.
[X]  Package does not contain duplicates in %files.
[X]  Permissions on files are set properly.
[X]  Package has no %clean section
[X]  Package consistently uses macros.
[X]  Package contains code, or permissable content.
[-]  Large documentation files are in a -doc subpackage, if required.
[-]  Package uses nothing in %doc for runtime.
[X]  Header files in -devel subpackage, if present.
[-]  Static libraries in -devel subpackage, if present.
[X]  Development .so files in -devel subpackage, if present.
[!]  Fully versioned dependency in subpackages, if present.

As far as I can tell the backend subpackages are useless without the main 
library, so they should Require the base package. Unless upstream makes any ABI 
compatibility guarantees about mixing versions of the backend and main library, 
you should use a fully-versioned dependency to be on the safe side.

[X]  Package does not contain any libtool archives (.la).
[-]  Package contains a properly installed %{name}.desktop file if it is a GUI
application.
[X]  Package does not own files or directories owned by other packages.

=== SUGGESTED ITEMS ===
[X]  Latest version is packaged.
[X]  Package does not include license text files separate from upstream.
[-]  Description and summary sections in the package spec file contains
translations for supported Non-English languages, if available.
[X]  Reviewer should test that the package builds in mock.
Tested on: Fedora 15 x86_64
[?]  Package should compile and build into binary rpms on all supported
architectures.
Not tested
[?]  Package functions as described.
Not tested
[-]  Scriptlets must be sane, if used.
[X]  The placement of pkgconfig(.pc) files are correct.
[-]  File based requires are sane.

The only other issue I see here is that the backend subpackages have 
auto-generated provides and requires for private libraries under 
/usr/lib64/opendbx which is not desirable. See [1] for ways to filter these 
out.

> $ rpm -q --requires --provides -p opendbx-mysql-1.4.5-2.fc15.x86_64.rpm | grep libmysqlbackend
> libmysqlbackend.so.1()(64bit)  
> libmysqlbackend.so.1()(64bit)  

[1] http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering

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



More information about the package-review mailing list