some ideas on making packaging Kaffe easier (Was: Re: [kaffe] Problems compiling Kaffe)
robilad at kaffe.org
Thu Feb 3 07:43:15 PST 2005
Fernando Lozano wrote:
> Hi Sanghyeon Seo,
>>> If Kaffe build really needs a Java compiler and Java VM, couldn't it use
>>> gcj / gij and so I could build it using only free software?
>> jikes is a free software. What do you mean?
> But Sun, IBM or Blackdown JVMs are not, and I have not fould how to use
> gij as the JVM for comiling Kaffe. Jikes is not a Java VM, but just a
> Java compiler.
> Anyway it's strange that, to compile a Java VM, I need another Java VM.
Yeah, that's really bizarre. What are your configure flags, and where is
the check happening?
> And by the way, is kjc becoming unsupported?
It shouldn't become unsupported. I'm waiting to hear back from the
authors of kjc.
There was some confusion over whether Debian's packaging of our version
of kjc.jar as it was in the Kaffe source tarball was according to the
letter and the spirit of the GPL. While Kaffe.org is in compliance with
the GPL, afaict, as the whole kjc source code to our modified version is
available from the kjc module from the same place kaffe was distributed
from, it wasn't clear whether Debian would have been, as the old kjc.jar
apparently accidentally didn't contain its source code, and noone
checked until now, apparently. Oops. :(
So in order to avoid confusion, I quickly pulled kjc out of the CVS in
hope that the authors of kjc would quickly comment on it, so that I
could put it quickly back again. Unfortunately, the authors of kjc are
very busy, so no reply has arrived yet.
But after talking a bit more with Java packagers, and thinking about it
for a while, I believe we'll have to think a bit more how to create a
better way to distribute kaffe to make things easier and clearer for
distributors and packagers, in order to avoid creating such confusion in
the future. Stuffing jars into the CVS isn't such a great idea, so I
started to eradicate them from our CVS.
Right after kjc.jar, the second big thing to go was
Klasses.jar.bootstrap, allowing me to extremely simplify the whole build
system parts that depended on class library compilation. It's still not
perfect (we still run a native kaffeh, where checking in pregenerated
headers a la Classpath would be much friendlier to cross-compiling
developers), but it's moving in the right direction. Make dist works
again, and make distcheck also largely works fine, except for a few
issues with left over files after cleanup.
I've talked about that with Jim Pick and Ean Schuessler in the bug
report on kjc, and the general idea for 'the future' is to eventually
try to split kaffe the vm from the developer kit and eventually the
class library when we're fully merged with classpath. That's something
that SableVM and JamVM have been practising with pretty good success.
Another idea propagated by JPackage packagers, who'd like to support
kaffe in their distribution, is to have an extra java-kaffe-wrapper
package, that takes care of creating the proper wrapper scripts and
classes to make a full development environment, just like Thomas
Fizsimmons' wrapper does that for gcj & ecj in the gcj wrappers in
Fedora Core 4. It works pretty well for gcj, and it's an approach I
think we should copy.
Talking to David Walluck on IRC, I got the impression that JPackage
packagers really don't like seeing binary blobs in packages, like
prebuilt jar files. After making 'make dist' work again, it showed why:
the pre-built rt.jar files and friends added around 8-9 megabytes to the
tarball, a very sizeable chunk.
So I started to simplify and rework the build system, and to rip things
out the build system that are too complicated and take time to maintain.
I'd really like to rip out the 'prebuilt rt.jar in the tarball' and
friends, too, as they could equally well be distributed as jars from
kaffe.org if anyone ever needs them.
I hope I don't break things too heavily, and if I do I hope people will
complain and yell and post patches :) So thanks for your bug reports, I
appreciate your further comments, if any :) I'll try to make the build
more friendly to free compilers other than jikes, and see to get that
Java check kicked out, if you can help me find it.
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=291427 Arnaud is
working on updated Kaffe and Kjc packages at the moment, though he is
quite busy currently with 'real life', as well. :)
More information about the kaffe