🥝GuideKiwi
Free Guide

Understanding GPL License Open Source Software Rights

What Is the GPL License and How Does It Work The GPL, or GNU General Public License, is a legal agreement that describes how software can be used, modified,...

GuideKiwi Editorial Team·

What Is the GPL License and How Does It Work

The GPL, or GNU General Public License, is a legal agreement that describes how software can be used, modified, and shared. Created in 1989 by Richard Stallman and the Free Software Foundation, the GPL has become one of the most widely used open source licenses in the world. As of 2024, millions of software projects use some version of the GPL, making it a foundational part of modern software development.

The GPL operates on a principle called "copyleft." Unlike traditional copyright, which restricts what others can do with software, copyleft uses copyright law to ensure that software remains free. When you use GPL software, you receive freedoms that proprietary software typically does not grant. These freedoms include the right to run the software for any purpose, study how it works, modify it to suit your needs, and share copies with others.

The license comes in different versions. GPLv2, released in 1991, is still used by major projects including the Linux kernel. GPLv3, released in 2007, added protections against certain types of restrictions and patents. There is also the LGPL (Lesser General Public License), which is less restrictive and allows linking with non-GPL software. Each version has specific terms and conditions that users and developers must understand.

The GPL is legally binding. It is enforceable in courts, and there have been real cases where companies were required to comply with GPL terms. The Software Freedom Conservancy and the Free Software Foundation have pursued enforcement actions, though most companies come into compliance when violations are identified. This means GPL terms are not suggestions or guidelines—they are actual legal obligations.

Practical takeaway: Before using any open source software, check which GPL version it uses. The version matters because it affects what you can and cannot do with the software. You can find license information in a file called LICENSE or COPYING in the software's main folder, or on the project's website.

Understanding Your Rights Under GPL

When you receive GPL software, you obtain four fundamental freedoms. Freedom Zero is the right to run the software for any purpose, whether personal, educational, or commercial. This means you can use GPL software in a business context, create products with it, and sell those products. There are no restrictions on what you use the software for or how often you use it.

Freedom One grants you the right to study how the software works and change it to do what you want. To exercise this freedom, you need the source code—the human-readable version of the software. With the source code, programmers can read through the instructions, understand the logic, and make modifications. Most GPL software projects make source code freely available on code repositories like GitHub or GitLab, where anyone can view it.

Freedom Two is the right to share copies of the software with others. You can give the software to friends, colleagues, or the public. You can distribute it on physical media like USB drives or CDs, or share it online. There is no limit to how many copies you can distribute. You can even charge money for the act of distributing copies, though you cannot charge for the software itself as if you owned it exclusively.

Freedom Three allows you to share your modifications. If you change the GPL software, you can share those changes with others. If you distribute modified versions to other people, you must make your modifications available under GPL terms as well. This is the "copyleft" mechanism at work—it ensures improvements to the software benefit everyone and do not become proprietary.

These freedoms come with conditions. The main condition is that if you distribute GPL software, you must provide or make available the source code. You must include or display the GPL license text. You cannot add restrictions that limit what others can do with the software. You must inform recipients of their rights. These conditions exist to protect the freedoms for everyone who uses the software.

Practical takeaway: GPL software is free to use commercially, but understand that any modifications you distribute must also be released as GPL. If you modify GPL software and share it, you cannot keep those improvements proprietary or restrict what others do with them.

GPL Obligations When Using Open Source Software

The GPL creates specific obligations for anyone who uses, modifies, or distributes the software. These obligations are most important when you distribute the software—either in original form or modified. If you only use GPL software internally without sharing it with others outside your organization, the obligations are minimal. However, if you distribute the software to customers, clients, or the public, you must follow GPL rules.

The primary obligation is source code disclosure. When you distribute GPL software, you must make the source code available to recipients. You can do this by including the source code with your distribution, providing a written offer to send the source code upon request, or making it available for download from a website. According to GPLv3, you must keep the source code available for at least three years after your last distribution. For GPLv2, the requirement is less specific but still requires ongoing availability.

You must include the GPL license text with your distribution. This means the LICENSE or COPYING file should be included with any software you share. You should also include copyright notices and indicate what changes you made to the original software. If the original software included a NOTICE file or README documenting contributors, you should preserve that information. These requirements ensure that recipients understand their rights and can identify the original authors.

You cannot add restrictions on top of the GPL. You cannot add license terms that prohibit users from exercising the four freedoms. You cannot use encryption, digital rights management (DRM), or other technical measures to prevent users from modifying the software. If you sell devices that run GPL software, GPLv3 requires you to provide users with the means to modify the software on those devices. This is called the "anti-tivoization" clause and was a significant addition in GPLv3.

You must pass along the same freedoms to everyone who receives the software. If you modify GPL software and distribute it, your modifications must also be GPL. You cannot change a GPL project to a proprietary license. This applies even if your modifications are small or if you combine GPL software with other components.

Practical takeaway: Create a compliance checklist for your organization. When distributing any GPL software, verify that you have included source code or a source code offer, included the GPL license text, documented any modifications, preserved copyright and contributor information, and not added restrictions. Document your compliance efforts.

GPL Versions and Their Differences

GPLv2 was the dominant GPL version for over fifteen years. Released in 1991, it addressed patent issues and clarified the license's terms. GPLv2 remains widely used today—the Linux kernel still uses it, as do many other major projects. The license is straightforward and has extensive legal interpretation from real court cases, making it predictable. However, GPLv2 has some limitations by modern standards. It does not address patents comprehensively, and it does not cover some practices that emerged in the 2000s.

GPLv3 was released in 2007 after three years of public discussion and input. It addressed several concerns that had emerged. First, it added stronger patent protections. If a company contributes code to a GPL project and that code involves patents they own, GPLv3 requires them to grant patent rights to all users. This prevents a company from contributing code and then suing others for patent infringement. Second, GPLv3 added the anti-tivoization clause. This prevents manufacturers from using encryption to prevent users from running modified versions on their devices. If you sell a device with GPL software, GPLv3 requires you to provide tools or information that allow users to run their own modifications.

GPLv3 also clarified the relationship between GPL software and DRM systems. If you combine GPL software with DRM protections, GPLv3 requires you to provide users with the keys or information needed to bypass the DRM for that specific device. This applies to things like "secure boot" systems that prevent unsigned code from running. Third, GPLv3 improved language around international applicability, explicitly addressing additional patent rights and international law.

The LGPL (Lesser General Public License) is a more permissive variant. LGPL software can be linked with non-GPL software in certain ways. If you use an LGPL library as a component in your program, you can use a different license for the rest of your program. This makes LGPL suitable for libraries that might be used in many different types of projects. However, you must still distribute the LGPL library's source code if you distribute your program. LGPL comes in v2 and v

🥝

More guides on the way

Browse our full collection of free guides on topics that matter.

Browse All Guides →