Back in 2007, when we made the decision to open source our CMS, we were faced with a decision: which open source license should we release it under? Although at first glance it may seem like a bit of tedious legal administration, the choice of license cuts to the heart of the goals of an open source project.
There are many other licenses to choose from, such as GPL, BSD, MIT and Apache. MIT and BSD are very similar. The Apache License has a similar permissive intent, but is more explicit, and as such it is a lengthier, more complex document. We didn't spend too much time choosing between very similar licenses and instead quickly narrowed our choice down to two alternatives: BSD and GPL.
BSD is short for Berkeley Software Distribution and is the name of a Unix derivative. The BSD license is so named because it was originally used as the license for this software. GPL is short for GNU Public License, and was the license used by the GNU project, principally for the release of GNU/Linux. GNU/Linux is the operating system commonly known as Linux, the name GNU/Linux refers to the fact that, strictly speaking, Linux is just the kernel, and the GNU project developed many of the tools that turn that kernel into a usable operating system.
For us, the critical difference between the two licenses was this:
- Modifications to a GPL-licensed project must be contributed back to the open source product, and cannot be released solely under a non-GPL license.
- Modifications to a BSD-licensed project can be retained, and potentially sold commercially, by their creators. Very few restrictions are placed on the so-called "derivative works".
GPL presents an opportunity for commercial entities looking to release open source software, because the GPL won't be appropriate for some people and/or organisations. The GPL also prevents other organisations from creating commercial variants of SilverStripe, reserving that right for the copyright holder.
At the time we chose a license, SilverStripe already existed as a proprietary product, and GPL initially seemed like a safer choice. However, ultimately we found GPL was out of step with our goals.
Dual-licensing may seem appealing as an open source business model, until you work through the details of what this means for contributions. If third party contributors retain copyright of their changes, then those contributions can't be included with any dual-licensed version of the software. This means you have to maintain two separate forks of the software. If, instead, we asked contributors to assign copyright to SilverStripe for their contributions, they are effectively losing significant rights that they have in those changes, because only the copyright holder has rights to release the software under other licenses. Sure, you could have contributor agreements that deal with this, but it makes contribution a complex legal issue, and will ultimately drive a wedge between the needs of the developer community and the needs of the commercial entity behind the software. To us, dual-licensing was a non-starter.
The second benefit we initially saw in GPL was that it protected us from other commercial entities that might create their own commercial variants. In the end, we decided that this wasn't a major issue. Yes, software takes effort to build and it is very useful, but ultimately, the lines of code that are protected by copyright law are not the most valuable asset of our business. Much more valuable are the people that know how to keep innovating, and the reputation we have for doing so. As such, although being protected from competition by copyright law would be nice, it isn't nearly as important as our team and reputation. We decided that this was a risk we could take.
There is a final benefit of GPL being that it tends to force software to become open source rather than proprietary. For some, this is the point: all software should be open source (also called "free software"). Although we at SilverStripe think that open source software is a great thing, and that it is definitely possible to build sucessful companies around open source software, we believe that "all software should be free" is too simplistic - it requires a one-size-fits-all view of the world that we don't share. So this wasn't a benefit of the GPL that we found compelling.
Which brings us to the BSD. We believe that BSD is the open source license that best recognises that open source software will sometimes be worked on as a commnuity project, and sometimes be commercialised. We have released SilverStripe open source, but we also run a business that aims to make money. All that the BSD license really says is that we are okay with other people doing the same. We think that anything less would be unfair.