Will Sun Use GPLv3?
By webmink on Nov 30, 2006
Over the last few weeks, I have had a few people ask me why Sun didn't choose GPL v3 for Freeing the Java platform. "Does this mean you're siding with Linus?" they have asked me. "You must be," they have said, "because you chose 'GPL v2 only' rather than 'GPLv2 or any later version' as the license for the Java platform, preventing automatic use of GPL v3. You must be critical of it."
Those conclusions are not true at all. The answers are actually pretty straightforward, and when I discussed this matter with Richard Stallman he actually agreed we were making an acceptable choice here. I'll explain.
The GPL v3 Process
First of all, Sun has been engaged directly in the GPL v3 process since it started. My colleagues and I attended the launch conference in Cambridge, MA at the start of 2006 - I even logged the conversation with my friend and collaborator Danese Cooper of Intel. Since then, Sun has been a regular participant in discussion committee B and we continue to take a close and positive interest in the proceedings. Sun's lawyers provide assistance to Eben Moglen and other SFLC staff (who have reciprocated by providing valued input and advice to Sun's open source efforts), and we intend to stay engaged right to the conclusion of the project. I even spoke on a panel supporting it at FISL in Brazil.
My personal view is that the GPL v3 process has been extraordinary and effective so far in taking a somewhat partisan initial draft and evolving it into a solid license. The first draft of GPL v3 was a work of extreme skill, but some of the concepts and language definitely needed work. There were several places where the language was that of intent rather than of effect, and no-one doubted that revision was needed - that rapidly became evident in the comments posted to the web site as well as in the discussion committees.
With more effort and erudition, draft 2 was produced and it was clear we'd come a long way. Most of the language some considered extreme had been replaced by careful attempts to express effects in law, and we were on our way to a usable license. Still, it was clear there was distance left to travel. There's now a working draft in circulation just among the discussion committees.
Excellent work is taking place to understand how for example to neutralise the effect of software patents without unintended side-effects on the ability of community participants to defend themselves from hostile outsiders. There will be more drafts, more comments and I am personally very confident that an effective license will emerge from the end of the process next spring.
Why GPL v2 Only?
Actually, the very first question Richard asked me about OpenJDK was "GPL v2 or later" or "GPL v2 only"? I explained that Sun could not in good faith commit to using a license sight-unseen for such an important code-base. It's used on 4 billion devices, there are more than 5 million developers dependent on it for their living, and the risk - however slight - that the GPL v3 might prove harmful to them can't be taken. So while we are very positive about the GPL v3, committing to using it when it's not finished does not seem responsible stewardship. I hope we can use it, but I can't express that hope by committing in advance. So for now, the Java platform will be licensed under just the GPL v2.
Why Not GPL v3 Now?
The reason we did not choose to use the GPL v3 for the Java platform yet is because the GPL v3 is not ready to be used. Maybe we could have delayed the Freeing of the Java platform until the new license was ready, but we felt that was too long to wait. One strong reason was it was clear to us that migrating the Java SE code into the OpenJDK community with its new version control system was going to take a considerable time. It has to be moved from the internal, closed version control system we've used historically over to the new, open source VCS (Mercurial) that we'll be using both for the Java platform and for OpenSolaris. That's going to take some time - moving 6 million lines of code along with their audit trail with confidence is a job you can't rush. So we decided not to wait for the GPL v3 process to complete.
Why not LGPL?
Well, we preferred to follow the lead of the existing GPL Java community by using the GPL with an exception rather than using LGPL. This is actually the approach that the GPL v3 design is following. rather than having custom licenses for each purpose, the GPL v3 is designed to be used optionally with exception language that modifies its effect but remains compatible. This clever approach is how GPL v3 will hopefully be able to bridge between various other Free and Open Source projects that use different licenses.
So will you use GPL v3?
See above! We obviously can't commit to that yet - the license isn't finished. However, as things stand I would be very surprised if the final GPL v3 was not an effective tool for some of the communities Sun sustains or will initiate in the future. We are certainly not opposed to it, and it would be a huge mistake to read our use of the GPL v2 that way. Any change to the licensing of OpenJDK would naturally be made with the same caution and attention to compatibility and the affected ecosystems as characterised our previous decision.
I am frankly amazed by the criticisms some have levelled at the GPL v3 process. They seem to ignore the incredible and positive way it is evolving and just find fault with things that are already the subject of work by the diverse participants on the discussion committees and the web site. We're discussing license activation, software patents, managing DRM and all the other things that are supposedly wrong. If the critics were to step inside the process rather than throw rocks from the outside they would discover that. If Sun can participate, for goodness sake, who could possibly feel excluded?