Bug 722790

Summary: Review Request: spatialindex - Spatial index library
Product: [Fedora] Fedora Reporter: Volker Fröhlich <volker27>
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: davejohansen, martin.gieseking, notting, package-review
Target Milestone: ---Flags: martin.gieseking: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: spatialindex-1.6.1-3.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-13 02:26:10 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:

Description Volker Fröhlich 2011-07-17 20:49:02 UTC
Spec URL: http://www.geofrogger.net/review/spatialindex.spec
SRPM URL: http://www.geofrogger.net/review/spatialindex-1.6.1-1.fc15.src.rpm
Description:

Spatialindex provides a general framework for developing spatial indices.
Currently it defines generic interfaces, provides simple main memory and 
disk based storage managers and a robust implementation of an R*-tree,
an MVR-tree and a TPR-tree.

Comment 1 Damian L Brasher 2011-08-03 17:31:20 UTC
Initial informal review (my future sponsor may follow through)

rpmlint *.rpm

spatialindex.i686: W: spelling-error %description -l en_US indices -> induces, indies, indicts
spatialindex.src: W: spelling-error %description -l en_US indices -> induces, indies, indicts
spatialindex-devel.i686: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 3 warnings.

Detailed informal review to follow shortly (hours).

Damian

Comment 2 Damian L Brasher 2011-08-03 19:30:25 UTC
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.
    -TODO comments should be removed for the sake of clarity?
    -Is the handling of static libraries during %install ok?
    -The installed bin files are library files - ending with .so.*, would the
     addition of lib to the package name be recommended?

[+] MUST: The package must be licensed with a Fedora approved license.
    - LGPLv2+ according to spec and source file headers

[+] 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.
[+] 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 *
    63399913b42278cfcfd2c79d1b2ec4a3  spatialindex-src-1.6.1.tar.bz2
    63399913b42278cfcfd2c79d1b2ec4a3  spatialindex-src-1.6.1.tar.bz2.1

[+] MUST: The package MUST successfully compile and build into binary rpms on
at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an
architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[X] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.
[.] 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: Packages must not provide RPM dependency information when that
information is not global in nature, or are otherwise handled.
[.] MUST: When filtering automatically generated RPM dependency information,
the filtering system implemented by Fedora must be used.
[+] 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.
    Not sure which application will use the installed library files to test this.
[+] 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 (e.g.
libfoo.so.1.1), then library files that end in .so (without 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 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.

(looks as if no plans to use EPEL - I'll detail anyway)

EPEL <= 5 only:
[+] MUST: The spec file must contain a valid BuildRoot field.
[X] MUST: At the beginning of %install, each package MUST run rm -rf
%{buildroot}.
[X] MUST: Each package must have a %clean section, which contains rm -rf
%{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'

[.] 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: Timestamps of files should be preserved.
    Use install -p ?  
[+] 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.
    Not sure which application will use the installed library files to test this. 

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

Damian

Comment 3 Martin Gieseking 2011-08-03 20:43:06 UTC
I'm going to sponsor Damian, and will do the formal review of this package later.

> [+] MUST: The package must meet the Packaging Guidelines.
>     -TODO comments should be removed for the sake of clarity?

The comments can stay in the file as they help keeping track of things to be considered in future updates.

>     -Is the handling of static libraries during %install ok?

Yes, Fedora usually ships shared libs only, and static libs should be removed explicitly.

>     -The installed bin files are library files - ending with .so.*, would the
>      addition of lib to the package name be recommended?

Not necessarily. It's up to the packager to add the "lib" prefix. Usually, the package should match the upstream name of the project/tarball.


> [+] MUST: The package must be licensed with a Fedora approved license.
>     - LGPLv2+ according to spec and source file headers

OK. The copyright information given in the upstream sources are the crucial resources to identify the license here. The (downstream) spec file must match this license.

> [X] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.

The %optflags are honored properly as you can see in file build.log created by mock. The CFLAGS/CXXFLAGS variables are set by the %configure macro (see output of rpm --eval %configure, for example).


> [] MUST: Files in %doc must not affect the runtime of the application.
>     Not sure which application will use the installed library files to test
> this.

The %doc files are not used (i.e. read) by the library, so no problem here either.

> [+] MUST: devel packages must require the base package using a fully versioned
> dependency.

The guidelines have been updated in February. The "fully versioned dependency" looks like this now:
Requires: %{name}%{?_isa} = %{version}-%{release}

http://fedoraproject.org/wiki/PackagingGuidelines#Requiring_Base_Package


> (looks as if no plans to use EPEL - I'll detail anyway)
> 
> EPEL <= 5 only:
> [+] MUST: The spec file must contain a valid BuildRoot field.

There's no BuildRoot field in the spec. ;)

=================

Some additional notes on the spec:

- I recommend to remove the rpath with the sed statements given in the 
  guidelines instead of using chrpath:
  http://fedoraproject.org/wiki/Packaging:Guidelines#Removing_Rpath
  It works without mentioning the complete library filename and makes life
  easier with future updates.

- I'd also avoid adding the soversion in %files. A single
  %{_libdir}/lib%{name}*.so.* should be sufficient.
  
- The copyright information in the source files contain an old FSF address.
  If upstream is still alive, please ask them to update it according to the
  current LGPL license text: http://www.gnu.org/licenses/lgpl-2.1.html

Comment 4 Volker Fröhlich 2011-08-04 07:46:15 UTC
Thank you for reviewing. The package will go to EPEL 6 and Fedora only.

>[] SHOULD: Timestamps of files should be preserved.
>    Use install -p ?

That -p refers to the install command, not a spec file section or a build target.

Spec URL: http://www.geofrogger.net/review/spatialindex.spec
SRPM URL: http://www.geofrogger.net/review/spatialindex-1.6.1-2.fc15.src.rpm

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

Comment 5 Martin Gieseking 2011-08-04 13:15:29 UTC
The package looks good now. I just recommend to add INSTALL='install -p' to "make install" in order to preserve the timestamps of the header files. That's not a blocker, though.


$ rpmlint /var/lib/mock/fedora-15-i386/result/*.rpm
spatialindex.i686: W: spelling-error %description -l en_US indices -> induces, indies, indicts
spatialindex.src: W: spelling-error %description -l en_US indices -> induces, indies, indicts
spatialindex-devel.i686: W: spelling-error %description -l en_US sed -> tied, ed, seed
spatialindex-devel.i686: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 4 warnings.

The spelling errors are false positive and can be ignored.

---------------------------------
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.
    - LGPLv2+ according to source file headers

[+] 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.
    - file COPYING packaged

[+] 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 spatialindex-src-1.6.1.tar.bz2*
    63399913b42278cfcfd2c79d1b2ec4a3  spatialindex-src-1.6.1.tar.bz2
    63399913b42278cfcfd2c79d1b2ec4a3  spatialindex-src-1.6.1.tar.bz2.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[+] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.
[.] 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, then .so (without 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 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.

EPEL <= 5 only:
[X] MUST: The spec file must contain a valid BuildRoot field.
[X] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}.
[X] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'


[.] 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.
[X] SHOULD: Timestamps of files should be preserved.
    - think about adding INSTALL='install -p' to "make install" in order to 
      preserve the timestamps of the header files

[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The reviewer should test that the package functions as described.
    - bundled regression test binaries seem to work as expected

[+] 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) files 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 6 Volker Fröhlich 2011-08-04 15:02:29 UTC
Ah, I wasn't aware it didn't use -p, thanks!

Comment 7 Volker Fröhlich 2011-08-04 15:04:44 UTC
New Package SCM Request
=======================
Package Name: spatialindex
Short Description: Spatial index library
Owners: volter
Branches: f14 f15 f16 el6
InitialCC:

Comment 8 Gwyn Ciesla 2011-08-04 15:41:40 UTC
Git done (by process-git-requests).

Comment 9 Fedora Update System 2011-08-04 20:51:43 UTC
spatialindex-1.6.1-3.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/spatialindex-1.6.1-3.fc14

Comment 10 Fedora Update System 2011-08-04 20:51:52 UTC
spatialindex-1.6.1-3.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/spatialindex-1.6.1-3.fc15

Comment 11 Fedora Update System 2011-08-04 20:52:00 UTC
spatialindex-1.6.1-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/spatialindex-1.6.1-3.fc16

Comment 12 Fedora Update System 2011-08-04 20:52:08 UTC
spatialindex-1.6.1-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/spatialindex-1.6.1-3.el6

Comment 13 Fedora Update System 2011-08-05 03:50:57 UTC
spatialindex-1.6.1-3.fc14 has been pushed to the Fedora 14 testing repository.

Comment 14 Fedora Update System 2011-08-13 02:26:05 UTC
spatialindex-1.6.1-3.fc14 has been pushed to the Fedora 14 stable repository.

Comment 15 Fedora Update System 2011-08-13 02:28:55 UTC
spatialindex-1.6.1-3.fc15 has been pushed to the Fedora 15 stable repository.

Comment 16 Fedora Update System 2011-08-22 14:55:02 UTC
spatialindex-1.6.1-3.fc16 has been pushed to the Fedora 16 stable repository.

Comment 17 Fedora Update System 2011-08-23 19:31:13 UTC
spatialindex-1.6.1-3.el6 has been pushed to the Fedora EPEL 6 stable repository.

Comment 18 Dave Johansen 2014-12-18 03:38:04 UTC
New Package SCM Request
=======================
Package Name: spatialindex
Short Description: Spatial index library
Owners: daveisfera
Branches: epel7
InitialCC: volter

Comment 19 Gwyn Ciesla 2014-12-18 11:00:18 UTC
Git done (by process-git-requests).