Freedom Lite: Sun's Community Source Licensing

This is a really old article, from April 1999 or possibly earlier. It's just here for historical interest. For context, note that I did not work for Red Hat when I wrote this, and all opinions are my own (historical) thinking.

The Open Source bandwagon is growing - many companies have jumped aboard, while many others have continued to license software as they always have. Sun Microsystems has taken the inevitable third road: they are trying to get the benefits of free software, without any of the "disadvantages." Bluntly: they are trying to get free labor without giving up control of their software. They've even given this development model an ironic name - "Community Source Licensing."

Disturbingly, the media has begun to lump the "Community Source License" in with lists of free licenses. This has happened in many articles recently. It's on the Open Code site, inexplicably, since it has next to nothing in common with the other licenses shown there.

An essay giving the rationale for this licensing model is available here. I'd like to respond to some of the points made in that essay; you should read it first or this page won't make much sense. So go there, then come back.

In the introductory section, the authors give "two significant differences" from the Open Source model. These are:

It's a sign of FUD to come that the second difference is on-face incorrect; many free software licenses allow proprietary modifications and extensions, including the X-style license, the MPL, and in many cases the LGPL (though the value of allowing them is open to question). But the first requirement is a real difference, and there are some other differences not highlighted in the essay. If you look at the actual licenses, for example, these differences include payment of royalties (see this summary of the JDK 2 terms).

Sun's "Community Source Licensing" differs from Open Source software in many ways:

Basically, you can make changes but you can't do anything interesting with them. You can see the source, but that's about all.

I'm sure most of you are already convinced that this is a bad thing. But it's interesting to look at Sun's point-by-point comparison of their license to free licenses.

Does the CSL gain the benefits of free software?

Here are the advantages of free software according to Sun:

They say a Community Source License also gets these benefits. But let's look more closely. Yes, their code is open. Are more developers working on the code? Only if we, as a community, cooperate with them. Do they avoid the central organization and control? Nope. Do they allow "adaptive boundary-setting"? Nope. Do they "reap the benefits of expertise not in their employ"? Again, only if we cooperate.

So it seems Sun's license doesn't even gain the benefits they list, let alone the many other benefits we're all familiar with.

As a side note, Sun seems to miss what Netscape truly took to heart: open source is also a development model, albeit enabled by certain licenses. Sun hasn't made changes to their development model to try to reap these benefits, and indeed their licensing model makes this difficult.

(UPDATE Since I wrote this, Sun has added (or I originally overlooked :-) an "additional benefits of the SCSL" section after their original list of "benefits shared by free software and the SCSL." The "additional benefits" even more blatantly apply to open source licenses as well; though they try to imply otherwise by suggesting that all free licenses are GPL-like and cannot be used in proprietary software.)

Does the CSL avoid the disadvantages of free software?

Sun goes on to claim that free software has a number of disadvantages, which their licensing model avoids. Here they are:

Let me put aside the question of compatibility and fragmentation for a moment and address the other concerns.

Now consider the compatibility issue for a moment. Sun wants to make sure Java stays pure, so they put that in the license, making it a thoroughly non-free license (since the code can't be reused for any purpose other than a 100% pure Java environment, and the certification process is a big hassle). Fair enough. But what have they gained that could not be gained through trademark licensing? Very little. Just as Netscape has, they should reserve the Java and Jini trademarks and license them as they wish. This gives them the benefits they want, without restricting the freedom of the software.

But let's assume trademarks aren't enough. Would Open Source make the situation worse? I'd say absolutely not. Sun should have learned their lesson when the X Window System beat out their proprietary software years ago. They should have learned the same lesson from Perl. Open Source is absolutely the best way to make sure a technology never fragments, because there is no reason for anyone to develop a competing implementation. Why would Microsoft write Visual J++ if anyone could use and extend Sun's implementation for free? Microsoft simply wouldn't make any money from it.

Perhaps more important: a free Java implementation is pretty inevitable, just as a free window system was. And as soon as the free implementation is as mature as Sun's (and there are several contenders, and all of them are moving rapidly), Sun's licensing will fade into irrelevance, along with Sun's control of the technology. If they want to keep control, they need to be the "first movers" and become the de facto standard free Java package. Does anyone doubt that Netscape will have all kinds of control over the free browser everyone uses? Does anyone doubt that Larry Wall controls the direction of Perl, or that Linus controls the direction of the kernel? Sun stands to lose control to some of the free Java efforts due to the CSL.

Conclusions

When you boil it all down, only a couple of the rationales Sun gives are convincing:

The first goal is simply unviable; Sun wants option (c) on the multiple-choice exam, but there is no such option. No one wants to donate code to them for their benefit, without getting any guarantees in return; Sun Microsystems is no charity. Since people can instead donate their labor to one of the many free Java efforts, they undoubtedly will.

The second goal could also be achieved with an open source license, in my mind. They don't agree - fair enough. But it's clear that the way they've fit this goal into their license precludes many of the benefits of free software. Again, they can't have it all; Sun must face the hard choices.

Even if Sun doesn't catch on, it's important to send a clear message to other companies that "Community Source Licensing" is no substitute for the real thing. The essence of free software is that no single entity controls the software from a legal point of view. In fact that's not a bad summary of the Open Source Definition. However, in practice, as ESR and others have pointed out, a single entity does control the development of each package. Sun has clearly missed the point; by trying to force their control upon us, they have lost our trust, and driven us away.

Havoc Pennington