Many developers have the misconception that open source software is free for them to do with as they wish. But the reality is that any form of intellectual property belongs to its creator, who controls the transfer of usage rights to others. So if you're using open source building blocks when designing something for sale, you have to know about its associated license.
A creator's ownership and right to control usage of their creation is a part of most legal systems. This is as true for the writer of software as it is for the writer of a novel. Such usage rights are usually articulated in the form of a license. The only difference between open source code and purchased code lies in the terms of the license agreements under which code was made available for use. So when you use open source code, you are still agreeing to abide by a usage license of one kind or another.
Organizations such as the Free Software Foundation and the Open Source Initiative have defined what “free software” (as in free speech, not free lunch) means in terms of such”open source” licenses. While free software must include the source code, open source code is not always free.
And there lies the rub. There are many different licenses in use within the open source community. This can create a great deal of confusion for the unwary. If your design combines open source elements with different licenses, for instance, you can find yourself in a situation where it is not possible to obey all the licenses' requirements. Some code licenses, for instance, say that any derivative product you create must in turn be licensed to your customers using exactly the same license as that of the code you used. But if your product combines two open source elements that have different licenses, yet with both licenses having that kind of “exactly the same” requirement, you face a no-win situation. You cannot create a license that is exactly the same as both of two different licenses.
Even if you are the sole creator of everything in your product but you are going to make it open source, you will need to consider license issues before you move forward to make sure the terms work for you. There are often several functionally equivalent licensing options available for you to choose from, but with nearly 100 variations on open source licenses in use today, knowing exactly what you're agreeing to (choosing the right one for your product) can be a big challenge.
Some of the more popular open source licenses include:
- Apache License, 2.0 (Apache-2.0)
- BSD 3-Clause “New” or “Revised” license (BSD-3-Clause)
- BSD 3-Clause “Simplified” or “FreeBSD” license (BSD-2-Clause)
- GNU General Public License (GPL)
- GNU Library or “Lesser” General Public License (LGPL)
- MIT license (MIT)
- Mozilla Public License 2.0 (MPL-2.0)
- Common Development and Distribution License (CDDL-1.0)
- Eclipse Public License (EPL-1.0)
- Creative Commons Licenses
Join over 2,000 technical professionals and embedded systems hardware, software, and firmware developers at ESC Boston May 6-7, 2015, and learn about the latest techniques and tips for reducing time, cost, and complexity in the development process.
Passes for the ESC Boston 2015 Technical Conference are available at the conference's official site, with discounted advance pricing until May 1, 2015. Make sure to follow updates about ESC Boston's other talks, programs, and announcements via the Destination ESC blog on Embedded.com and social media accounts Twitter, Facebook, LinkedIn, and Google+.
The Embedded Systems Conference, EE Times, and Embedded.com are owned by UBM Canon.