Babel Debian
Package Current Status
Adam Powell, last modified May 3, 2005 for version 0.10.2-1
Package archive,
PTS page,
US
mirror pool
This page documents my effort to package the
Babel SIDL
compiler for the Debian GNU/Linux operating system. The upstream
authors are at Lawrence Livermore National Laboratories.
Why a Debian package? Being able to type, "apt-get install babel" is a lot
easier than downloading, compiling and installing the source. Also, this
package puts the various files in their standard Debian places, and includes
documentation metadata to link the Babel documentation from Debian doc-base
frontends. But perhaps most importantly, having a Debian package formalizes
the process of packaging software which uses Babel and SIDL on Debian (as the
other packages would just Build-Depend on babel, sidl, python2.2-babel, etc.),
and if it lives up to its to its promise, that could be quite a lot of
important scientific software.
Package description:
The babel source package builds six binary packages:
- babel-0.10.2 has the SIDL compiler itself, which consists
of the babel-0.10.2.jar Java archive in /usr/share/java
following the
(proposed)
Debian Java policy, and the /usr/bin/babel script which runs it,
along with the /usr/share/babel-0.10.2 directory which contains
sidl.sidl, the .dtd files, and the repository
subdirectory.
- libsidl0.10.2-java has the sidl-0.10.2.jar runtime
Java archive file.
- libsidl0.10.2* has the C runtime shared library.
- libsidl-dev* has the C runtime static library, headers,
symlinks, and babel-config script needed to develop against the shared
library.
- python2.3-babel* has the python runtime modules and
headers.
- babel-0.10.2-doc has all of the documentation which ships
with the source (ps, pdf, ppt), along with Debian doc-base metadata so
this documentation is indexed in frontends like dhelp and
dwww.
*Architecture-dependent packages.
With the exceptions of python2.3-babel and libsidl-dev, these packages are
designed to avoid collisions between versions, allowing one to install multiple
versions simultaneously for testing, different software requirements, etc.
Questions/issues:
- With the original makefile, the package build fails while makeing
the force-jarfile target in the compiler subdirectory. This
is because of bug 170059 in kaffe,
whose jar uf function is broken.
In packages from release 0.7.4-2, the makefile is patched to solve this
problem. Upstream knows about this issue, and after 0.8.4, will probably
incorporate something like this workaround.
UPDATE: upstream has fixed this in 0.8.4 so only jar c is used.
- It would be nice if variables like docdir and jardir
could be defined during the configure process, that would cut down
considerably on the patch size. At some point I'll probably generate a patch
for upstream.
- The babel source ships with several other .jar files
which it seems to need. However, it builds just fine using standard Debian
versions of these, such as gnu.getopt-1.0.9.jar in the
libgetopt-java package, and xerxesImpl-2.4.0.jar in the
libxerxes2-java package, and as of 0.8.6 xml-apis.jar from
the libxalan2-java package. The other three (jcert-X.jar,
jnet-X.jar and jsse-X.jar) are from the Sun JDK, which is not
distributable in Debian free, but is necessary only for babel to
access the
Alexandria
component repository. At some point I'll patch aclocal.m4 to look in
the Java archive directory (see previous point) for getopt and
xerces, and the babel script to detect the SUN .jar
files at runtime (so the babel package can Suggest the Sun JDK, and
live with or without it), and send these patches upstream.
To do (in roughly decreasing order of priority):
- Get babel working with gcj-3.3/kaffe, and close bugs
197090 and
209283!
- Make a dummy babel package which depends on new versions of the
packages to smooth upgrades.
- Version the libsidl-dev and python2.3-babel packages and have them use
alternatives to avoid filename collisions, to complete the enabling of multiple
versions installation.
- Write a better manpage for /usr/bin/babel and contribute it
upstream.
- Test the babel package with the hello example
provided.
Adam Powell