Just BTW, I have also added the changed rubygems.spec and rubygem-json.spec and their
patches/etc to the "jruby.spec" repo at github [1], so that everyone can browse
the changes easily.
[1]
Hi folks,
I'm writing a quick summary of what I managed to achieve with
JRuby/Fedora implementation so far. You can try out my repo at [1]
and see the progress of work on jruby.spec at [2].
- I have managed to remove the RubyGems copy from JRuby and make them
work with our system RubyGems - I had to apply few JRuby specific
patches there - two are already accepted upstream, but not merged
into the 1.8 tree, one is still pending [3]. The updated RubyGems
are also in the mentioned repo and please be careful when installing
them, preferably use mock.*
- As a part of the RubyGems modifications, I have also prepared a
sample gem (rubygem-json, also in the repository), with a
rubygem-json-java subpackage, that provides Java extensions for
JRuby.
- Pure Gems from Fedora now work with JRuby out of the box, no
modification needed.
- "jgem" command works exactly as "gem", only using JRuby - nice,
isn't it? :)
- load paths set has been brought much closer to MRI, which allowed
most of the stuff I have done
TODO:
- I'm still unsure what is the best way to set up the
Provides/Requires, so that RubyGems would be installable without
MRI, only with JRuby. I guess we can live with JRuby dragging in
Ruby, that's a small problem for now :)
- Some modifications to Guidelines will be needed, explaining how to
build Gems/non-Gems for JRuby.
- I will also add a jruby-devel package with macros.jruby to match
MRI's behaviour closely.
* The reason for this is, that I have also tried to introduce new
naming scheme for Gems extensions dirs, which is not compatible with
the current one. So far, the %gem_extdir was
"/usr/lib[64]/gems/exts". With Rubinius and JRuby comming, there is
a slight problem - extensions for JRuby should of course go under
/usr/share/gems/exts, but Rubinius extensions would have problems,
as they should go under %gem_extdir, too. Therefore, I'd like to
propose this scheme for extension placement:
%gem_extdir %{_libdir}/gems/ruby # MRI
%xgem_extdir %{_libdir}/gems/rubinius # Rubinius, not sure if that
should be named "xgem_extdir", what do the others think?
%jgem_extdir %{_datadir}/gems/jruby #JRuby # JRuby
This logic to implement this is very simple and it all goes to
defaults/operating_system.rb in the updated rubygems package in my
repo (specfile is a bit adjusted, too).
There is also a question of versioning these dirs, mainly Rubinius
exts, but I'm leaving that for future, comment if you have any good
ideas :)
Thanks goes to Charles Nutter for taking the JRuby RubyGems close to
upstream, which was very important from Fedora integration POV :)
Slavek.
--
Regards,
Bohuslav "Slavek" Kabrda.
[1]
http://bkabrda.fedorapeople.org/jruby/jruby.repo
[2]
https://github.com/bkabrda/jruby.spec
[3]
https://github.com/rubygems/rubygems/pull/371
_______________________________________________
ruby-sig mailing list
ruby-sig(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/ruby-sig