some ideas on making packaging Kaffe easier (Was: Re: [kaffe] Problems compiling Kaffe)

Dalibor Topic robilad at
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 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[1], 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 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.

dalibor topic

[1] 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 mailing list