Bug 821146

Summary: Review Request: jruby-rack - Rack adapter for JRuby and Servlet Containers
Product: [Fedora] Fedora Reporter: gil cattaneo <puntogil>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: package-review, puntogil, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-05-20 11:11:13 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:
Bug Depends On: 819583, 819587    
Bug Blocks: 848096    

Description gil cattaneo 2012-05-12 13:48:02 UTC
Spec URL: http://gil.fedorapeople.org/jruby-rack.spec
SRPM URL: http://gil.fedorapeople.org/jruby-rack-1.0.10-1.fc16.src.rpm
Description: JRuby-Rack is a combined Java and Ruby library that adapts the
Java Servlet API to Rack. For JRuby only.

tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=4072439
without the proper  bytelist (>= 1.0.8-3) and jnr-constants (>= 0.7-6) version
requires by pom file

Comment 1 Vít Ondruch 2012-08-15 11:48:54 UTC
Hi gil,

What is the reason why not use the gem version or vice versa? Just wondering.

Comment 2 gil cattaneo 2012-08-15 18:07:04 UTC
Hi Vit
http://rubygems.org/downloads/jruby-rack-1.1.7.gem
contains prebuild java libraries, no source code
jruby-rack 1.0.10  requires, for build, the actual jruby...

Comment 3 gil cattaneo 2012-08-15 18:21:57 UTC
for the newer version require jruby >(?)= 1.6.7.2

Comment 4 Vít Ondruch 2012-08-16 05:03:41 UTC
(In reply to comment #2)
Ah, that makes sense why to use the github and tarball as as source. Didn't think about it.

But still, the question stays the same. From that sources, you could build gem, which is build by Fedora infrastructure, which should be acceptable IMO.

I am asking such question, because I am not aware of any other JRuby specific subpackage and I was always wondering how we will do that :) Unfortunately JRuby is not in the best shape yet, but my vision is shared gems between Ruby and JRuby, which of course means that we should be able to solve where to store binary extensions.

On the other hand, if you keep it as a non-gem as of now, we can postpone the gem issues ;)

Comment 5 gil cattaneo 2012-08-16 10:08:17 UTC
Spec URL: http://gil.fedorapeople.org/jruby-rack/1/jruby-rack.spec
SRPM URL: http://gil.fedorapeople.org/jruby-rack/1/jruby-rack-1.0.10-2.fc16.src.rpm
- Added tomcat 7.x apis support
- Added rubygem subpackage (jruby only)

Comment 6 gil cattaneo 2012-08-16 14:28:47 UTC
tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=4395814
without the proper  bytelist (>= 1.0.8-3) and jnr-constants (>= 0.7-6) version
requires by pom file

Comment 7 Jason Tibbitts 2013-05-20 11:05:31 UTC
I am triaging old review tickets.  I can't promise a review if you reply, but by closing out the stale tickets we can devote extra attention to the ones which aren't stale.

Build fails for me: http://koji.fedoraproject.org/koji/taskinfo?taskID=5398903

Comment 8 gil cattaneo 2013-05-20 16:51:31 UTC
Spec URL: http://gil.fedorapeople.org/jruby-rack/2/jruby-rack.spec
SRPM URL: http://gil.fedorapeople.org/jruby-rack/2/jruby-rack-1.0.10-3.fc18.src.rpm

- Disable gem task. Cause: jruby 1.7.x unable to initialized constant Gem::Builder 
- Used pom macros
- Fixed BuildRequires list

Comment 9 gil cattaneo 2013-05-20 16:54:16 UTC
Tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=5401021

Comment 10 gil cattaneo 2013-05-21 14:03:36 UTC
(In reply to gil cattaneo from comment #8)

> - Disable gem task. Cause: jruby 1.7.x unable to initialized constant
> Gem::Builder 

jruby is broken, the maintainer removed all jruby Gem libraries

Comment 11 gil cattaneo 2013-05-21 18:19:36 UTC
Spec URL: http://gil.fedorapeople.org/jruby-rack/2/jruby-rack.spec
SRPM URL: http://gil.fedorapeople.org/jruby-rack/2/jruby-rack-1.0.10-3.fc18.src.rpm

- fixed problem with RubyGems 2.0
- Re-added rubygem subpackage (jruby only)

Comment 12 gil cattaneo 2013-05-21 18:34:08 UTC
Tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=5406764

Comment 13 Vít Ondruch 2013-05-22 10:23:21 UTC
Gil, I'm still wondering, why don't you package it just as a gem (see comment #4). What is the point of keeping the maven stuff and -javadoc subpackages around? They are not distributed with the gem version as far as I understand. I would like to see this package renamed to "rubygem-jruby-rack" and that is it. Is that some Java standard? Should we clarify this with Java-SIG?

Moreover, you should install the gem into standard Fedora's gem locations IMO, using standard gem macros. The "%{_datadir}/jruby/lib/ruby/gems/1.8/gems/" was never intended to be used on Fedora. I am not sure if that location even works (but you probably tested it, so we might want to disable it, to prevent its misuse).

Also, I am not Java, JRuby nor Rack expert, but I would say, that you have overspecified requires. From my POV, the gem should depend just on "ruby(rubygems)" and nothing else and the reasoning is following: I have installed MRI and I do "yum install rubygem-jruby-rack". After that, I can do:

$ irb
irb(main):001:0> p RUBY_DESCRIPTION
"ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
=> "ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
irb(main):002:0> require 'jruby-rack'
=> true
irb(main):003:0> p JRuby::Rack::VERSION
"1.1.13.2"
=> "1.1.13.2"

and you see, it "works". It can be required. From the code, I would say that this is design decision of upstream. So why you would force me to install all the dependencies you have listed in the .spec file right now?

Comment 14 gil cattaneo 2013-05-22 14:18:39 UTC
(In reply to Vít Ondruch from comment #13)
> Gil, I'm still wondering, why don't you package it just as a gem (see
> comment #4). What is the point of keeping the maven stuff and -javadoc
> subpackages around? They are not distributed with the gem version as far as

no this package isn't *just a gem* ...
the java library is required for build others project as sonar

what you fail to understand? when is specified that this package can be used *only with jruby*?

> I understand. I would like to see this package renamed to
> "rubygem-jruby-rack" and that is it. Is that some Java standard? Should we
> clarify this with Java-SIG?
> 
take a look here
http://fedoraproject.org/wiki/Packaging:Java
http://fedoraproject.org/wiki/Packaging:Java#Pre-built_JAR_files_.2F_Other_bundled_software

> Moreover, you should install the gem into standard Fedora's gem locations
> IMO, using standard gem macros. The
> "%{_datadir}/jruby/lib/ruby/gems/1.8/gems/" was never intended to be used on
> Fedora. I am not sure if that location even works (but you probably tested
> it, so we might want to disable it, to prevent its misuse).
> 

repeat *only for jruby*

> Also, I am not Java, JRuby nor Rack expert, but I would say, that you have
> overspecified requires. From my POV, the gem should depend just on
> "ruby(rubygems)" and nothing else and the reasoning is following: I have
> installed MRI and I do "yum install rubygem-jruby-rack". After that, I can
> do:
> 
> $ irb
> irb(main):001:0> p RUBY_DESCRIPTION
> "ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
> => "ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
> irb(main):002:0> require 'jruby-rack'
> => true
> irb(main):003:0> p JRuby::Rack::VERSION
> "1.1.13.2"
> => "1.1.13.2"
> 

irb read also the internal jruby-rack.jar?

> and you see, it "works". It can be required. From the code, I would say that
> this is design decision of upstream. So why you would force me to install
> all the dependencies you have listed in the .spec file right now?

dependencies? are essentially due to the fact that *this package is not like any other rubygem(XYZ)*
because it *contains a java library*. as a result you should also consider the dependencies used or
required by this latest, listed in the pom file
hope that my response does not sound irreverent
regard

Comment 15 Vít Ondruch 2013-05-23 06:52:35 UTC
(In reply to gil cattaneo from comment #14)
> (In reply to Vít Ondruch from comment #13)
> > Gil, I'm still wondering, why don't you package it just as a gem (see
> > comment #4). What is the point of keeping the maven stuff and -javadoc
> > subpackages around? They are not distributed with the gem version as far as
> 
> no this package isn't *just a gem* ...
> the java library is required for build others project as sonar
> 
> what you fail to understand? when is specified that this package can be used
> *only with jruby*?

I don't know. I am asking you to give me the answer and you say it is usable even without JRuby. Then it probably makes sense to package it as you did, i.e. to provide rubygem as a subpackage.
 
> > I understand. I would like to see this package renamed to
> > "rubygem-jruby-rack" and that is it. Is that some Java standard? Should we
> > clarify this with Java-SIG?
> > 
> take a look here
> http://fedoraproject.org/wiki/Packaging:Java
> http://fedoraproject.org/wiki/Packaging:Java#Pre-built_JAR_files_.
> 2F_Other_bundled_software
> 
> > Moreover, you should install the gem into standard Fedora's gem locations
> > IMO, using standard gem macros. The
> > "%{_datadir}/jruby/lib/ruby/gems/1.8/gems/" was never intended to be used on
> > Fedora. I am not sure if that location even works (but you probably tested
> > it, so we might want to disable it, to prevent its misuse).
> > 
> 
> repeat *only for jruby*

So you did that only for their 1.8 flavor?

No, that is not how we think we should operate. As long as I can install the gem using plain gem install with my MRI or Rubinius, it is not JRuby only. May be that is limitation of JRuby or RubyGems, but in that case, that should be solved first with appropriate upstreams.

IOW if you claim that this is JRuby only rubygem, then "gem install" using MRI should say to me "sorry, this is only valid for JRuby" and abort the installation.

> > Also, I am not Java, JRuby nor Rack expert, but I would say, that you have
> > overspecified requires. From my POV, the gem should depend just on
> > "ruby(rubygems)" and nothing else and the reasoning is following: I have
> > installed MRI and I do "yum install rubygem-jruby-rack". After that, I can
> > do:
> > 
> > $ irb
> > irb(main):001:0> p RUBY_DESCRIPTION
> > "ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
> > => "ruby 2.0.0p0 (2013-02-24) [x86_64-linux]"
> > irb(main):002:0> require 'jruby-rack'
> > => true
> > irb(main):003:0> p JRuby::Rack::VERSION
> > "1.1.13.2"
> > => "1.1.13.2"
> > 
> 
> irb read also the internal jruby-rack.jar?

That was not the point obviously.

> 
> > and you see, it "works". It can be required. From the code, I would say that
> > this is design decision of upstream. So why you would force me to install
> > all the dependencies you have listed in the .spec file right now?
> 
> dependencies? are essentially due to the fact that *this package is not like
> any other rubygem(XYZ)*
> because it *contains a java library*. as a result you should also consider
> the dependencies used or
> required by this latest, listed in the pom file

Of course. But all this depends on answers to previous questions. You said, that the library is usable without JRuby, then it makes sense to have the dependencies. So no need to over-stress it here again.

Comment 16 Vít Ondruch 2013-05-23 06:55:21 UTC
(In reply to Vít Ondruch from comment #15)
> You said, that the library is usable without JRuby, then it makes sense to
> have the dependencies.

I should rather say "the library is usable just with plain Java".

Comment 17 gil cattaneo 2013-07-12 03:48:55 UTC
Spec URL: http://gil.fedorapeople.org/jruby-rack.spec
SRPM URL: http://gil.fedorapeople.org/jruby-rack-1.1.13.2-1.fc19.src.rpm

- update to 1.1.13.2
- removed rubygem subpackage, fails jruby/jruby-rake-plugin don't work properly.
  unable to create gem file.

Comment 18 gil cattaneo 2014-05-20 11:11:13 UTC
i have no more interest in maintaining this package