Kaffe compiler transition
Reasons
The kaffe maintainers have decided to move away from the jikes compiler to the ecj compiler (eclipse compiler for java). With the upload of kaffe 1.1.6.91-1 this transition will start.
The reasons for the switch are various problems with jikes - fails on arm, mipsel, dead upstream, no support for upcoming 1.5 features - and the need to be able to switch in the future to the classpath generics branch.
Consequences and how to solve them
This page should help tracking the progress of the kaffe compiler transition. Due to the change of the default kaffe compiler from jikes to ecj almost all java packages building with kaffe will FTBS.
Below are all packages Build-Depend on either kaffe or jikes-kaffe. All of them needs to be checked against the new kaffe version (beginning with 1.1.6.91-1, thats the 1.1.7-rc1 upstream) if they still compile. If not mostly only some minor maintainer action has to be done:
Remove jikes occurrences in all build and control files
For example:
- Remove DEB_ANT_COMPILER := jikes from debian/rules
- Remove build.compiler=jikes from ant.properties
Afterwards ant will automatically use the new kaffe default compiler ecj.
Other problems which might occur
Compiling may fail because somewhere a target=1.1 is set. ecj needs at least 1.3 to compile so changing the occurrences to target=1.3 will do the job.
Further classpath failures may occur. Check that you don't use /usr/share/kaffe/Kaffe.jar or /usr/share/kaffe-common/lib/rt.jar anymore. Instead the default location /usr/lib/kaffe/jre/lib/rt.jar for the classpath.
If you need assistance in the transition please show up on #debian-java or write to the debian-java mailing list to get help.
Thanks,
Wolfgang Baer
Packages
Daniel Bonniot
- nice (4 RC bugs open - not yet done libant1.6-java transition)
Adam C. Powell, IV
- babel - as far as I can see no need to transition (currently FTBS due to other reasons)
Debian Java Maintainers
- argouml
- commons-daemon
- commons-httpclient - works currently as depend on jikes - should be transitioned later
- commons-pool - works currently as depend on jikes - should be transitioned later
- javacc - works currently as depend on jikes - should be transitioned later
- jline - works currently as depend on jikes - should be transitioned later
- jsch - works currently as depend on jikes - should be transitioned later
- jta - working on it (wbaer)
- libdtdparser-java - works currently as depend on jikes - should be transitioned later
- libgnuinet-java - works currently as depend on jikes - should be transitioned later
- libjdom-java - only one rdepends - should be removed from archive
- libnsuml-java - works currently as depend on jikes - should be transitioned later
- liboro-java - works currently as depend on jikes - should be transitioned later
- lucene
libgnujaxp transition
Reasons
Removal of libgnujaxp-java from the archive. No longer supported upstream, already merged over a year ago into GNU classpath and therefore in every free vm available.
Packages
sablevm - only recommends, 346071
- free-java-sdk - only recommends, package will be removed when sablevm updates
- libjfreereport-java - package ready (wbaer)
- batik
libjdom-java removal
Two version of the library would also be enough
Packages
statcvs 331703
- jta - working on it (wbaer)
