[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: