This blog entry has been burning a hole in my pocket for a few weeks, but it’s on the more esoteric topic of open source licensing, so those looking for exciting new tech ought to instead check our Ross’ blog on ALE (Ajax Linking & Embedding).
As most of probably already know, Zimbra chose the Mozilla Public License (MPL) for our open source licensing. One of the questions we are most asked by our friends at other open source efforts is why we chose the MPL. In the next breath they usually ask why we didn’t choose MPL’s even more popular cousin, the GNU General Public License (GPL), which we also considered very closely.
Our rationale was first and foremost to accommodate as broad an array of third-party value-added extensions as possible. For example, the Zimbra Collaboration Suite (ZCS) architecture supports “mashing up” arbitrary Internet (Google Maps, Yahoo! Travel, Saleforce.com, etc.) and intranet (SAP, Oracle, SugarCRM, etc.) applications via Zimlets. Zimlets include client and/or server software components, both of which run within the same address space as Zimbra itself, and so would presumably have triggered the GPL provision that closely coupled works must also be licensed under the GPL—that is, if Zimbra were licensed under the GPL, then our community members, customers, and partners would be required to choose GPL for their Zimlet licensing model as well. While we are thrilled to have the open source community contributing Zimlets licensed under the GPL, we are frankly equally thrilled to have Zimlets shared under the MPL, the Apache License, a Creative Commons Public License, or under whichever choice of license the Zimlet author deems best.
Zimbra is, of course, a “collective” open source effort, since ZCS itself includes numerous independent open source projects licensed under a variety of different open source licenses, including MPL, GPL, Apache, and so on. How did Zimbra manage to integrate open source projects licensed under so many different licenses? We at Zimbra strive, of course, to choose OSS technologies based on technical merit. However, at the same time, we are committed to honoring the licensing wishes and terms of those technologies’ communities in the same way that we expect them to honor ours. Indeed, we created the Zimbra Collective License to allow us to assemble Zimbra from best of breed, but differently licensed OSS components while preserving the licensing terms of each of those open source projects. Nevertheless, please let us know if you think we are not acting in good faith regarding how you would like to see your open source software used by projects like Zimbra.
The GPL components shipped alongside of Zimbra today include MySQL, MySQL Connector/J, Swatch, amavisd-new, ClamAV, and rrdtool/mrtg. In each case, these projects run standalone (i.e., in their own operating system process), or else in the case of the MySQL Connector/J, Zimbra’s use is covered by the FLOSS License Exception embraced by MySQL. (We also use the JTNEF project, but do so under a commercial license rather than the GPL.)
For open source developers and entrepreneurs that may be listening, I’m afraid my recommendation is that you ought to dig into more of the details of open source licensing so that you can make informed decisions, at least for new projects and new ventures. In particular, the healthy on-going debate over the GPL 3.0 draft may warrant your participation, since the revisions could, for example, impact future aggregations of open source efforts.