What do you mean by "encumbered code"?
Some parts of the JDK and Java ME implementations include code to which Sun may not hold sufficient rights to release under a license that allows third parties to create unlimited sublicensable derivative works. These rights are necessary to allow release of these implementations under the GPL v2. Those parts of the code for which we don't have these rights are said to be "encumbered".
What do you mean when you say that you are now shipping a "fully buildable" JDK?
We have released as much of the source code as possible under the GPL. However, there are encumbered modules in the first buildable release of the OpenJDK code base. In the short term we are providing a separate bundle of binaries compiled from these sources that can be combined with builds of the GPL'd sources to yield a complete, working JDK. We hope to rewrite these components to remove the closed-source code - and we welcome your help!
What are the encumbered components in the JDK?
The larger encumbered components requiring binary files for a full build include the font rasterizer, the graphics rasterizer, and the sound engine. Smaller components include some cryptographic algorithms, some SNMP code, and some of the imaging APIs.
How will the encumbered binaries be licensed? Will I be able to redistribute a JDK built from the GPL'd sources and the encumbered binaries?
The Assembly exception allows downstream redistribution of such a JDK. For more on this subject see "Licensing".
I'd like to help clear the encumbrances in the OpenJDK code base. How do I get started?
We're opening sub-projects under the OpenJDK project on java.net focused on the major encumbrances that need to be addressed so that OpenJDK can be 100% free software. These projects and their URLs are:
* Java 2D Font Rasterizer
* Sound Engine
And we will soon launch another project to cover Java 2D Graphics Rasterizer.
Will everything in the Java ME feature phone and advanced OS phone implementations be available in open source?
No, there are several encumbrances in these phone implementations. These encumbrances include support for specific phone hardware, graphics engine, sound engine, etc. All of these components and any other encumbered code will not be included in the open source code base.
How will encumbered code in the Java ME code base be managed?
Sun is actively negotiating with Intellectual Property (IP) owners to gain the rights to add the encumbered code, if any, to the open source code base. We will try to clear encumbrances with open-source or other reasonable alternatives. Implementations including encumbered components will continue to be made available via commercial license.