Bug 229418 - Review Request: ruby-qpid - qpid's ruby implementation
Summary: Review Request: ruby-qpid - qpid's ruby implementation
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nuno Santos
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-02-20 22:03 UTC by Rafael H. Schloming
Modified: 2014-12-01 23:14 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-04-17 14:57:38 UTC
Type: ---
Embargoed:
nsantos: fedora-review+
wtogami: fedora-cvs+


Attachments (Terms of Use)

Description Rafael H. Schloming 2007-02-20 22:03:57 UTC
Spec URL: http://people.redhat.com/rafaels/specs/qpidrb.spec
SRPM URL: http://people.redhat.com/rafaels/srpms/qpidrb-0.1-2rhm.src.rpm
Description: Apache Qpid's ruby implementation of AMQP.

Comment 1 Nuno Santos 2007-02-20 22:43:44 UTC
qpidrb-0.1-2rhm.src.rpm

Legend:
OK: passes criteria
NO: fails criteria (errors included between "--" markers)
NA: non applicable
??: unable to verify

MUST:
OK * package is named appropriately
OK - match upstream tarball or project name
OK - try to match previous incarnations in other distributions/packagers for
consistency
OK - specfile should be %{name}.spec
OK - non-numeric characters should only be used in Release (ie. cvs or
   something)
OK - for non-numerics (pre-release, CVS snapshots, etc.), see
   http://fedoraproject.org/wiki/Packaging/NamingGuidelines#PackageRelease
OK - if case sensitivity is requested by upstream or you feel it should be
   not just lowercase, do so; otherwise, use all lower case for the name
OK * is it legal for Fedora to distribute this?
OK - OSI-approved
OK - not a kernel module
OK - not shareware
OK - is it covered by patents?
OK - it *probably* shouldn't be an emulator
OK - no binary firmware
OK * license field matches the actual license.
OK * license is open source-compatible.
OK * specfile name matches %{name}
OK * verify source and patches (md5sum matches upstream, know what the patches do)
OK * skim the summary and description for typos, etc.
OK * correct buildroot
NO * if %{?dist} is used, it should be in that form (note the ? and %
locations)

--
dist not used
--

NO * license text included in package and marked with %doc

--
included but not marked with %doc
--

OK * keep old changelog entries; use judgement when removing (too old?
useless?)
OK * packages meets FHS (http://www.pathname.com/fhs/)
NO * rpmlint on <this package>.srpm gives no output
 - justify warnings if you think they shouldn't be there

--
$ rpmlint qpidrb-0.1-2rhm.src.rpm 
W: qpidrb non-standard-group Development/Ruby
W: qpidrb no-%build-section
(should be ok)
--

OK * changelog should be in one of these formats:
OK * Packager tag should not be used
OK * Vendor tag should not be used
OK * use License and not Copyright 
OK * Summary tag should not end in a period
NA * if possible, replace PreReq with Requires(pre) and/or Requires(post)
OK * specfile is legible
?? * package successfully compiles and builds on at least x86
?? * BuildRequires are proper
OK * summary should be a short and concise description of the package
OK * description expands upon summary (don't include installation
instructions)
NO * make sure lines are <= 80 characters

--
line 10 is longer than 80 chars
--

OK * specfile written in American English
NA * make a -doc sub-package if necessary
NA * packages including libraries should exclude static libraries if possible
OK * don't use rpath
NA * config files should usually be marked with %config(noreplace)
NA * GUI apps should contain .desktop files
NA * should the package contain a -devel sub-package?
OK * use macros appropriately and consistently
OK * don't use %makeinstall
NA * locale data handling correct (find_lang)
NA * consider using cp -p to preserve timestamps
NA * split Requires(pre,post) into two separate lines
OK * package should probably not be relocatable
OK * package contains code
OK * package should own all directories and files
OK * there should be no %files duplicates
OK * file permissions should be okay; %defattrs should be present
OK * %clean should be present
NA * %doc files should not affect runtime
NA * if it is a web apps, it should be in /usr/share/%{name} and *not* /var/www
?? * verify the final provides and requires of the binary RPMs
?? * run rpmlint on the binary RPMs

SHOULD:
NO * package should include license text in the package and mark it with %doc

--
included but not marked with %doc
--

?? * package should build on i386
?? * package should build in mock


Comment 3 Nuno Santos 2007-03-20 12:58:27 UTC
Approved

Comment 4 Nuno Santos 2007-03-20 12:59:15 UTC
New Package CVS Request
=======================
Package Name: qpidrb
Short Description: Ruby language client for AMQP
Owners: nsantos
Branches: devel
InitialCC: rafaels,dbhole

Comment 5 David Lutterkort 2007-03-20 23:30:50 UTC
This package has a few problems, and should not be imported as-is. In
particular, it does not adhere to several of the Fedora ruby guidelines:
http://fedoraproject.org/wiki/Packaging/Ruby

NO: the package must be named ruby-qpid since it's a plain library
NO: the way ruby_sitelib is set is fragile and not as required by the guidelines
NO: missing Requires: ruby(abi) = 1.8
NO: missing Provides: ruby(qpid) = %{version}
NO: Source points to URL of released tarball

Why do you need the 'rhm' in the release tag ? It would be cleaner if the
release tag was just '2%{?dist}'



Comment 6 Rafael H. Schloming 2007-03-20 23:37:00 UTC
This package will have scripts at some point. Is it still required to be called
ruby-qpid if it has both scripts and a library? Should we actually have a
ruby-qpid subpackage or something like that?


Comment 7 David Lutterkort 2007-03-20 23:41:25 UTC
It would be cleaner if the actual ruby library was split into a ruby-qpid
package, especially since that is its main purpose right now. What would the
additional scripts do ?

An add'l nice-to-have (for ruby programmers, not from a packaging POV) would be
the inclusion of a top-level qpid.rb file that requires the files in the qpid/
subdir, so that code using the library can just say 'require "qpid"'


Comment 8 Rafael H. Schloming 2007-03-20 23:48:36 UTC
Is a subpackage an appropriate way to do the split or do we need two spec files?
The scripts and library stuff will be part of a single source tree. The scripts
would provide a command line UI to the management aspects of the AMQP protocol.

The svn head has the qpid.rb file you mentioned.


Comment 9 David Lutterkort 2007-03-21 00:16:40 UTC
A subpackage would be fine. Just make sure that the subpackage carries the
appropriate provdes and requires.

Comment 10 Warren Togami 2007-03-21 22:42:42 UTC
- Package name changes and possible sub-package breakouts are needed.
- qpid is not part of any Fedora spin.

For these reasons, I recommend that qpidrb and quidpy be removed from Extras
devel until they are fixed properly.  It is permissible to do such activity
within Extras within the next two weeks (possibly more), so don't worry.

This review is UNAPPROVED.

Comment 11 Michael Schwendt 2007-03-22 08:29:25 UTC
May I kindly point out that the binary builds of "qpidpy" and
"qpidrb" have not been published in Extras devel, since they
contain broken explicit dependencies. Private mail reports
about the unresolved dependencies of the packages in the
needsign queue have been sent to the package owners.

Comment 12 Warren Togami 2007-03-22 13:40:53 UTC
Those packages should be deleted from the needsign queue.

Comment 13 Michael Schwendt 2007-03-22 20:41:50 UTC
And they're gone.

Comment 15 Nuno Santos 2007-04-16 18:19:55 UTC
I've reviewed the updated package and I believe it complies with all guidelines,
generic and ruby-specific:


ruby-qpid-0.1-1.fc7.src.rpm

Legend:
OK: passes criteria
NO: fails criteria (errors included between "--" markers)
NA: non applicable
??: unable to verify

MUST:
OK * package is named appropriately
OK - match upstream tarball or project name
OK - try to match previous incarnations in other distributions/packagers for
consistency
OK - specfile should be %{name}.spec
NA - non-numeric characters should only be used in Release (ie. cvs or
   something)
NA - for non-numerics (pre-release, CVS snapshots, etc.), see
   http://fedoraproject.org/wiki/Packaging/NamingGuidelines#PackageRelease
NA - if case sensitivity is requested by upstream or you feel it should be
   not just lowercase, do so; otherwise, use all lower case for the name
OK * is it legal for Fedora to distribute this?
OK - OSI-approved
OK - not a kernel module
OK - not shareware
OK - is it covered by patents?
OK - it *probably* shouldn't be an emulator
OK - no binary firmware
OK * license field matches the actual license.
OK * license is open source-compatible.
OK  - use acronyms for licences where common
OK * specfile name matches %{name}
OK * verify source and patches (md5sum matches upstream, know what the patches do)
OK * skim the summary and description for typos, etc.
OK * correct buildroot
OK * if %{?dist} is used, it should be in that form (note the ? and %
locations)
OK * license text included in package and marked with %doc
OK * keep old changelog entries; use judgement when removing (too old?
useless?)
OK * packages meets FHS (http://www.pathname.com/fhs/)
OK * rpmlint on <this package>.srpm gives no output
 - justify warnings if you think they shouldn't be there

--
$ rpmlint ruby-qpid-0.1-1.fc7.src.rpm
W: ruby-qpid non-standard-group Development/Ruby
(this warning is ok, based on previously approved packages)
--

OK * changelog should be in one of these formats:
OK * Packager tag should not be used
OK * Vendor tag should not be used
OK * use License and not Copyright 
OK * Summary tag should not end in a period
NA * if possible, replace PreReq with Requires(pre) and/or Requires(post)
OK * specfile is legible
OK * package successfully compiles and builds on at least x86
OK * BuildRequires are proper
OK * summary should be a short and concise description of the package
OK * description expands upon summary (don't include installation
instructions)
OK * make sure lines are <= 80 characters
OK * specfile written in American English
NA * make a -doc sub-package if necessary
NA * packages including libraries should exclude static libraries if possible
OK * don't use rpath
NA * config files should usually be marked with %config(noreplace)
NA * GUI apps should contain .desktop files
NA * should the package contain a -devel sub-package?
OK * use macros appropriately and consistently
OK * don't use %makeinstall
NA * locale data handling correct (find_lang)
NA * consider using cp -p to preserve timestamps
NA * split Requires(pre,post) into two separate lines
OK * package should probably not be relocatable
OK * package contains code
OK * package should own all directories and files
OK * there should be no %files duplicates
OK * file permissions should be okay; %defattrs should be present
OK * %clean should be present
OK * %doc files should not affect runtime
NA * if it is a web apps, it should be in /usr/share/%{name} and *not* /var/www
OK * verify the final provides and requires of the binary RPMs

--
$ rpm -qp /usr/src/redhat/RPMS/noarch/ruby-qpid-0.1-1.noarch.rpm --requires
amqp  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
ruby  
ruby(abi) = 1.8
$ rpm -qp /usr/src/redhat/RPMS/noarch/ruby-qpid-0.1-1.noarch.rpm --provides
ruby(qpid) = 0.1
ruby-qpid = 0.1-1
--

OK * run rpmlint on the binary RPMs

--
$ rpmlint /usr/src/redhat/RPMS/noarch/ruby-qpid-0.1-1.noarch.rpm
W: ruby-qpid non-standard-group Development/Ruby
(this warning is ok, based on previously approved packages)
--

SHOULD:
OK * package should include license text in the package and mark it with %doc
OK * package should build on i386
OK * package should build in mock


Additional ruby-specific guidelines:

OK * package must indicate the Ruby ABI version it depends:

--
Requires:       ruby
Requires:       ruby(abi) = 1.8
--

OK * name of a ruby extension/library package must be of the form ruby-UPSTREAM

--
ruby-qpid
--

OK * a ruby extension/library package must indicate what it provides with a
Provides: ruby(LIBRARY) = VERSION declaration in the spec file.

--
Provides:       ruby(qpid) = %{version}
--

OK * Pure Ruby packages must be built as noarch packages.

--
BuildArch:      noarch
--

OK * The Ruby library files in a pure Ruby package must be placed into
Config::CONFIG["sitelibdir"]

--
%{!?ruby_sitelib: %define ruby_sitelib %(ruby -rrbconfig  -e 'puts
Config::CONFIG["sitelibdir"]')}
(...)
install -dm 755 $RPM_BUILD_ROOT%{ruby_sitelib}/qpid
install -pm 644 qpid/*.rb $RPM_BUILD_ROOT%{ruby_sitelib}/qpid
--


I'm marking this as APPROVED.


Comment 16 Nuno Santos 2007-04-16 18:24:17 UTC
New Package CVS Request
=======================
Package Name: ruby-qpid
Short Description: Ruby language client for AMQP
Owners: rafaels,nsantos
Branches: 
InitialCC: 



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