Bug 810926

Summary: Review Request: rubygem-qpid - Ruby bindings for the Qpid messaging framework
Product: [Fedora] Fedora Reporter: Darryl L. Pierce <dpierce>
Component: Package ReviewAssignee: Vít Ondruch <vondruch>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: notting, nsantos, package-review, tross, vondruch
Target Milestone: ---Flags: vondruch: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-05-18 14:28:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Darryl L. Pierce 2012-04-09 16:34:59 UTC
Spec URL: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
SRPM URL: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-1.fc16.src.rpm
Description: Qpid is an enterprise messaging framework. This package provides Ruby language bindings based on that framework.

Comment 1 Vít Ondruch 2012-04-10 07:12:44 UTC
Hi Darryl,

Are you aware of ruby-qpid? What is the relation between your gem and this package? Shouldn't this gem obsolete the ruby-qpid?

BTW it seems that this gem is not available on RubyGems.org nor in the listed source URL. This is at least a bit unusual.

Comment 2 Darryl L. Pierce 2012-04-10 17:44:59 UTC
(In reply to comment #1)
> Hi Darryl,
> 
> Are you aware of ruby-qpid? What is the relation between your gem and this
> package? Shouldn't this gem obsolete the ruby-qpid?
> 
> BTW it seems that this gem is not available on RubyGems.org nor in the listed
> source URL. This is at least a bit unusual.

The old ruby-qpid package is based on the old pure Ruby Qpid and is obsolete. This new package is based on the current, Swig-based bindings and is how we're providing the language bindings in future releases.

The gem isn't available on rubygems.org ATM: I haven't explored how to make it available there yet. I will be making it available there at some point in future, actually will look into that right now.

Comment 3 Vít Ondruch 2012-04-11 07:39:21 UTC
So are you going to contact maintainers of ruby-qpid to retire the ruby-qpid and add "Obsolete: ruby(qpid)"? Than would be nice.

Comment 4 Darryl L. Pierce 2012-04-11 15:20:08 UTC
(In reply to comment #3)
> So are you going to contact maintainers of ruby-qpid to retire the ruby-qpid
> and add "Obsolete: ruby(qpid)"? Than would be nice.

The package maintainer (nsantos) will retire it once rubygem-qpid is approved and generally available as a replacement.

Comment 5 Nuno Santos 2012-04-11 15:24:06 UTC
I will coordinate with Darryl to obsolete ruby-qpid.

Comment 6 Darryl L. Pierce 2012-04-11 18:08:22 UTC
I've updated the specfile to include that it provides the ruby-qpid functionality:

Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
Updated SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-2.fc16.src.rpm

I've also been in touch with the person who owns the unrelated gem on rubygems.org named QPID. He's going to release the name to us so that, in future, we can also distributed the gem via RubyGems.org as well.

Comment 7 Vít Ondruch 2012-04-12 08:46:22 UTC
Hi Darryl,

You should follow the rename guidelines [1] IMO. So the "Provides: ruby-qpid" should be accompanied by "Obsoletes" directive.

So for F16, it should look like:

Provides: ruby-qpid = %{version}-%{release}
Obsoletes: ruby-qpid < 0.8-2

Btw since the package needs to go into Rawhide first, it would be nice if you could prepare the .spec file for Rawhide.


[1] https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages

Comment 8 Darryl L. Pierce 2012-04-12 18:28:36 UTC
(In reply to comment #7)
> Hi Darryl,
> 
> You should follow the rename guidelines [1] IMO. So the "Provides: ruby-qpid"
> should be accompanied by "Obsoletes" directive.
> 
> So for F16, it should look like:
> 
> Provides: ruby-qpid = %{version}-%{release}
> Obsoletes: ruby-qpid < 0.8-2
> 
> Btw since the package needs to go into Rawhide first, it would be nice if you
> could prepare the .spec file for Rawhide.
> 
> 
> [1]
> https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages

Changes are made per your recommendation:

Updates SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
Updated SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-3.fc18.src.rpm

Comment 9 Vít Ondruch 2012-04-13 05:25:56 UTC
Thank you.

Another note. You should be able to remove the %{gemdir} and %{geminstir} macro definitions if you follow the new packaging guidelines [1] and use rubygems-devel package, which provide these macros (better to say the "underscore" alternatives). There are also helpful macros you can use in the %file section, etc.


[1] https://fedoraproject.org/wiki/Packaging:Ruby

Comment 10 Darryl L. Pierce 2012-04-13 12:30:05 UTC
(In reply to comment #9)
> Thank you.
> 
> Another note. You should be able to remove the %{gemdir} and %{geminstir} macro
> definitions if you follow the new packaging guidelines [1] and use
> rubygems-devel package, which provide these macros (better to say the
> "underscore" alternatives). There are also helpful macros you can use in the
> %file section, etc.
> 
> 
> [1] https://fedoraproject.org/wiki/Packaging:Ruby

Thank you. I've incorporated those changes as well.

Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
Updated SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-4.fc18.src.rpm

Comment 11 Darryl L. Pierce 2012-04-20 13:39:13 UTC
It's been a week since the last update. Can we continue (and hopefully complete) the package review?

I do have one question: we're likely going to rename the gem from qpid to qpid-messaging due to the owner of the original qpid gem on RubyForge.org not following through with his promise to release that name to our project. How will this affect the review process?

Comment 12 Vít Ondruch 2012-04-24 07:12:00 UTC
Ok, going to finish what I was already started. Taking the review.

(In reply to comment #11)
> I do have one question: we're likely going to rename the gem from qpid to
> qpid-messaging due to the owner of the original qpid gem on RubyForge.org not
> following through with his promise to release that name to our project. How
> will this affect the review process?

Well, during review, it is easy process, you just need to udpate the .spec file ant the ticket subject and that is it. However, I would prefer to see the gem with the current name on rubygems.org (I know, I know, I'm silent ;))

* License
  - The LICENSE file contains Apache license and Boost license. I am wondering
    what is purpose of the Boost license? Shouldn't it mentioned in license
    field? Or removed from the LICENSE file?

* Test suite
  - I'd love to see test suite executed in %check section.

* Binary extension placement.
  - Please move the .so file into the correct placement according to the
    guidelines:

# If there are C extensions, mv them to the extdir.
# You should replace REQUIRE_PATHS with the first value of the require_paths field in
# the gemspec file.  It will typically be either "lib" or "ext".  For instance:
#  s.require_paths = ["lib"] 
mkdir -p %{buildroot}%{gem_extdir}/REQUIRE_PATHS
mv %{buildroot}%{gem_instdir}/REQUIRE_PATHS/shared_object.so %{buildroot}%{gem_extdir}/REQUIRE_PATHS/

* Use macros provided by rubygems-devel
  - There is more macros provided by rubygems-devel, such as %{gem_libdir},
    %{gem_cache}, %{gem_spec}, %{gem_docdir} and %{gem_extdir}. It would be nice
    to use them in %files section and also elsewhere where suitable.

* Move some unnecessary files into -doc subpackage
  - the following files/dirs are not mandatory for runtime and should be moved
    into the -doc subpackage:

%{gem_instdir}/examples
%{gem_instdir}/features
%{gem_instdir}/spec
%{gem_instdir}/Rakefile
%doc %{gem_instdir}/TODO

* The package does not work.
  - I tried the most trivial test case, which unfortunately failed:

# ruby -e 'require "qpid"'
/usr/share/rubygems/rubygems/custom_require.rb:36:in `require': /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:48: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)
        when "amqp/map":  Cqpid.decodeMap message.message_impl
                        ^
/usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error, unexpected keyword_when, expecting keyword_end
        when "amqp/list": Cqpid.decodeList message.message_impl
            ^
/usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error, unexpected ':', expecting keyword_end
        when "amqp/list": Cqpid.decodeList message.message_impl
                         ^
/usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:57: syntax error, unexpected keyword_end, expecting $end
	from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
	from /usr/share/gems/gems/qpid-0.16.0/lib/qpid.rb:23:in `<top (required)>'
	from /usr/share/rubygems/rubygems/custom_require.rb:60:in `require'
	from /usr/share/rubygems/rubygems/custom_require.rb:60:in `rescue in require'
	from /usr/share/rubygems/rubygems/custom_require.rb:35:in `require'
	from -e:1:in `<main>'

Comment 13 Darryl L. Pierce 2012-04-25 15:32:20 UTC
(In reply to comment #12)
> Ok, going to finish what I was already started. Taking the review.
> 
> (In reply to comment #11)
> > I do have one question: we're likely going to rename the gem from qpid to
> > qpid-messaging due to the owner of the original qpid gem on RubyForge.org not
> > following through with his promise to release that name to our project. How
> > will this affect the review process?
> 
> Well, during review, it is easy process, you just need to udpate the .spec file
> ant the ticket subject and that is it. However, I would prefer to see the gem
> with the current name on rubygems.org (I know, I know, I'm silent ;))

Our lead said we'll hold off on renaming the package for now, giving the previous name owner time to make his choice.

> * License
>   - The LICENSE file contains Apache license and Boost license. I am wondering
>     what is purpose of the Boost license? Shouldn't it mentioned in license
>     field? Or removed from the LICENSE file?

The underlying C++ code uses (but doesn't expose) the Boost libraries. I've added Boost to the list of licenses in the specifile.
sy
> * Test suite
>   - I'd love to see test suite executed in %check section.

The feature tests (rake test:features) require a local Qpid messaging broker to be running, so they are not invoked. A requirement I wouldn't think we would push onto koji.

The spec does run the Rspec tests using test:spec.

> * Binary extension placement.
>   - Please move the .so file into the correct placement according to the
>     guidelines:
> 
> # If there are C extensions, mv them to the extdir.
> # You should replace REQUIRE_PATHS with the first value of the require_paths
> field in
> # the gemspec file.  It will typically be either "lib" or "ext".  For instance:
> #  s.require_paths = ["lib"] 
> mkdir -p %{buildroot}%{gem_extdir}/REQUIRE_PATHS
> mv %{buildroot}%{gem_instdir}/REQUIRE_PATHS/shared_object.so
> %{buildroot}%{gem_extdir}/REQUIRE_PATHS/
> 
> * Use macros provided by rubygems-devel
>   - There is more macros provided by rubygems-devel, such as %{gem_libdir},
>     %{gem_cache}, %{gem_spec}, %{gem_docdir} and %{gem_extdir}. It would be
> nice
>     to use them in %files section and also elsewhere where suitable.

I think this is done correctly. It's a little confusing to me since I can't find a decent example to work from, but I'm confortable with what I have so far.

> 
> * Move some unnecessary files into -doc subpackage
>   - the following files/dirs are not mandatory for runtime and should be moved
>     into the -doc subpackage:
> 
> %{gem_instdir}/examples
> %{gem_instdir}/features
> %{gem_instdir}/spec
> %{gem_instdir}/Rakefile
> %doc %{gem_instdir}/TODO

Done.

> * The package does not work.
>   - I tried the most trivial test case, which unfortunately failed:
> 
> # ruby -e 'require "qpid"'
> /usr/share/rubygems/rubygems/custom_require.rb:36:in `require':
> /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:48: syntax error,
> unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)
>         when "amqp/map":  Cqpid.decodeMap message.message_impl
>                         ^
> /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> unexpected keyword_when, expecting keyword_end
>         when "amqp/list": Cqpid.decodeList message.message_impl
>             ^
> /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> unexpected ':', expecting keyword_end
>         when "amqp/list": Cqpid.decodeList message.message_impl
>                          ^
> /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:57: syntax error,
> unexpected keyword_end, expecting $end
>  from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
>  from /usr/share/gems/gems/qpid-0.16.0/lib/qpid.rb:23:in `<top (required)>'
>  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `require'
>  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `rescue in require'
>  from /usr/share/rubygems/rubygems/custom_require.rb:35:in `require'
>  from -e:1:in `<main>'

Ah, that was a change that didn't make it into the initial gemfile. The gemfile now includes that change as well.

Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
Updated SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-5.fc18.src.rpm

Comment 14 Vít Ondruch 2012-04-26 10:03:17 UTC
(In reply to comment #13)
> (In reply to comment #12)
> > Ok, going to finish what I was already started. Taking the review.
> > 
> > (In reply to comment #11)
> > > I do have one question: we're likely going to rename the gem from qpid to
> > > qpid-messaging due to the owner of the original qpid gem on RubyForge.org not
> > > following through with his promise to release that name to our project. How
> > > will this affect the review process?
> > 
> > Well, during review, it is easy process, you just need to udpate the .spec file
> > ant the ticket subject and that is it. However, I would prefer to see the gem
> > with the current name on rubygems.org (I know, I know, I'm silent ;))
> 
> Our lead said we'll hold off on renaming the package for now, giving the
> previous name owner time to make his choice.

Yes, that is sensitive. I agree.
 
> > * License
> >   - The LICENSE file contains Apache license and Boost license. I am wondering
> >     what is purpose of the Boost license? Shouldn't it mentioned in license
> >     field? Or removed from the LICENSE file?
> 
> The underlying C++ code uses (but doesn't expose) the Boost libraries. I've
> added Boost to the list of licenses in the specifile.

I'm not sure I understand it. What does it mean "uses". Is there copied some Boost code? I cannot find any reference to boost in cqpid.cpp

> sy
> > * Test suite
> >   - I'd love to see test suite executed in %check section.
> 
> The feature tests (rake test:features) require a local Qpid messaging broker to
> be running, so they are not invoked. A requirement I wouldn't think we would
> push onto koji.
> 
> The spec does run the Rspec tests using test:spec.

Is it possible to avoid usage of Rake and run the test suite using plain "rspec spec"? Rake tends to bring in more dependencies then necessary, therefore it is usually good idea to avoid its usage.

> 
> > * Binary extension placement.
> >   - Please move the .so file into the correct placement according to the
> >     guidelines:
> > 
> > # If there are C extensions, mv them to the extdir.
> > # You should replace REQUIRE_PATHS with the first value of the require_paths
> > field in
> > # the gemspec file.  It will typically be either "lib" or "ext".  For instance:
> > #  s.require_paths = ["lib"] 
> > mkdir -p %{buildroot}%{gem_extdir}/REQUIRE_PATHS
> > mv %{buildroot}%{gem_instdir}/REQUIRE_PATHS/shared_object.so
> > %{buildroot}%{gem_extdir}/REQUIRE_PATHS/
> > 
> > * Use macros provided by rubygems-devel
> >   - There is more macros provided by rubygems-devel, such as %{gem_libdir},
> >     %{gem_cache}, %{gem_spec}, %{gem_docdir} and %{gem_extdir}. It would be
> > nice
> >     to use them in %files section and also elsewhere where suitable.
> 
> I think this is done correctly. It's a little confusing to me since I can't
> find a decent example to work from, but I'm confortable with what I have so
> far.

Not a big deal as long as it works, however you can still benefit from %{gem_cache} and  %{gem_doc} macros. Recent gem2rpm can generate basic %file section with the macros for you:

gem2rpm -t fedora-17-rawhide qpid-0.16.0.gem

If you are already on F17, you can omit the "-t fedora-17-rawhide" parameter.  Btw we typically %exclude the %{gem_cache}.


> 
> > 
> > * Move some unnecessary files into -doc subpackage
> >   - the following files/dirs are not mandatory for runtime and should be moved
> >     into the -doc subpackage:
> > 
> > %{gem_instdir}/examples
> > %{gem_instdir}/features
> > %{gem_instdir}/spec
> > %{gem_instdir}/Rakefile
> > %doc %{gem_instdir}/TODO
> 
> Done.
> 
> > * The package does not work.
> >   - I tried the most trivial test case, which unfortunately failed:
> > 
> > # ruby -e 'require "qpid"'
> > /usr/share/rubygems/rubygems/custom_require.rb:36:in `require':
> > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:48: syntax error,
> > unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)
> >         when "amqp/map":  Cqpid.decodeMap message.message_impl
> >                         ^
> > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> > unexpected keyword_when, expecting keyword_end
> >         when "amqp/list": Cqpid.decodeList message.message_impl
> >             ^
> > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> > unexpected ':', expecting keyword_end
> >         when "amqp/list": Cqpid.decodeList message.message_impl
> >                          ^
> > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:57: syntax error,
> > unexpected keyword_end, expecting $end
> >  from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
> >  from /usr/share/gems/gems/qpid-0.16.0/lib/qpid.rb:23:in `<top (required)>'
> >  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `require'
> >  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `rescue in require'
> >  from /usr/share/rubygems/rubygems/custom_require.rb:35:in `require'
> >  from -e:1:in `<main>'
> 
> Ah, that was a change that didn't make it into the initial gemfile. The gemfile
> now includes that change as well.

It seems it works, at least it is possible to require the qpid (btw it would be worth of bumping the gem version to avoiding confusion)
 
> Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
> Updated SRPM:
> http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-5.fc18.src.rpm

* $REQUIRE_PATHS
  - The REQUIRE_PATHS from guidelines is actually just placeholder you should
    replace by correct directory names. Please remove all references to
    REQUIRE_PATHS in your .spec file. The guidelines seems to be confusing.
    I already asked clarification [1]

* %{gem_instdir}/ext
  - Do you like to keep the directory around? Since it is not required in
    runtime, it could be moved into -doc subpackage or even dropped.

* Requires: rubygem-cucumber
  - I am bit surprised to see this as runtime dependency. Is it really
    required? And since you don't execute the cucumber test suite, it should
    not be require even in build time.


[1] https://fedorahosted.org/fpc/ticket/168

Comment 15 Darryl L. Pierce 2012-04-26 12:59:40 UTC
(In reply to comment #14)
> > > * License
> > >   - The LICENSE file contains Apache license and Boost license. I am wondering
> > >     what is purpose of the Boost license? Shouldn't it mentioned in license
> > >     field? Or removed from the LICENSE file?
> > 
> > The underlying C++ code uses (but doesn't expose) the Boost libraries. I've
> > added Boost to the list of licenses in the specifile.
> 
> I'm not sure I understand it. What does it mean "uses". Is there copied some
> Boost code? I cannot find any reference to boost in cqpid.cpp

Yeah, you're right. The C++ code depends on, as opposed to includes, the Boost libraries and code. It makes more sense to remove the Boost license statement from the Gem's copy of the LICENSE file rather than include it. I'll put that on the list of things to be handled as a part of our next release (the gem artifact's locked at this point).

> > > * Test suite
> > >   - I'd love to see test suite executed in %check section.
> > 
> > The feature tests (rake test:features) require a local Qpid messaging broker to
> > be running, so they are not invoked. A requirement I wouldn't think we would
> > push onto koji.
> > 
> > The spec does run the Rspec tests using test:spec.
> 
> Is it possible to avoid usage of Rake and run the test suite using plain "rspec
> spec"? Rake tends to bring in more dependencies then necessary, therefore it is
> usually good idea to avoid its usage.

Very good point. I've made this change, though will need to be some changes for previous versions of Rspec since the command line changed. I've added a few globals for running Rspec that I'll set for F16.

> > > * Binary extension placement.
> > >   - Please move the .so file into the correct placement according to the
> > >     guidelines:
> > > 
> > > # If there are C extensions, mv them to the extdir.
> > > # You should replace REQUIRE_PATHS with the first value of the require_paths
> > > field in
> > > # the gemspec file.  It will typically be either "lib" or "ext".  For instance:
> > > #  s.require_paths = ["lib"] 
> > > mkdir -p %{buildroot}%{gem_extdir}/REQUIRE_PATHS
> > > mv %{buildroot}%{gem_instdir}/REQUIRE_PATHS/shared_object.so
> > > %{buildroot}%{gem_extdir}/REQUIRE_PATHS/
> > > 
> > > * Use macros provided by rubygems-devel
> > >   - There is more macros provided by rubygems-devel, such as %{gem_libdir},
> > >     %{gem_cache}, %{gem_spec}, %{gem_docdir} and %{gem_extdir}. It would be
> > > nice
> > >     to use them in %files section and also elsewhere where suitable.
> > 
> > I think this is done correctly. It's a little confusing to me since I can't
> > find a decent example to work from, but I'm confortable with what I have so
> > far.
> 
> Not a big deal as long as it works, however you can still benefit from
> %{gem_cache} and  %{gem_doc} macros. Recent gem2rpm can generate basic %file
> section with the macros for you:
> 
> gem2rpm -t fedora-17-rawhide qpid-0.16.0.gem
> 
> If you are already on F17, you can omit the "-t fedora-17-rawhide" parameter. 
> Btw we typically %exclude the %{gem_cache}.

Thanks for the tip. I generated a temporary spec and used it to update the files section.

> > > * The package does not work.
> > >   - I tried the most trivial test case, which unfortunately failed:
> > > 
> > > # ruby -e 'require "qpid"'
> > > /usr/share/rubygems/rubygems/custom_require.rb:36:in `require':
> > > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:48: syntax error,
> > > unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)
> > >         when "amqp/map":  Cqpid.decodeMap message.message_impl
> > >                         ^
> > > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> > > unexpected keyword_when, expecting keyword_end
> > >         when "amqp/list": Cqpid.decodeList message.message_impl
> > >             ^
> > > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:49: syntax error,
> > > unexpected ':', expecting keyword_end
> > >         when "amqp/list": Cqpid.decodeList message.message_impl
> > >                          ^
> > > /usr/share/gems/gems/qpid-0.16.0/lib/qpid/encoding.rb:57: syntax error,
> > > unexpected keyword_end, expecting $end
> > >  from /usr/share/rubygems/rubygems/custom_require.rb:36:in `require'
> > >  from /usr/share/gems/gems/qpid-0.16.0/lib/qpid.rb:23:in `<top (required)>'
> > >  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `require'
> > >  from /usr/share/rubygems/rubygems/custom_require.rb:60:in `rescue in require'
> > >  from /usr/share/rubygems/rubygems/custom_require.rb:35:in `require'
> > >  from -e:1:in `<main>'
> > 
> > Ah, that was a change that didn't make it into the initial gemfile. The gemfile
> > now includes that change as well.
> 
> It seems it works, at least it is possible to require the qpid (btw it would be
> worth of bumping the gem version to avoiding confusion)
> 
> > Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
> > Updated SRPM:
> > http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-5.fc18.src.rpm
> 
> * $REQUIRE_PATHS
>   - The REQUIRE_PATHS from guidelines is actually just placeholder you should
>     replace by correct directory names. Please remove all references to
>     REQUIRE_PATHS in your .spec file. The guidelines seems to be confusing.
>     I already asked clarification [1]

Thanks for that. I've removed those references.

> * %{gem_instdir}/ext
>   - Do you like to keep the directory around? Since it is not required in
>     runtime, it could be moved into -doc subpackage or even dropped.

No, it's not necessary. I've removed it in the updated specfile.

> * Requires: rubygem-cucumber
>   - I am bit surprised to see this as runtime dependency. Is it really
>     required? And since you don't execute the cucumber test suite, it should
>     not be require even in build time.

Removed that dependency, as well as rake and rake-compiler since those aren't being directly used. Users who want to run the tests can install them but I won't force them to with the package.

Updated SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
Updated SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-6.fc18.src.rpm

Comment 16 Vít Ondruch 2012-04-30 15:36:53 UTC
It gets lengthy, so I will start over.

* Test suite
  - The current approach is OK and cannot be showstopper for a review. 
    However, from my experience, if I may suggest, I would go following way:

pushd .%{gem_instdir}
%{rspec}
popd

  - This is the easiest way IMO. I tried it, so you can just copy/paste.
  - The main difference is that the test suite is executed from %{builddir}
    instead of %{buildroot}. So the gem is still in its original state, 
    including the binaries on the original places, so you don't have to fiddle
    too much with include paths (-I). Of course there are also disadvantages,
    but the advantages wins in this case IMO.
  - Hint: May be it would be worth of commenting the purpose of %{rspec} and
    %{rspec_format} macros. I was already confused by them, since I did not read
    carefully enough your previous comment :)

* %{gem_libname} macro is not used anywhere.


Overall, the package looks good in current state. I will approve it as soon as:

1) The gem will be available on rubygems.org
2) The LICENSE file will be fixed, or if there will be some note in the .spec
   file (you may have some ticket for that for example)

Comment 17 Darryl L. Pierce 2012-04-30 18:58:19 UTC
All of these things are now addressed in the specfile:

New SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
New SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-7.fc17.src.rpm

Comment 18 Darryl L. Pierce 2012-04-30 19:35:35 UTC
Updated with additional notes about the official location of the gem and the issue with the existing qpid gem on rubygems.org:

New SPEC: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid.spec
New SRPM: http://mcpierce.fedorapeople.org/rpms/rubygem-qpid-0.16.0-8.fc17.src.rpm

Comment 19 Vít Ondruch 2012-04-30 19:47:24 UTC
Ok, thank you. I APPROVE the package for F17. You can request repository now.

But please check the F16 stuff, since it should be done according to older Ruby packaging guidelines [1].

[1] https://fedoraproject.org/wiki/Packaging:Old_Ruby#Ruby_Gem_with_extension_libraries_written_in_C

Comment 20 Darryl L. Pierce 2012-04-30 20:20:49 UTC
Thank you, Vit.

New Package SCM Request
=======================
Package Name: rubygem-qpid
Short Description: Ruby bindings for the Qpid messaging framework 
Owners: mcpierce
Branches: f16 f17
InitialCC:

Comment 21 Gwyn Ciesla 2012-04-30 20:26:55 UTC
Git done (by process-git-requests).

Comment 22 Darryl L. Pierce 2012-05-18 14:28:35 UTC
Forgot to close this now that the review is completed.