java bytecode / java runtime version mismatch
I filed bug reports for packages building with openjdk-6 or cacao-oj6,
producing java bytecode for version 50, and which still depend on
java-runtime5, or earlier (attached at the end).
For lenny+1, when using openjdk/cacao as the default, there will be a
lot more of these mismatches (I fixed about 30 packages in the
pkg-java repo), so maybe a lintian check for this kind of mismatch
would be nice.
Matthias
Bug mail:
User: debian-java@lists.debian.org
Usertags: jbc-mismatch
This package builds with openjdk-6 or cacao-oj6, which is not the
default jvm in testing/unstable. The openjdk-6 and cacao-oj6 javac
creates java bytecode for version 50, which cannot be used by older
jvms. Binary packages explicitely built with openjdk-6 or cacao-oj6
must not depend on java-runtime{,1,2,5}{,-headless}, but only on
java-runtime6{,-headless} or any of the non-virtual packages providing
a java6 runtime.
It is preferred to build the bytecode so that it runs on older jvms.
This is done passing '-source 1.[45]' to javac (or for cdbs ant tasks
setting ANT_OPTS to -Dant.build.javac.source=1.[45].
You usually can check for the java byte code with file(1), currently
broken in testing/unstable, or use javap -verbose (a script checking
the command line args (check-class-version) can be found at
http://people.debian.org/~doko/tmp/. Both .class and .jar files found
in the binary packages need to be checked.
Note: this report may be a false positive, if all bytecode files have
version 49 or less.
Reply to: