Almost as much as anything else, people have asked me about the copyright licensing on bildr.
I want to take some time and talk about why we made the licensing choices we did, and assure you we did not pick them randomly out of a hat.
Unfortunately, copyright is difficult, much more than it needs to be, and even the open source license alone is enough to drive you mad. So I did spend a good deal of time thinking this over, and over, and over, and what I came up with managed to shock some people.
For content on the wiki, it was simple. Creative Commons has the easiest to understand licenses and are the most widely used for text content. We chose the same one used by wikipedia, so we could use their content when needed. It is a share alike attribution license, meaning if you give attribution and share the content under the same license, you can post it verbatim on your site if you wish.
For software, or code, it was much more complex. We originally went with the GPL license, and it pleased most people to hear that. But then I read it, and I knew it had to change. To understand why, I first want to detail some of the things that make code on bildr potentially different then your run of the mill open-source project or site.
Smaller than most:
The code bits on bildr are small. They are not full projects or software pieces; they are almost feature-less, and often are just the minimum needed to make something work.
Designed to be extended:
The offered code is usually the bare minimum needed to get a sensor, or other component, up, working, and doing what it is supposed to do. The code, on its own, is not complete. While a user could just load up the supplied code and call it a day, the end result would be lackluster, as it would probably just print out the reading. So, the code is intended as a foundation to a user’s project, and may, in the end, end up being less than 10%, or 5%, of the complete code. The code’s only purpose is to save you time getting over that first hurdle.
Has no single author:
Because the code operates like a wiki, more often than not there won’t be a single author. The open source licenses all take this into account, so this is not, on its own, a problem. Later on, I will show you the issue with one of the most frequent suggestions I received.
The GPL license that we originally intended to use is what is known as a copy-left license. This means that it cannot be transformed into another license, must always be GPL, and cannot live side-by-side with non-GPL code. So the legal use of one line of GPL code in a project mandates that the entire project be GPL. There is the LGPL license that allows its use in a non-GPL/LGPL project, but this does not work for single file projects, only files or libraries that are included in a project.
So what’s wrong with requiring GPL?
Nothing really. But bildr is about helping get their ideas done, not helping them get their ideas done if they happen to be using the GPL license for their project. And, what if they already started their project under a different license? Do we tell them they are out of luck?
Why not just let users choose the license?
This is actually the number one suggestion as a remedy to the problem. However, most licenses do not allow you to change them once they have been set, and doing so would require the agreement of all authors of that code. So you would always be at the mercy of the first person to write a single line of code for that sensor. That person, on creation, would define the license, and it would forever be that license. What if they didn’t know much about licenses and just picked one on a whim? Again, because these are small, the person who starts the code may never come back to it. These are not large projects where the founder has put a lot of time and care into choosing a license and will continue to contribute to the project, over time, as it gains more features and bug fixes.
Introducing the MIT license
After careful deliberation and research, bildr’s code will be available under the MIT license. The MIT license (wikipedia page) covers just the copied code. So you can include it in any larger project without changing the license of that project. It can be re-licensed if significant changes have been made. Heck, if you modify it enough, you can even leave the license off of it. It can even be used in commercial projects without problems. The only requirement is that if you use or repost it, and do not significantly modify it, that portion of the code stays open-source under the MIT license and requires that a copy of the license follow it. Oh… I almost forgot. IT’S GPL COMPATIBLE! You can use it in your GPL project. Just stick it on there.
This solves a lot of issues we had. But before you get all wound up about how the license is bad and you won’t contribute to a code base based on it, go back and look over the reasoning. I hope you will see that it really is the best choice for the community.