Just finished unorphaning, packaging, and submitting JRuby for Fedora. There were 13 Java packages (JRuby and 12 dependencies) that had to be updated and submitted, and getting them all in might take some time, but what's there is working, most packages build on Koji fine and the rest depend on other packages in the set that have to make it into the repos first. I've done quite a bit of Java work in the past (RIP Mr. Logistics!) but wouldn't say I'm a guru so if something is amiss feel free to comment in Bugzilla.
During this process I also looked into packaging Maglev, a cool new ruby interpreter that runs as a persistent server, which an end user's Ruby processes / vms running on any machine can connect to in order to manage objects and run code. No database backend is required, all persistence is done in the server and thus it scales very nicely and is highly optimized/fast (see this good article for more info). Unfortunately Maglev is still alpha and the build / install system is somewhat unconventional (neither of which is a problem for packaging for Fedora) but additionally the licensing situation is currently fairly messy and I'm not fully sure how compliant it is w/ the Fedora Licensing Guidelines. I'm going to keep track of this and potentially see what can be done if things change.
So for today, only one Ruby interpreter :-D All in all the following are the packages which need to be approved (those w/ a * next to them depend on other packages in the set). Fedora/Jython should also be able to benefit from these packages, as the newer versions of jython depend on some of these as well.
If anyone is interested in helping out w/ any aspect of the Fedora/Ruby integration feel free to join the discussion on the ruby-sig mailing list (particularly regarding supporting the various versions of Ruby and gems). Enjoy!
I spent a little while looking into the current state of JRuby in Fedora. It turns out it's not so good, the JRuby package itself has been orphaned and is no longer available starting in F12, as well as several of its Java dependencies, not to mention recent versions of JRuby have added several more dependencies which have yet to be packaged. All in all the following software needs to be packaged and accepted into Fedora before JRuby can be:
- bytelist (orphaned)
- constantine (orphaned)
- jcodings (orphaned)
- joni (orphaned)
- emma (already in Fedora, a dependency just needs to be added to the JRuby rpm spec)
- jvyamlb (is no longer a JRuby dependency and can be removed from the jRuby rpm spec)
Of course JRuby itself ships w/ these jar's included, but due to the Fedora Java Packaging Guidelines concerning this matter, jars cannot ship in any Fedora packages and must be standalone / included in the RPM dependencies
So it seems that a JRuby package in Fedora will be tricky for the time being until these dependencies are resolved, I would like to devote some cycles to this at some point, but given the current state of things, it'll take alot longer than I currently have. Its a great project for anyone thats interested, even those w/ no Fedora packaging experience as there is alot of work already done that you can leverage. At some point I might just package the latest jRuby release up (jars included) and push it to my yum.morsi.org yum repository for convenience sake, but obviously this would be suboptimal to getting JRuby in Fedora.