Linux packaging and Java modules

The last part of this past weekend’s Classpath/OpenJDK DevJam at FOSDEM 2007 was devoted to a discussion of Java-on-Linux packaging issues led by Tom Fitzsimmons, Matthias Klose, and Tom Marble.

Each of the various families of Linux distributions has its own scheme for managing Java libraries and applications with its native package manager, be it Red Hat’s RPM, Debian’s APT, or Gentoo’s Portage. We explored ways to package OpenJDK on these distributions so as to be as uniform as possible while also respecting the differences inherent in each distribution’s conventions and tools.

More interestingly, we talked about how these packaging systems might interact with the Java module system being developed for JSR 277. At a high level it appears that there’s no conflict here, and in fact the right answer is that the Linux packaging systems should be able to leverage the Java module system rather than compete with it.

Why is this so? Well, if you think of a Java module as being analogous to a Unix shared-library object (.so) then the Java module system is just another kind of repository (like /usr/lib) with a tool (like /bin/install, or libtool) for managing the contents of that repository. The existing Linux packaging systems can already handle shared libraries, so there’s no (obvious) reason why they won’t also be able to handle Java modules.

A key new insight we had is that it would be useful for JSR 277 to support a notion of source modules, just as the various Linux packaging systems support source packages. This would allow Linux source packages to install Java source code in a standard way so that development tools that require source code (e.g., IDEs, debuggers, and profilers) could locate that code in a standard way rather than by groveling through the filesystem or asking the user.

Comments:

Yesterday I had a (small) look at OpenSolaris and found that some (if not all) OpenSolaris distributions (like, for example, Nexenta/GnuSolaris) use packaging tools derived from Linux distros (in this case, Debian). Furthermore, the BSDs have installation methods similar to portage. I'm thinking that, when we achieve to marry JSR 277 with the Linux packaging tools, this will also be of great use to non-Linux operating systems.

Posted by Roman Kennke on March 01, 2007 at 06:35 PM PST #

Post a Comment:
Comments are closed for this entry.
About

This blog has moved to http://mreinhold.org/blog. <script>var p = window.location.pathname.split('/'); var n = p[p.length - 1].replace(/_/g,'-'); if (n != "301") window.location = "http://mreinhold.org/blog/" + n;</script>

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today
News

No bookmarks in folder

Blogroll

No bookmarks in folder

Feeds
RSS Atom