At FOO Camp this weekend, I attended an impromptu gathering convened by Danese Cooper and Michael Tiemann, both of whom are board members of the Open Source Initiative. The topic was the recent attempts by some companies to pass off licenses that do not meet all the requirements of the Open Source Definition as so-called “open source” licenses. Michael first wrote about this here (his post was Slashdotted), and today he followed up with another post.
Three cheers for the OSI, for seeing that there is a real danger of the term “open source” being diluted into meaninglessness here, and doing something about it. And for those who are wondering what the big deal is, let me explain, starting with this clause from the Zimbra Public License (I don’t mean to pick on Zimbra; there are other companies doing the same thing, this was just the nearest example at hand):
However, in addition to the other notice obligations, (1) all copies of the Original Code in Executable and Source Code form must, as a form of attribution of the original author, include on each user interface screen (i) the original Zimbra logo, and once for each user session (ii) the copyright notice as it appears in the Original Code; and (2) all derivative works and copies of derivative works of the Covered Code in Executable and Source Code form must include on each user interface screen (i) the “Zimbra Powered” logo,, and once for each user session (ii) the copyright notice from the version of the Covered Code from which the copy or the derivative work was made. In addition, the original Zimbra logo or the “Zimbra Powered” logo, as appropriate, must be visible to all users, must appear in each user interface screen, and must be in the same position as and at least as large as the Zimbra logo is within the Original Code. When users click on the original Zimbra logo it must direct them to http://www.zimbra.com/, and when users click on the “Zimbra Powered” logo it must direct them to http://www.zimbra.com/powered. This obligation shall also apply to any copies or derivative works which are distributed under the alternative terms of Section 3.6 and this obligation must be included in any such license.
That clause makes the license not open source. If you don’t have the right to modify the code in such a way as to not display the logo, then you don’t have true freedom to fork. Perhaps the OSI could have written clause 3 of the Open Source Definition a bit more strongly, to make this utterly clear. Right now it says:
3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
I wish it also said “The license may not restrict the functionality or behavior of derived works.” Then its meaning would be undeniable. But really, the meaning is already undeniable to anyone familiar with the traditions of open source: it means you must have the complete freedom to modify the source code, and to redistribute the modified version. If you don’t have that, you don’t have the freedom to fork, and you don’t have open source.
Anyway, the above in combination with clauses 5 and 6 below should put any doubt to rest:
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
The Zimbra license discriminates against Zimbra’s competitors, because it forces them to do advertising for Zimbra while not forcing Zimbra to advertise for anyone else. In the Zimbra license, Zimbra Inc. is a special party, treated differently from others.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.
The incompatibility between that and the Zimbra license is pretty glaring, no further comment needed.
The reason this matters is that open source, as a development methodology and as a culture, depends utterly on the freedom to fork. You can’t have open source practices without open source freedoms: the practices depend on the freedoms.
For example, take the issue of governance in an open source project. Many projects use the benevolent dictator model, in which one designated person gets to make the final call in controversial decisions. “Designated by whom?” the skeptic might ask. The surprising answer is “It doesn’t matter — because if anyone disagrees strongly enough, they can copy the project and take it in another direction.” In other words, benevolent dictatorship isn’t really dictatorship, because it depends completely on the consent of the governed.
Now try to imagine how this scenario would play out in the Zimbra development community. Zimbra (the company) starts out as the benevolent dictator, but eventually there’s some major disagreement between the company and an external developer, a disgreement in which the solution Zimbra decides on simply isn’t bearable to the external developer. (Perhaps it’s a disagreement about the size and placement of the logo on interface screens, cough cough.)
So can that external developer fork? Can she simply walk away, taking a copy of the code with her and striking out anew, in the traditional open source way?
Realistically, no. She can only do a restricted, crippled fork. She’ll never be able to get that Zimbra logo off her interface screens, because the license of the software she forked prevents her from doing so. This is discriminatory, and is an artificial restraint on any fork’s ability to attract its own developers. It’s hard for a fork to compete on its own merits if it must constantly refer back to the place from which it forked. It’s like being forced to wear a sign that says “Don’t take me too seriously, the real stuff is over at Zimbra, Inc.”
Now walk back the cat: since there can be no credible threat of a fork in the Zimbra development community, there is no pressure on Zimbra, Inc. to be a good benevolent dictator. Maybe they will be good stewards of the software anyway, or maybe they won’t, but the point is that the open source method depends on that pressure — the threat of a fork is an integral and necessary part of true open source development. Zimbra has eliminated that threat, and therefore is not doing open source. (And this is not just about the benevolent dictatorship model; it would be equally true with any other system of governance. In all open source projects, no matter how decisions are made, the threat of a fork is the ultimate guarantor of every developer’s right to empowered disagreement.)
Note that the OSI’s objection is not to the Zimbra license per se. The objection is just to Zimbra’s calling that license “open source”. They can use any license they want, but they shouldn’t call it open source unless it actually is. Freedom is freedom, and no amount of spin will change that.
So what should we do about this?
The term “open source” isn’t trademarked. Years ago, the OSI tried to register it, but it was apparently too generic. There may still be some legal angle available — perhaps false advertising, based on the generally-understood meaning of “open source”. I don’t know, I am not a lawyer, and the OSI has its own lawyers to advise it on legal strategies.
But there is public opinion. What Danese and Michael are proposing doing is organizing a lot of open source developers (and I mean “open source” according to the traditional definition, the one the OSI and I and most other open source developers I know adhere to) to stand up and, basically, say “All of us agree on what the definition of ‘open source’ is, and we reject as non-open source any license that does not comply with the letter and spirit of the Open Source Definition.” Their hope is that the threat of widespread bad publicity from the developer community may be enough of an incentive to get these companies to either stop calling their licenses open source, or change the licenses to actually be open source. I think this could actually work. Getting the open source blogosphere angry at you is bad for business and worse for recruiting; even just on business grounds it might be enough to persuade the companies to change their tactics.
Sign me up.