One possibility is for Debian's lucene package to do both javac and gcj compilation. It would provide both a java and native library version of lucene. Then a separate pylucene package would handle swig and creation of the python module. This would have the advantage of making lucene available to C programmers as well as python programmers. So my questions are: 1) Is this a reasonable approach?
Using a GCJ-compiled lucene library by embedding it into another non-java system has to be done with care. The GCJ/Java garbage collector doesn't keep track of java objects returned to the embedding system for which there is no reference in the java space. I had to work this around for PyLucene in the SWIG layer.
The value of a naked gcj-compiled lucene package is limited as, were it not for the need to patch it (see below), gcj compiling a java package is pretty trivial, and its direct usability, because of the GC issues, dubious.
2) I think it would work if the gcj step is simple and easily separable. It would not work if the lucene sources need to be patched in a pylucene specific way. I'm concerned about the lucene.patches file and wonder if they can be merged with lucene upstream or migrated to PyLucene.i
The patches.lucene file is there because of bugs in GCJ, such as http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15411, or differences in handling instantiation of inner classes. It is not there because of PyLucene's specific needs. Without these patches, GCJ crashes or the resulting object code is not functional.
Having the patches integrated into the Java Lucene project would probably bemet with resistance since, as far as I know, there is nothing wrong with their java code from a java perspective and, unless GCJ support became a priority for them, I don't see the Java Lucene project change their coding practices to accomodate GCJ's current limitations.
It is my hope that, as GCJ matures - version 3.5.0 looks very promising - all of these patches eventually become unnecessary.
3) Is someone willing to help? I'm interested in native compilation in Debian's lucene package, but definitely need assistance.
I cannot help you with Debian specific issues as I don't have access to a Debian system myself and have no experience with it at all. I do most of my work on Mac OS X and have access to NetBSD, Red Hat and win2k systems. I can help you with non Debian-specific PyLucene or GCJ issues. What do you need ?
Andi..