Java 8 transition status
Hi,
Here is a status report on the Java 8 transition:
1. OpenJDK 8
The source of the openjdk-8 package is available on alioth [1] and
several persons have been able to built it successfully. Prebuilt
binaries are also available for amd64 [2] (currently 8u5-b13). The
package uses the upstream build system and is not based on IcedTea (but
several IcedTea patches are still used).
Issues blocking the upload:
- debian/copyright update
- Settle where to maintain the package (either Bazaar/Launchpad by the
OpenJDK Team or Git/Alioth in the Java Team repository)
Other issues:
- ports:
- kFreeBSD: Jan Henke has started working on the kFreeBSD support. He
refreshed the patches but the compilation doesn't complete yet.
- aarch64: The openjdk-8 package integrates the upstream aarch64 port
but nobody has tried to build it yet. Also the aarch64 port isn't
currently in sync with the main code base and unlikely to be [3], we'll
have to organize the package to work with different versions and hope
that's sustainable.
- others: I plan to contact the porter mailing lists to get more
people to build and test openjdk-8 on various architectures.
- tests: I have updated jtreg to run the OpenJDK 8 tests but the package
hasn't been uploaded yet. The upstream build has several hardcoded paths
for jtreg which are causing some problems. So far I'm able to run the
langtools tests but not the other suites. I asked Oracle to get access
to the JCK but haven't heard from them yet.
- hardening/debug symbols/striping : Help wanted from a C/C++ guru to
get this right.
- fonts: The font configuration patches are disabled. I haven't tested
GUI applications yet but I guess it won't look pretty.
- patches: Several patches from openjdk-7 are still disabled. They have
to be reviewed and either dropped or refreshed:
fix_extra_flags-$(hotspot_version).diff
no-pch-build.diff
text-relocations.diff
zero-opt.diff
zero-x32.diff
zero-sparc.diff
hotspot-libpath-$(hotspot_version).diff
- JavaFX: Oracle integrates JavaFX into Java 8, but this is a different
project developed in its own repository [4]. The build is based on
Gradle and as such I don't think we can reasonably mix the OpenJFX
sources into the openjdk-8 package.
- audio: IcedTea provided a Java Sound driver for Pulse Audio. I ignore
if we really need it (is the sound broken or is this just an
optimization?). It will have to be extracted from IcedTea and packaged
separately if we want to keep it.
- bootstrapping: OpenJDK 8 requires Java 7 to compile the langtools
module. We may try to build this module with gcj instead, this would
allow us to drop openjdk-7 in the future (for Jessie+1 I guess).
2. Java packages
1038 packages depending on default-jdk were rebuilt with openjdk-8 and
84 of them failed to build [5][6]. There are about 20 packages depending
on openjdk-6-jdk or openjdk-7-jdk which weren't tested yet:
automake-1.14
avian
beast-mcmc
clojure1.2
elki
hsqldb
hyperestraier
icedtea-web
ikvm
java-access-bridge
jcc
jenkins-winstone (FTBFS with Java 8, fix pending)
osmosis-plugin-borderextract
osmpbf
pegasus-wms
plm
radare2-bindings
uwsgi
visualvm (already FTBFS due to Ant 1.9)
13 packages have been fixed:
antlr3
args4j
ehcache
felix-framework
felix-utils
groovy
icu4j-4.4
icu4j
jakarta-jmeter
jython
libcommons-collections3-java
logol
sqljet
2 packages are going to be removed:
collections15 (#744169)
libcommons-collections-java (#744226)
3 packages have been fixed upstream and are awaiting a new release:
basex
libjdom2-java
tomcat6
tomcat7
8 packages have an issue with the Javadoc. For some of them I haven't
been able to reproduce the build error:
antelope
libfreemarker-java
libreoffice
mina2 ?
modello1.4 ?
modello ?
openvrml
swing-layout (nasty javadoc crash)
9 packages fail to compile due to a conflict with the methods added to
the collection interfaces:
eclipse-cdt
eclipse-egit
eclipse-emf
eclipse-wtp
eclipse-xsd
jitsi
mkgmap
openjpa
zeroc-ice
4 packages have errors related to the removal of APT:
glassfish
jruby
maven-stapler-plugin
sezpoz
13 packages have test failures, probably caused by a different order of
execution on Java 8:
biojava3-live
caveconverter
clojure1.4
commons-exec
commons-math3
commons-math
dynalang
jgit
junit4
libapache-poi-java
libhibernate-commons-annotations-java
libitext5-java
libxmlrpc3-java
4 packages check the JDK used at build time and reject Java 8:
cdk
gdcm
jajuk
libjibx1.2-java
26 package have other build failures:
aspectj
bnd
cadencii
cofoja (reported upstream)
eclipse
freemind (caused by jibx)
gluegen2 (false positive?)
gradle (may be fixed by libasm4-java/5.0.1-1)
guava-libraries
guice
ha-jdbc
jalview
jing-trang
libbluray
libbtm-java
libcofoja-java (to be replaced by cofoja)
libjibx1.1-java
libjtype-java
libjxp-java
libspring-java
mobile-atlas-creator (needs a proguard update)
mvel
openmama
picard-tools
rjava
scala
We aren't done yet and there is plenty of work for volunteers. So feel
free to pick the items you like and report back your progress here.
Emmanuel Bourg
[1] http://anonscm.debian.org/gitweb/?p=pkg-java/openjdk-8.git
[2] http://87.98.165.193/debian/
[3]
http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2014-April/001024.html
[4] http://hg.openjdk.java.net/openjfx/8u-dev/rt/
[5] http://87.98.165.193/debian/openjdk8-rebuild/logs-failed-jdk8/
[6] http://people.apache.org/~ebourg/openjdk8-rebuild-analysis.xls
Reply to: