The Open Source Glass Cockpit Project

Relicensing: How and why it happened:

Introduction

OpenGC was distributed under the GNU General Public License from August 2001 - October 2003. Because this was something of a controversial issue at the time (it has since been resolved), I though it would be useful to discuss why the license was changed, and how I'm ensuring that copyrights are preserved during the relicensing process.

The motivation for open source

I've worked in academic research since 1997 and joined the Insight Toolkit project in 2001, after having worked with the VTK toolkit on an extensive basis since 1998. Since then I have become firmly convinced that there is substantial value to open source development, including bug catching, cross-platform support, and feature development beyond what a lone wolf developer can hope to accomplish. As a student (first undergraduate and now graduate) I have greatly benefited from seeing the work of more experienced developers, and I enjoy sharing what I've learned with others.

I initially chose the GPL license because of a misimpression that it was the most liberal license available. As many developers know, this is rather far from the truth. The GPL is a political statement in addition to a software license, and one which I have become unsatisfied with as I've become more experience with development. The reasons for this are discussed below.

Why closed source?

Since, I love open source so much, what's wrong with the GPL? Well, there are several cases that came up where the "must release source to derivative works" clause of the GPL causes problems. In an email to the opengc-devel list, I described the two following scenarios:

"1) Closed source development creates a viable business model that would allow development of gauges for which there is a non-trivial development & distribution cost. For instance, gauges based around commercial terrain and map databases (for which there are no freeware alternatives).

2) The homebuilt aircraft/EGyro component of OpenGC developed this summer will need to be accompanied by physical hardware development, which will require purchase of hardware in the multi thousands of dollars range. I am unable to float the cost of this myself with no expectation of return (for obvious reasons), which would essentially block development of what I think is a potentially very valuable addition to general aviation."

These problems arise because of the impossibility of intermingling GPL'd and non-GPL'd code in a close-sourced commercial product. As the primary (though certainly not the only) developer of OpenGC, this was in effect making it impossible for me to close-source ANY of the project, even if a closed-source model was the only way to develop a certain hardware interface (e.g. I sign a NDA with Company X to develop a data source for their hardware, but this is in conflict with the legal requirement to release the source under the GPL).

So what's the solution

As I've already said, I think open source is GOOD idea. But, picking the right license is important. There a numerous licenses out there, and fortunately some of them adopt a more permissive stance towards commercial or other close-sourced development. Among these, the BSD license has been used quite effectively by Kitware, Inc. to release their VTK toolkit as open source while still allowing them to pursue a separate close-sourced path for their commercial product (VolView).

I want to be very clear that the license terms are not meant to give me "ownership" of your code. While it's true that the code you submit to OpenGC is being copyrighted by me (due to the header included on all code files) this does not give me ownership of your code as it may be used elsewhere. In addition, the license terms allow essentially any use of the code (commercially or otherwise) by any party subject to the restriction that the legal disclaimers are preserved.

As a final reassurance, even if I decided to become evil in the future and completely shut down the OpenGC project, all of the source code that exists under current open source licenses is still open source. So, feel free to contribute code to the project without worrying that I'm going to hijack it for nefarious deeds.