Sun is releasing Java under the Gnu General Public License (GPL) today. More specifically:
They are releasing a full "buildable" version of the Java Platform Micro Edition (Java ME). This includes "the source code for Sun's feature phone Java ME implementation, the next generation version of the platform that currently enables rich mobile data services in over 1.5 billion handsets. Also available is Sun's source code for the Java ME testing and compatibility kit framework, the foundation for Sun's Java ME compatibility tests. Later this year, Sun will release additional source code including its advanced operation system phone implementation and the framework for the Java Device Test Suite."
They are releasing only part of the Java Standard Edition today, Specifically, they are releasing:
My guess is that they don't have quite all the legal details worked out for the standard libraries and some other tools, but the other pieces should follow by next March.
Part of the hold up is simply that Java 6 is not currently fully buildable with open source tools. That is, you can't just type "ant" and build the whole thing. Java 7 is much better in this respect, and Java 6 should be by the time it's released.
The Technical Compatibility Kit (TCK) might not be open sourced; or if it is, it may not be released under the GPL. That decision has not been made yet.
This will be part of the OpenJDK Project on java.net.
Sun will also be continuing with the existing, non-free, "commercial" license for those who prefer that. A few components licensed from third parties may only be available in this version, but I don't expect this will be anything too major or irreplaceable.
Updated: Java programs compiled and run against the GPL VM, but which do not include any Sun code except by linking to it will not become infected by the GPL. According to Sun executive vice president Rich Green, ""In the case of Java SE we're enhancing with the classpath exception, so when you're working on top or shipping applications with the libraries and virtual machine, you're not affected by the Java license."
Possibly the existing free-beer license will go away. Instead there'll be two licenses: GPL and a contracted, commercial license featuring indemnification which you'll have to pay Sun quite a bit of money for. Most of us will just use the GPL version. The commercial version is essentially what's been sold to licensees like Apple and IBM that redistribute derivative VMs.
GPL licenses do not require any agreement on the part of users. However I expect Sun won't realize this, and will put it in one of their annoying click-to-install screens anyway. If they do, I may just go ahead and repackage the JDK under the real GPL without any click-through licenses (if no one else beats me to it).
Will Apple, IBM, and other current commercial licensees open source their VMs? That's really up to each one. It may also require contract renegotiation, since the existing contracts may not have foreseen the possibility of an open source Java, and may explicitly take away rights the GPL would grant. I'm expect that Sun won't stand in the way of any current licensees that want to follow in their footsteps, and release their own VMs.
I'm not sure what this means for independent efforts to develop a free VM such as Gnu Classpath and Apache Harmony. License incompatibilities prevent these projects from accepting Sun code, even under the GPL. Kaffe, however, is GPL'd and should now be able to freely trade code with Sun. On the other hand, it may well become an also-ran since it's primary advantage relative to the standard VM was the license. That advantage has now been neutralized.
Forks are allowed (of course) but still cannot use the word "Java" or the coffee cup logo. Duke, however, is now fair game.
The Glassfish Java Enterprise Edition application server, currently available as open source under the Common Development and Distribution License (CDDL), will also be dual licensed under the GPL by March of next year.
Debian and Ubuntu will finally be able to bundle a complete, current Java virtual machine. It probably won't quite make Feisty Fawn (unless Sun can shave a few months off their schedule or Ubuntu is willing to slip their release dates) but it should be in the release after that. Going forward this is going to be very important for Java's adoption on the desktop. It should make Java a much more attractive option for Linux development.
Details will be provided in an official announcement in Real Media at 12:30 P.M. EST today. I'll be listening carefully for the answers to these questions.