Nutaq ADP Software Goes Open Source

Nutaq is proud to announce that, starting with the next release of the Advanced Development Platform (ADP), all of Nutaq's ADP software will be dual-licensed to include the GNU General Public License (GPL). To better understand why the dual license, let's start by reviewing the concept of open source and the impact of the different available licensing options.

By "open source" or "free software", we generally mean a piece of software for which the source code is available and for which the right to use, modify and redistribute is granted to its recipients

[1]. Open source and free software are two different movements that differ on some basic principles. They are quite similar in their applications, however, and share a common enemy: "proprietary software" [2].

There are hundreds of licenses used by the open-source community but only a few are fully compliant with the definition of open source as used by the Open Source Initiative (OSI). A list of compliant licenses is available on the OSI website [3]. The most common license by far is the GPL. The Linux kernel is likely the most widely known example of software that uses this license (GPLv2). The GPL license, originally written by Richard Stallman of the Free Software Foundation (FSF), is a "copyleft" license, which means that all derived works can only be distributed under the same license terms.

This is very important to understand. It means that if you use any library or piece of code under the GPL license in your application, your entire application must also be open source, even if the GPL part represents only a small portion. It also means that when you distribute your application to others, you are obligated to make all of the source code available to them. They are then free to use, modify and/or redistribute the source code to anyone, and can do so for free or for a charge.

It's important to note here that this concept of free software has nothing to do with its price. Free software can be given away for free or sold at any price. "Free" in this context means freedom: the freedom to use, modify and redistribute.

While this freedom might be acceptable for researchers and the open-source community, for companies with thousands or millions of dollars worth of intellectual property, it is likely unconceivable to use such a license in the development of their products. It is worth mentioning that the requirement to make the source code available only applies once you have distributed the derived software to someone else (and only for that person). As long as you use the software privately, you are not required to give anything to anyone. Therefore, even companies that develop proprietary software can use GPL code for prototyping as long as they don't release it to anyone.

Another important consideration is that along with the right to use, modify and redistribute your code, you automatically give the software recipient the right to practice any of the patents implemented within that software. You will not be able to charge royalties or request non-disclosure agreements (NDAs).

The GPL is only one of many open-source licenses but it is the one that best complies with the essence of open source and is the most commonly used. Other popular licenses include the LGPL license, the MIT license, and the BSD 2-Clause and 3-Clause licenses. When incorporating any open source software into your project, it's very important to validate the compatibility of the licenses with each other as many are incompatible. The new release of the GPL licence, GPLv3, improves compatibility with the other existing licenses.

So, why are we dual-licensing our software?

The first reason is that we wanted to keep the same flexibility as before for users with no interest in developing open-source applications. They own their applications and they want to keep it that way. Also, the EAPI is used with commercial proprietary applications like MathWorks; products that are incompatible with the GPL by definition.

On the other hand, more and more people within the open-source community are using our platform. Our product's proprietary interface was making it impossible for them to develop and distribute their own GPL application. We had to be GPL-compatible for them and also to permit integration with exceptional tools like GNU Radio (GPLv3), an excellent example of what can be achieved with open-source software. For the same reason that a GPL-only EAPI would be incompatible with proprietary applications, the previous proprietary EAPI interface was incompatible with open source applications.

The following figure shows the licenses used by the different Nutaq ADP software components and their relation to each other.

ADP Software License Map

Finally, I encourage you to visit the multiples web site dedicated to the Open Source for more information about the different licenses. This blog only scratch the surface of the subject. Understanding your rights and obligations when you use opens source software can be quite complicated and it get worst when you start mixing libraries covered by different licenses together.