There is more than one GPL. What are your obligations?
Posted by Lacey Thoms on Fri, May 20, 2011 @ 10:50 AM
With so many different open source licenses
available, understanding and complying with them can be daunting task. The Open Source Initiative has an approved list of close to 70 open source licenses. Protecode has catalogued more than 3000 license variations so far. Open source licensing management requires an understanding of the obligations associated with a variety of licenses within a software portfolio.
One license that is often in the news is the GNU Public License (GPL). GPL refers to a family of licenses that, depending on the version and the type, requires some level of disclosure of any code that includes GPL in a software product. This is an important factor when deciding whether or not to use GPL governed code or projects.
The most important aspect is that you can charge for a product that uses open source GPL code. However, the requirement to make the source code available in certain conditions means you need to be more creative in charging for your product. So when do you need to make your source code available to public?
GPL v2 (version 2)
This is the most common version of GPL. The following terms apply if you use GPL v2 code in your product and you distribute your product:
- If you modify the GPL code, you need to indicate so. Include the modification date, and make the modified source code available.
- If your end-application has a User Interface (UI), you need to display an appropriate legal notice.
- Your end-product is automatically licensed under GPL v2.
These terms only apply if your code is derived from GPL code. Simply distributing some GPL package with your product on the same CD does not mean that those license terms apply. If you do not distribute the product then there are no obligations.
GPL v3 (version 3)
GPL v3 clarifies a number of loose definitions in the v2 license and allows certain flexibility in correcting licensing violations. GPL v3 also ensures that you do not use such code in a DRM (Digital Rights Management) product – releasing the source code for such product would defeat the purpose. It also regulates usage in cases where software is covered by certain patents.
Affero GNU Public License
This is an extension of GPL v3 that mostly handles the cases when your product using GPL is not distributed, but rather used in a server to provide services to other users. Under this provision, the complete source code must be made available to any user of the server that has AGPL-licensed work (e.g. the web application that uses AGPL code).
So
If you are not distributing your software, don’t worry about GPL compliance. If your software sits in a server, then check if you have the Affero license. If you do, make sure you understand and comply with the license terms. If you are distributing software that incorporates GPL, then you are most likely obliged to release your product code. Read the applicable GPL license terms to see if you have to. There are finer details in these licenses that you should make yourself familiar with.
Read more about the 6 most popular open source licenses and their obligations.