F21 System Wide Change: Java 8

Jaroslav Reznik jreznik at redhat.com
Fri Mar 21 12:11:44 UTC 2014

= Proposed System Wide Change: Java 8 =

Change owner(s): Omair Majid <omajid at redhat.com>

Make Java 8 (provided by OpenJDK 8 which is java-1.8.0-openjdk) the default 
Java runtime. The current default Java runtime (Java 7, provided by OpenJDK 7, 
java-1.7.0-openjdk) will be obsoleted and removed.

This is essentially an upgrade to the latest Java and OpenJDK version. 

== Detailed Description ==
The current default Java 7 runtime in Fedora is OpenJDK 7. The latest version 
of OpenJDK, 8, was released on 18 March 2014. Given that Fedora 21 will not be 
released before August, it makes sense to include the latest version of 
OpenJDK in Fedora 21.

OpenJDK 8 is a significant update to Java. It brings in significant new features 
to the Java language, including lambdas, a new javascript engine and lots of 
new library features. A complete list of features is available [1].

OpenJDK 8 is a backwards compatible update. Theoretically everything that 
worked against OpenJDK 7 should continue working against OpenJDK 8. There are 
a few exceptions:

    OpenJDK8 is much more strict when it comes to building javadocs. Many -
javadoc package in Fedora fail to build. Those that are built should continue 
working just fine.
    Packages that rely on non-public OpenJDK API may fail to build/run. 

A complete list of incompatibilities is available [2]. The incompatibilities 
are source and behavioral only.

It may be a good idea to mass rebuild Java packages against OpenJDK 8 to spot 
any source incompatibilities earlier. This is not required.  

== Scope ==
* Proposal owners:
** Deprecate/Obsolete java-1.7.0-openjdk
** Promote java-1.8.0-openjdk to a full java runtime status (fix provides in 
** In case of a mass rebuild, supply/apply patches to fix build against OpenJDK 

* Other developers:
** icedtea-web maintainers will need to update icedtea-web to run against 
OpenJDK 8
** Other java packagers will need to apply patches to their java package to 
ensure they can build against OpenJDK 8
** Everyone will need to test packages to verify that they work against 
OpenJDK 8

* Release engineering:
** Remove java-1.7.0-openjdk
** Possibly mass-rebuild (?) all Java packages. This is not strictly required 
to make OpenJDK 8 the default Java runtime.

* Policies and guidelines: 
** Many -javadoc packages fail to build. The OpenJDK 8 maintainers and the 
Java SIG are working on identifying a solution. The solution may require [3] 
guideline changes making -javadoc subpackages optional.

[1] http://openjdk.java.net/projects/jdk8/features 
[2] http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
[3] https://lists.fedoraproject.org/pipermail/devel/2014-March/196808.html
devel-announce mailing list
devel-announce at lists.fedoraproject.org

More information about the devel mailing list