[Rpm-maint] RFC: Support for Project Jigsaw modularized java packages.
jon.vanalten at redhat.com
jon.vanalten at redhat.com
Fri Oct 16 15:44:16 UTC 2009
As I've not posted to this list before, allow me to introduce myself. I'm a software intern at Red Hat, attached mainly to the open source java project (ie IcedTea: http://icedtea.classpath.org/wiki/Main_Page).
For those not following developments in the Java world, there is something called Project Jigsaw, which aims to modularize java, breaking the JDK up into smaller chunks and allowing developers to produce their own modules. Similar to the OSGi initiative, but with the goal of eventually becoming an official part of the language. It is of course not yet part of the Java spec, and all signs point to it not being an *official* part of the language in the (fairly) soon to be released version 7. That said, there is a good chance that the open-source implementation from Sun will support it.
Folks at Sun have been building a tool to help with package building for software using this modularized java, with the idea being that this tool consumes .jar (and potentially other) files and produces packages. However, until recently this was focussed on .deb packages, and did not take into account the processes involved for distros such as fedora and its derivatives, using rpm as a central build system. Specifically, resolving dependencies is the main issue. Packages may contain one or more modules, and the idea is to have these modules as virtual dependencies in the rpm system.
Our friends at Sun have agreed to add functionality to their package building tool, so that with appropriate arguments it will emit module information, including dependencies, on stdout instead of attempting to build the package. This tool will only need to see the .jar files in order to generate the details RPM needs. The full details of how this information will be formatted are still somewhat fluid, but with the information so far myself and Man Wong have gone ahead and made some changes in RPM so that Sun's tool can be called, its output parsed, and the virtual dependencies extracted. The solution is modelled loosely after similar functionality which already exists for Perl modules. I've attached a patch based off of the 4.7.1 release. Once the patch is applied, configuring the build with --enable-jigsaw should enable our changes. Note that because the packaging tool's output is not yet quantified, the scripts included in the patch are bound to change; the important part at this point is that we have the hooks in so that .jar files will trigger the scripts to be called in the first place!
Even though this is not really commit-ready, if anyone has any feedback as to these changes, that would be very much appreciated. Neither of us has any experience contributing to RPM.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 5614 bytes
Desc: not available
More information about the Rpm-maint