The Complexities of Licensing
By Andy Ormsby
30 May 2011
Category:
Business Insights
Open source software licences are subtle beasts, which seek to grant rights to redistribute, modify or perhaps even sell software, while at the same time imposing certain restrictions on those same activities. Each licence takes a different view of what can and cannot be done, so a project which combines multiple different open source software components is bound to take a nuanced approach to licensing.
| But this is got by casting Pearl to Hoggs; That bawle for freedom in their senceless mood, And still revolt when truth would set them free. Licence they mean when they cry libertie; For who loves that, must first be wise and good; But from that mark how far they roave we see For all this wast of wealth, and loss of blood. – Milton, Sonnet XII |
On the evening that we released our public beta and open sourced our core code, Frank Denis (@jedisct1) tweeted “Castle licensed under GPLv2, support libraries under MIT, patches to Cassandra under Apache. What a mess.”
He’s right. It is a mess. Sorry about that.
We’re big fans of open source software and have made use of a wide variety of it while building the Acunu Storage Platform. We have always planned to open source as much of our work as possible with the aim of building an active developer community. Unfortunately, making everything available under a single permissive licence appears to be impossible.
Castle, our in-kernel key-value store, is implemented as a Linux kernel module. Linux is itself licensed under the GNU GPL v2. We link against GPL symbols and our current understanding of the GPL is that we should therefore make our code GPL — so that’s what we’ve done.
Elsewhere, we have modified Apache Cassandra so that it works with Castle instead of the regular filesystem. We want people to be able to work with our modified version of Cassandra, and the best way to ensure that our patches can be easily incorporated back into the Apache Cassandra project is to distribute them under the same Apache licence as the original software.
That leaves our support libraries, which you’ll need to link against if you want to use Castle from your own application. We chose the MIT licence for the libraries because it’s very permissive, and allows you to link to our stuff without having to GPL your application. If you want to GPL your application, that’s fine but we don’t want to force it on you.
These interpretations of the various licence terms are debatable of course, and we’re not lawyers, but we think this is the best way of dealing with a complex situation. We hope you agree.