Talk:Java and patents
 About the Classpath exception
The Classpath exception comes from the GNU Classpath project: http://www.gnu.org/software/classpath/license.html Sun chose to adopt this to make OpenJDK as compatible as possible with the existing free software java implementations. http://gnu.wildebeest.org/blog/mjw/2006/11/13/13-nov-2006/
The text about OpenJDK and the PhoneME implementations (both distributed by Sun/Oracle) is somewhat confusing.
OpenJDK is a free implementation of the Java SE specification (and the core libraries use the exception statement). The implementation is designed to run well on desktop & server machines (but can be scaled down a bit by combining it with a different runtime for example Cacao or JamVM). http://openjdk.java.net/ http://openjdk.java.net/legal/
PhoneME is a free implementation of the Java ME specification(s) (almost entirely released under pure GPL). The implementation is designed to run well on smaller devices. https://phoneme.dev.java.net/ https://phoneme.dev.java.net/source/browse/phoneme/legal/
Some of the specified libraries overlap (although there are some subtle differences in behavior) but neither is a subset or superset of the other.
Android/Dalvik is a (mostly) free implementation that resembles the Java SE variant the most. It isn't based on any specific java specification directly and doesn't include anything in ME but not in SE. It can be seen as a subset of the SE libraries, with specific Android libraries added. The implementation is designed to run well on phones.
An example of usage of both PhoneME and OpenJDK hibrids on commercial embedded devices is the Bug: http://community.buglabs.net/kgilmer/posts/45-BUG-OpenJDK
Another example that blurs the lines between SE and ME (and happily combines code from various free implementations) is MIDPath http://midpath.thenesis.org/bin/view/Main/
 Sun's Free and Open Source Java FAQ
When Sun released all the code under the GPL, they also published a FAQ to explain their interpretation. It is linked to by the main openjdk.java.net site and published at http://www.sun.com/software/opensource/java/faq.jsp But something got mixed up with the jsp files during the sun.com -> oracle transfer. While the original copy is being restored, a copy can be found at http://icedtea.classpath.org/openjdk/java/faq.jsp.html
Of particular interest are the following QAs which point to the interpretation of the FSF for determining your rights under the GPL, and pointing out that there are no legal restrictions on sub/super-setting and/or using the code base for non-java implementations:
Q: What rights do developers have under GPL v2 + Classpath exception? A: The best source for answering this question is the license itself. In addition, there have been numerous analyses of the GPL license and its terms, not least by the license stewards, the Free Software Foundation. Sun recommends studying these interpretations, and consulting legal counsel as necessary to understand your rights under this license.
Q: How can someone use the open-source code base to create a derivative work? A: Sun's Java platform implementations are now Free software. Developers can use the open-source OpenJDK and phoneME code bases in any way that a GPL v2 licensed code base may be used. These implementations are not "special cases".
Q: Can someone create and distribute an implementation that isn't compatible with the Java specification using this code? A: Yes. We do not recommend or endorse that action, however. In addition, they cannot label that implementation with the Java Compatible or Java Powered (for Java ME) brand and logo. These brands are your assurance that an implementation has passed the relevant TCKs.
Q: Can someone create software that doesn't even implement Java, but uses pieces of the OpenJDK code commons? What are the limitations, if any? A: Yes. There are no limitations. But there is an obligation to meet the requirements of the GPL (plus Classpath and Assembly exceptions if appropriate).