« Business Model | Main | Code and Encumbrances »

OpenJDK License





What license did you choose for the open-source JDK components?

GPL v2 for almost all of the virtual machine, and GPL v2 + the Classpath exception for the class libraries and those parts of the virtual machine that expose public APIs.

What license did you choose for implementations of Java ME and the Java ME frameworks?

GPL v2 was chosen for all components related to Java ME.

What is the Classpath exception?

The Classpath exception was developed by the Free Software Foundation's GNU/Classpath Project (see http://www.gnu.org/software/classpath/license.html). It allows you to link an application available under any license to a library that is part of software licensed under GPL v2, without that application being subject to the GPL's requirement to be itself offered to the public under the GPL.

Why do you need the Classpath exception?

If an application is distributed with an implementation of Java such as the JDK under GPL v2, that application could be subject to the requirements of the GPL that all code that is shipped as part of a "work based on the [GPL] program" also be GPL licensed. Accordingly, a GPL license exception is needed that specifically excludes from this licensing requirement any application that links to the GPL implementation. The Classpath exception accomplishes this. Without the Classpath exception, a Java SE implementation licensed under GPL v2 could not practically be distributed with non-GPL licensed Java applications. This could present a serious barrier to adoption, for example by OpenSolaris or GNU/Linux distributions if left unaddressed.

Why did you choose this licensing method?

This is the licensing paradigm in common use within Free software communities such as GNU/Classpath and Kaffe for the components of a Java technology implementation including the virtual machine and class libraries. We consciously chose the same licensing method so that there would be no temptation to second guess Sun's intention to make its Java SE implementation available under a genuinely Free and open license and to allow easy collaboration with these existing communities.

Are you licensing the entire JDK under this method?

Yes. Note that some of the code included in the OpenJDK project is not part of the Java Runtime Environment, but rather is part of the tools and documentation that let developers use the JDK to create and test code, as well as some demo and sample application code. See below for specifics on how each of these modules is licensed.

What about source code in the JDK that originated outside of Sun and is incorporated into the JDK under its own license? Can you relicense this code under the GPL?

Where such licenses are compatible with the GPL, then this code is licensed under the GPL in the OpenJDK code base. There are some code modules that Sun may not have the right to release under the GPL. We're still investigating some of the license compatibility issues and hope to resolve them as quickly as possible. In the mean time this code will be released only as binaries if the source is proprietary or as source under its original open source license.

How can you ship the JDK with binary-only elements then? You said there were encumbrances.

Well spotted! Because there are encumbered components that must be shipped without source. The Software Freedom Law Center and the Free Software Foundation have helped us craft a special exception to the GPL, called the Assembly exception, to allow the full JDK to be built. This exception will be applied temporarily until the encumbrances are removed to these binary plugs. We would welcome your help to make this happen as soon as possible. In addition, the Assembly exception is needed to allow Sun to combine in a single collected work components under both GPL, and GPL plus the Classpath exception. Without the Assembly exception, the entire OpenJDK code base would have to be licensed under GPL without the Classpath exception.

What are the advantages of GPL v2?

As well as fulfilling its original purpose of promoting Free software, the GPL v2 is designed to help advance projects and code commons by requiring innovation sharing with the commons. By design, it minimizes proprietary forks by requiring any modifications be shared with the project. GPL v2 is the right license to preserve Java's trademark "Write Once, Run Anywhere" value proposition.

What rights do developers have under GPL v2 + Classpath exception?

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.

What must I do to call my software based on code from the OpenJDK or phoneME projects "Java"?

The requirements for the use of the "Java" trademark and name have not changed with the open sourcing of the JDK and Java ME source code. The GPL v2 does not include a trademark license - no OSI-approved open-source licenses do. Sun does not currently have a licensing program that permits the use of the "Java" mark in your product or company name. You can use a truthful "tagline" however associating your product or company with Java technology, according to Sun's standard terms for use for trademarks. Please see http://www.sun.com/policies/trademarks/ for more details.

How are the regression tests you have released as part of the buildable OpenJDK code base licensed?

GPL v2 only. There are a small number of files that have no license in the file itself. These files are all licensed under GPL v2 only, as the entire combined work constituting the OpenJDK code base is under GPL v2. These files are mostly data files used in certain tests, for which no provision has been made for comments, and thus which cannot be modified to include the GPL v2 header.

What about GPL v3? Have you considered using that license?

While Sun has been working with the Free Software Foundation as an active participant in the development and review of the GPL v3 license, and while the license is in a late review phase, it is not yet complete. It is Sun's strong desire to advance the open sourcing of its Java technology implementations in a timely manner, so we made the decision to use an existing, established license paradigm rather than wait for GPL v3 to be completed. Using GPL v2 does not indicate anything negative about GPL v3. Sun continues to be very actively and positively involved in this new license's development.

TrackBack

TrackBack URL for this entry:
http://freejdk.org/mt-tb.cgi/7