GNU Classpath distro DevJam "Europe"
A developer and packager meeting around coordinating and improving the state of packaging of large scale applications written in the java programming language using the GNU Classpath, gcj and other free java-like tool chains for the various GNU/Linux distributions.
In the last year the projects around GNU Classpath, gcj and the free JVMs have matured to a point where it is now feasible to build, run and package large scale applications written in the java programming language using Free Software tool chains. Several GNU/Linux distributions are experimenting with packaging large applications like JOnAS, Eclipse and OpenOffice plus all their dependencies (see figures 1 and 2).
Since the traditional java world doesn't have a strong packaging, library, versioning and dependency system the various distributions are experimenting with different ways to integrate programs written in the java programming language into their packaging systems. Luckily the JPackage project tries to provide a library dependency and versioning framework which several distributions have said to want to adopt. Having a common packaging framework would help greatly with getting a common package naming and versioning scheme across several distributions.
Besides traditional free java replacements like kaffe, there are also GNU innovations like ahead of time compilers like gcj which provide matching of pre-compiled native code and traditional byte code. This provides a more GNU-like experience for the java programming language. There are also several ways to create packages that can be used in both a traditional byte code environment plus a optimized native library setup. A commonly accepted way to register and install additional byte code and natively optimized (possible multilib/arch) libraries across distributions would make installation and development of such packages easier for the users, developers and packagers. (See for example the How to BC compile with GCJ GCC wiki page or the Native Java Fedora wiki page.)
Although some of the larger (non-gui) frameworks are now buildable and packaged using the free toolchain there are still areas where the free implementations are missing some utilities or standard library classes and methods. There will probably be a 1.4-ish free replacement by the end of the year, and most of something similar to 1.5 somewhere next year. But guidance on what the important programs and libraries are from a packager perspective would help guide the GNU Classpath and the free JVM hackers in choosing what to concentrate on in the near future. Coordinating on test coverage, completeness and correctness frameworks (mauve and gump for example) for quality assurance would boost the usability enormously.
Figure-1 Example package graph (native gcj-eclipse large)
Figure-2 Another example (native gcj-compiled jonas [|http://www.klomp.org/mark/classpath/jonas-graph.html large])
The immediate goal of the GNU Classpath DevJam meeting would be to learn from each other based on the various packaging efforts and to come to a common idea for:
* A common packaging system (possibly based on JPackage). * Cross-distribution package naming and versioning conventions. * Common practices for gcj-dbtool ahead of time compilation registry for libraries (while retaining traditional byte code support). * (Prioritized) List of missing features in the free toolchains (plus workarounds for the most urgent items). * Creating work items for deploying safe applet support (how to prevent to get listed on bugtraq)
We hope to get together a group of people wanting to do some hands on hacking to show the state of the art in packaging. Resulting in the availability of several new packages and cross-distribution packaging conventions quickly after the meeting.
We hope to attract the main packagers of the various GNU/Linux distributions, JPackage representatives, traditional java build and packaging experts (ant/maven) and hackers from the various projects around GNU Classpath, gcj and the free JVMs. We are aiming for a group of 20 to 30 people which will be asked to give a short presentation of their project and packaging efforts. Who are also interested in doing actual hacking during the event to show how the various packaging proposals can/should work out.