Looking at an archive rebuild with opendjk-9-jdk
I rebuilt ~300 packages[1] which build-depend on default-jdk in a
hacked-up[2] "chroot" which uses openjdk-9-jdk, in place of openjdk-8-jdk.
(i.e. custom java-common build + some Provides: hacks.)
Most things fail: 87% failures.
~41% are hitting a bug in Maven, e.g. argparse4j:
dh_auto_build -O--buildsystem=maven
/usr/lib/jvm/default-java/bin/java -noverify -cp /usr/[...]
[ERROR] Error executing Maven.
[ERROR] java.lang.IllegalStateException: Unable to load cache item
[ERROR] Caused by: Unable to load cache item
[ERROR] Caused by: Could not initialize class
com.google.inject.internal.cglib.core.$ReflectUtils
There's an old mailing list post about this, but it doesn't seem to have
a resolution beyond "works for me!":
https://www.mail-archive.com/jigsaw-dev@openjdk.java.net/msg06073.html
Someone more aware of what versions of things we're running, and how
they were built, should investigate this.
~30% are using an outdated -source or -target, e.g. dom4j:
[javac] error: Source option 1.3 is no longer supported. Use 1.6 or later.
[javac] error: Target option 1.3 is no longer supported. Use 1.6 or later.
We discussed on IRC perhaps patching javac (or ant/maven) to just use
1.6 here, and pray. Annoying to try, as neither ant nor maven build in
my "chroot".
Does anyone have a less horrifying suggestion, beyond patching 30% of
the libraries in Debian?
~8% are hitting a bug in gradle, e.g. gant:
Caused by: java.lang.reflect.InaccessibleObjectException:
Unable to make protected java.lang.Package[]
java.lang.ClassLoader.getPackages() accessible:
module java.base does not "opens java.lang" to unnamed module @14fc5f04
https://github.com/gradle/gradle/issues/1095 suggests it's fixed in 4.1
nightly, as of a fortnight ago.
I guess we just wait for upstream to fix this one, and the new gradle to
make it into sid.
The remaining failures are much more random:
* eclipse stuff has weird failures, e.g. eclipse-cdt fails to find some files[3]
* broken dependencies (i.e. probably not caused by jdk9,
or caused by my build env), e.g. dogtag-pki
* javadoc is more picky about some things, e.g. imports of sealed packages (hacked ant),
[javadoc]
/build/classycle-1.4.2/src/classycle/ant/ReportTask.java:97: error:
no summary or caption for table
* bnd actually fails due to a jdk9 reason, it uses _ as an identifier!
* Full list (without reasons): https://paste.debian.net/973904/
I suggest we attempt to address these three major issues before trying
a bigger rebuild.
Chris.
1: Processed dose output: https://paste.debian.net/973901/
2: https://github.com/FauxFaux/debjdk9
3: https://paste.debian.net/973906/
Reply to: