Bug 708934 - Review Request: rubygem-pg - A Ruby interface to the PostgreSQL RDBMS
Summary: Review Request: rubygem-pg - A Ruby interface to the PostgreSQL RDBMS
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Marcela Mašláňová
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-30 08:10 UTC by Vít Ondruch
Modified: 2012-04-02 10:01 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-03 17:39:05 UTC
Type: ---
Embargoed:
mmaslano: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Vít Ondruch 2011-05-30 08:10:58 UTC
Spec URL: http://people.redhat.com/vondruch/rubygem-pg.spec
SRPM URL: http://people.redhat.com/vondruch/rubygem-pg-0.11.0-1.fc16.src.rpm

Description: 
This is the extension library to access a PostgreSQL database from Ruby.
This library works with PostgreSQL 7.4 and later.

Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=3099904

Comment 1 Marcela Mašláňová 2011-05-30 11:09:29 UTC
- rpmlint ?
rpmlint rubygem-pg-0.11.0-1.fc16.i686.rpm 
rubygem-pg.i686: W: no-soname /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/lib/pg_ext.so
rubygem-pg.i686: W: devel-file-in-non-devel-package /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/compat.c
rubygem-pg.i686: W: devel-file-in-non-devel-package /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/compat.h
rubygem-pg.i686: W: devel-file-in-non-devel-package /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/extconf.h
rubygem-pg.i686: W: devel-file-in-non-devel-package /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.c
rubygem-pg.i686: W: devel-file-in-non-devel-package /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.h
rubygem-pg.i686: E: non-executable-script /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/lib/pg.rb 0644L /usr/bin/env
1 packages and 0 specfiles checked; 1 errors, 6 warnings.

- package must be named according to Guidelines OK
- spec file name must match the base package %{name} OK
- package must meet the Packaging Guidelines OK
- package must be licensed with Fedora approved license ?
- license field must match actual license OK
- text of the license in its own file must be included in %doc OK
- sources must match the upstream source OK
- package MUST successfully compile and build OK
- architecture listed in ExcludeArch MUST have a bug filed in bugzilla OK
- build dependencies must be listed in BuildRequires ?
- handle locales properly with %find_lang macro OK
- shared library files must call ldconfig in %post(un) OK
- packages must NOT bundle system libraries OK
- package must own all directories that it creates OK
- permissions on files must be set properly OK
- package must consistently use macros OK
- package must contain code, or permissable content OK
- large documentation must go in a -doc OK
- %doc must not affect the runtime of the application OK
- header files must be in a -devel package OK
- static libraries must be in a -static package OK
- library files that end in .so (without suffix) must go in a -devel OK
- devel package usually require base package OK
- packages must NOT contain any .la libtool archives OK
- GUI applications must include a %{name}.desktop file OK
- packages must not own files or directories already owned by other packages OK

postgresql-server postgresql-devel should be >= as stated in README file.

Imho in license should be postgresql instead of BSD.

Why is 'gem install' in prep? I believe install is doing install, so it should be in install part of spec file.

Comment 2 Marcela Mašláňová 2011-05-30 13:10:07 UTC
'gem install' could be in prep because otherwise after fedpkg prep will be there only packed gem.

Comment 3 Vít Ondruch 2011-05-31 10:04:19 UTC
I have uploaded new revision:

Spec URL: http://people.redhat.com/vondruch/rubygem-pg.spec
SRPM URL: http://people.redhat.com/vondruch/rubygem-pg-0.11.0-2.fc16.src.rpm

(In reply to comment #1)
> - rpmlint ?
> rpmlint rubygem-pg-0.11.0-1.fc16.i686.rpm 
> rubygem-pg.i686: W: no-soname
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/lib/pg_ext.so
I am not going to fix this issue since Ruby does not care.

> rubygem-pg.i686: W: devel-file-in-non-devel-package
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/compat.c
> rubygem-pg.i686: W: devel-file-in-non-devel-package
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/compat.h
> rubygem-pg.i686: W: devel-file-in-non-devel-package
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/extconf.h
> rubygem-pg.i686: W: devel-file-in-non-devel-package
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.c
> rubygem-pg.i686: W: devel-file-in-non-devel-package
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/ext/pg.h

I have completely removed the "ext" directory, since the extension is build anyway. Nobody should miss it.

> rubygem-pg.i686: E: non-executable-script
> /usr/lib/ruby/gems/1.8/gems/pg-0.11.0/lib/pg.rb 0644L /usr/bin/env

I have removed the shebang from this file, as well as from others, and fixed shebangs in spec files.

> 1 packages and 0 specfiles checked; 1 errors, 6 warnings.
> 
> - package must be named according to Guidelines OK
> - spec file name must match the base package %{name} OK
> - package must meet the Packaging Guidelines OK
> - package must be licensed with Fedora approved license ?
> - license field must match actual license OK
> - text of the license in its own file must be included in %doc OK
> - sources must match the upstream source OK
> - package MUST successfully compile and build OK
> - architecture listed in ExcludeArch MUST have a bug filed in bugzilla OK
> - build dependencies must be listed in BuildRequires ?
> - handle locales properly with %find_lang macro OK
> - shared library files must call ldconfig in %post(un) OK
> - packages must NOT bundle system libraries OK
> - package must own all directories that it creates OK
> - permissions on files must be set properly OK
> - package must consistently use macros OK
> - package must contain code, or permissable content OK
> - large documentation must go in a -doc OK
> - %doc must not affect the runtime of the application OK
> - header files must be in a -devel package OK
> - static libraries must be in a -static package OK
> - library files that end in .so (without suffix) must go in a -devel OK
> - devel package usually require base package OK
> - packages must NOT contain any .la libtool archives OK
> - GUI applications must include a %{name}.desktop file OK
> - packages must not own files or directories already owned by other packages OK
> 
> postgresql-server postgresql-devel should be >= as stated in README file.

Even the RHEL-4 contains already PostgreSQL 7.4, so I doubt that it would help anything.

> Imho in license should be postgresql instead of BSD.

I have explicitly asked upstream about versions and they state that the content of BSD file is wrong, but the BSD license is correct. The upstream issue is referenced in .spec file, so I think we should be OK.

> Why is 'gem install' in prep? I believe install is doing install, so it should
> be in install part of spec file.

The true is that "gem install" is doing all the actions, i.e. %prep, %build and %install in one step. So it is not that clear where the install should be. But the %prep section seems to be the most appropriate.

Comment 4 Marcela Mašláňová 2011-05-31 11:07:50 UTC
(In reply to comment #3)
> > Imho in license should be postgresql instead of BSD.
> 
> I have explicitly asked upstream about versions and they state that the content
> of BSD file is wrong, but the BSD license is correct. The upstream issue is
> referenced in .spec file, so I think we should be OK.
> 
From your comment (License is not that clear) isn't clear, that you have statement from upstream. Sometimes is in specfile included email, where was license claimed.

And you should fix new rpmlint complaints:
rpmlint rubygem-pg-doc-0.11.0-2.fc16.x86_64.rpm 
rubygem-pg-doc.x86_64: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/nonblocking%3f-i.yaml %3f
rubygem-pg-doc.x86_64: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/internal_encoding%3d-i.yaml %3d
rubygem-pg-doc.x86_64: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGresult/%5b%5d-i.yaml %5b
rubygem-pg-doc.x86_64: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGresult/%5b%5d-i.yaml %5d

Also license is not packaged in any of sub-packages.

Comment 5 Vít Ondruch 2011-05-31 11:24:44 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > > Imho in license should be postgresql instead of BSD.
> > 
> > I have explicitly asked upstream about versions and they state that the content
> > of BSD file is wrong, but the BSD license is correct. The upstream issue is
> > referenced in .spec file, so I think we should be OK.
> > 
> From your comment (License is not that clear) isn't clear, that you have
> statement from upstream. Sometimes is in specfile included email, where was
> license claimed.

I would expect that reviewer could click on the link on the same line to see what is going on, but my expectations might be overly high.

> And you should fix new rpmlint complaints:
> rpmlint rubygem-pg-doc-0.11.0-2.fc16.x86_64.rpm 
> rubygem-pg-doc.x86_64: W: unexpanded-macro
> /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/nonblocking%3f-i.yaml %3f
> rubygem-pg-doc.x86_64: W: unexpanded-macro
> /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGconn/internal_encoding%3d-i.yaml %3d
> rubygem-pg-doc.x86_64: W: unexpanded-macro
> /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGresult/%5b%5d-i.yaml %5b
> rubygem-pg-doc.x86_64: W: unexpanded-macro
> /usr/lib/ruby/gems/1.8/doc/pg-0.11.0/ri/PGresult/%5b%5d-i.yaml %5d

These warnings needs to be ignored, since these are valid documentation file names. The filenames are derived from method names, which can contain characters such as []!=

> Also license is not packaged in any of sub-packages.

It is not required, since the subpackage requires the base package. This is quote form guidelines: If a subpackage is dependent (either implicitly or explicitly) upon a base package (where a base package is defined as a resulting binary package from the same source RPM which contains the appropriate license texts as %doc), it is not necessary for that subpackage to also include those license texts as %doc.

Comment 6 Marcela Mašláňová 2011-05-31 11:35:47 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > > Imho in license should be postgresql instead of BSD.
> > > 
> > > I have explicitly asked upstream about versions and they state that the content
> > > of BSD file is wrong, but the BSD license is correct. The upstream issue is
> > > referenced in .spec file, so I think we should be OK.
> > > 
> > From your comment (License is not that clear) isn't clear, that you have
> > statement from upstream. Sometimes is in specfile included email, where was
> > license claimed.
> 
> I would expect that reviewer could click on the link on the same line to see
> what is going on, but my expectations might be overly high.
> 
The link could be gone, but the package could still life in some old release. License must be stated clearly.

Comment 7 Vít Ondruch 2011-06-01 14:06:27 UTC
Spec URL: http://people.redhat.com/vondruch/rubygem-pg.spec
SRPM URL: http://people.redhat.com/vondruch/rubygem-pg-0.11.0-3.fc16.src.rpm

Added quote from upstream about licenses.

Comment 8 Marcela Mašláňová 2011-06-01 16:39:47 UTC
Sounds fine.

APPROVED

Comment 9 Vít Ondruch 2011-06-02 09:55:47 UTC
Thank you for your review.



New Package SCM Request
=======================
Package Name: rubygem-pg
Short Description: A Ruby interface to the PostgreSQL RDBMS
Owners: vondruch
Branches: 
InitialCC:

Comment 10 Gwyn Ciesla 2011-06-02 12:04:55 UTC
Git done (by process-git-requests).

Comment 11 Mamoru TASAKA 2011-06-03 14:54:16 UTC
Ah, no. Arch-dependent .so file MUST be installed under %ruby_sitearch/ not under %geminstdir/lib. (on x86_64, this file must be under /usr/lib64/......).

Please see
https://fedoraproject.org/wiki/Packaging/Ruby#Note
and check how other rubygem based packages containing .so file handles this type of files.

Comment 12 Vít Ondruch 2011-06-03 14:58:10 UTC
(In reply to comment #11)
> Ah, no. Arch-dependent .so file MUST be installed under %ruby_sitearch/ not
> under %geminstdir/lib. (on x86_64, this file must be under /usr/lib64/......).
> 
> Please see
> https://fedoraproject.org/wiki/Packaging/Ruby#Note
> and check how other rubygem based packages containing .so file handles this
> type of files.

Thank you for your hint, I will fix the package accordingly.

Comment 13 Marcela Mašláňová 2011-06-03 16:25:18 UTC
Couldn't be added test on *.so into rpmlint?

Comment 15 Vít Ondruch 2012-04-02 07:33:09 UTC
Package Change Request
======================
Package Name: rubygem-pg
New Branches: el5 el6
Owners: vondruch

Comment 16 Gwyn Ciesla 2012-04-02 10:01:39 UTC
Git done (by process-git-requests).


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