Reaction to the Free Software Foundation's upcoming revision of the GNU Public License (GPLv3) has been mixed so far, with many participants taking a wait-and-see attitude while others (such as Linux kernel creator Linus Torvalds) actively opposing certain provisions. Now Sun has apparently decided to put its weight squarely behind the FSF and GPLv3. The reasons may not be as pure as you think.
In a speech and interview at the company's analyst summit this week, CEO Jonathan Schwartz said he would like both Solaris and Java to be licensed under GPLv3:
We want to ensure we can interact with the GPL community and the Mozilla community and the BSD community. I don't think we've been as effective as I'd like to be in going after the GPL community, because there's an awful lot of really bright people who think that's the license they prefer. That discussion is incredibly central to recruiting more developers around the world.
We did version 2 with Java because version 3 wasn't out. When we have version 3, Java will likely go to 3.
Schwartz said patent protections expected in GPLv3 make it more appealing than the current GPLv2. It's a "license you can use without fear of a patent attack," he said. FSF Executive Director Peter Brown confirmed that Sun was moving in this direction (emphasis added):
Sun has now asked for our thoughts on moving the Solaris operating system to GPLv3 and what they would need to do to engage the free software developer community. Specifically, they see the advantages of creating a GNU system, utilizing the kernel of Solaris.
What is Sun really up to?
Patent protection is unlikely to be the real reason Sun is talking about GPLv3 now. The real reason is to step up competition with Linux, and if possible, drive a wedge between the FSF and Linux kernel developers. The ultimate goal is nothing short of replacing GNU/Linux with "GNU/Solaris".
Sun has seen its operating system market share erode as upstart Linux has captured the world's imagination, especially on the servers that power the Internet and the back offices of large and medium-sized enterprises. The first (many would say belated) attempt to counter Linux was to release Solaris as open source. But they made a serious miscalculation: instead of using one of the existing free/open source licenses they invented their own (CDDL). It's not a bad license, but thought leaders in the free/open source community greeted it with a great deal of suspicion, so it never achieved widespread adoption.
By contrast, Sun's decision to release Java under the GPL (v2) was warmly received, except for those parties such as IBM and the Apache Foundation who would have preferred a more permissive license such as ASF (Apache), EPL (Eclipse), or BSD. These licenses are considered to be more "business friendly" because they allow closed and open source to be mixed together. For example IBM and other companies routinely use Apache code in their commercial products, and they don't have to make the source available to their customers (or competitors).
That's just fine according to "pragmatic open source" developers who release their code under permissive licenses. Their main concern is to see that their code is used by as many people as possible. But it's not fine with "free software" developers who want assurances that their code will only be used in ways that don't violate their principles of user choice and freedom.
Turning our discussion back to Sun, they clearly don't want anyone but Sun to benefit from commercial/proprietary uses of their technologies unless they get their fair share. By offering Java under a dual license - you pick either GPL or a commercial license - they can satisfy the free/open source folks that drive much of the industry's innovation plus the commercial folks wary of the GPL who want to use the technology in proprietary products. It seems likely now this is what they're going to do for Solaris as well.
Furthermore, they are offering the FSF something that Linux can't - full support for GPLv3. Ever since Sun released Java under the GPL and Richard Stallman publicly supported the move, relations between the two organizations have gotten much warmer. Conversely, a running spat between the FSF and Linux kernel developers has left those two groups at odds over such issues as Digital Rights Management (DRM) and the use of Linux in embedded devices.
The Free Software Foundation and its founder Richard Stallman have certain long-standing and strong convictions about user freedoms that they simply refuse to compromise on. DRM, software patents, vendor lock-in, non-disclosure agreements, and having to pay a license fee just to run software are all off the table. Many people, including Linux kernel developer Linus Torvalds and friends, take a more pragmatic approach. For example, if a 3D video card maker like ATI or NVidia doesn't want to reveal the source code to their graphics drivers, most Linux kernel developers would say that's OK and provide a way for binary-only drivers to be used by the operating system. This is tantamount to blasphemy to the hard-core free software folks. Disagreements like this have been a constant source of irritation to the FSF. Now maybe they've found a way out.
The main thing that Stallman and company bring to the game is a large and stable collection of GNU tools that make an operating system more than just a kernel. All the commands a user interacts with, such as the 'gcc' command to build programs or the 'ls' command to list directories, those are all supplied by the FSF. They consider these pieces so important that FSF members and their legal representatives won't even grant interviews unless you promise in writing that you'll refer to "GNU/Linux" and not just "Linux" in your articles and blogs.
The Foundation would have liked to have supplied that final, critical piece: the kernel; but attempts to write that in-house were not very successful. Then along came Torvalds, the spunky Finnish software engineer who created and now coordinates development of that kernel. It seemed like a match made in heaven, at least at first. But cracks appeared when it became clear Torvalds and Stallman didn't always see eye to eye on certain principles and on how far a developer should go to try and enforce those principles. These differences came to a head last year when drafts of GPLv3 started coming out. Louder and more vitriolic objections from the Linux side threatened to derail, or at least delay or dilute, the powerful statements that Stallman and the FSF were pushing. The end result is that there's a good chance the Linux kernel will remain licensed under GPLv2 and not move to v3, so it can't be used as leverage to advance the FSF's philosophy on issues like DRM. Another strike against Linux: unlike code from Sun and the FSF it's not copyrighted by a single entity. So any license changes would be a long drawn-out process.
With Sun's help and encouragement, the FSF is essentially saying to Linus Torvalds and friends, either play ball with us and accept GPLv3 or we'll shift our support over to Sun. Will it work? Is Sun a better partner in the FSF's crusade for purity in free software? Or will the pragmatists and the compromisers win in the end? Time will tell, but the game just got a whole lot more interesting.