GNU General Public License: GPLv3 explained
A GPL license refers to the GNU’s General Public License widely used for open source software, first written by Richard Stallman in 1989. Developers and organizations use it to prevent software from becoming proprietary. It unified similar licenses available at the time but primarily is an implementation of the Free Software Foundation’s (FSF) philosophy and Stallman’s copyleft concept of software development and distribution.
What is a GPL License?
Under a GPL License (or just GPL), a particular user can freely use, modify, or redistribute software without any restrictions. A popular example of software that uses GPL is WordPress, meaning anyone can use, modify, or extend the source code as desired. In the context of the WordPress project, GPL is equal to the software’s bill of rights.
It grants open-source permissions for users including:
- The right to download and run the software freely
- The right to make changes to the software as desired
- The right to redistribute copies of the software
- The right to modify and distribute copies of new versions of the software
GPL achieves its goals by using the concept of copyleft. An obvious spin on copyright, copyleft uses copyright laws to enforce the open-source status of software. By copyrighting freedom into a software license, developers can ensure none of their software becomes proprietary when it’s modified or extended by another user.
What is the difference between GPLv2 and GPLv3?
GPLv3 still maintains the same primary intent as GPLv2 but has stricter copyleft protections. Language in GPLv3 makes it much more comprehensive to address technical and legal changes, including international license exchange clauses.
The four main new clauses included in GPLv3 are:
- Compatibility regulations – License compatibility refers to situations where two separate components licensed under different conditions combine to form a new work. GPLv3 makes it easier to manage compatible licenses, specifically addressing code under the Apache V2.0 License.
- Digital rights management – New clauses attempt to restrict GPL software changes at will as users appealed to legal regulations (like DMCA) for technical protective measures.
- Explicit patent licensing – A new patent clause protects users from only some licensees benefiting from patent rights, requiring them to ensure every user enjoys the same advantages or that no one can profit from the software.
- Source code exemption for ASP – Clarifies the need to disclose source code in an ASP implementation of GPL if users do not distribute a copy to clients. If copyleft should apply to ASP use, the Affero General Public License (AGPLv3) should apply.
What are the GPLv3 License terms and conditions?
If a developer uses any GPL component in their software, the entire work falls under GPL’s terms and conditions. GPLv3 provides specific terms for combined works, which may apply when other source code, components, or libraries accompany the GPL software.
Specific terms and conditions that apply to GPLv3 software are:
- Permissions – Rights granted for the commercial use, distribution, modification, patent use, and private use of the software.
- Conditions – Requirements to disclose the source code, display the license and copyright notices, state all changes, and name the libraries under the same license.
- Limitations – Include liability and warranty information in the work.
The complete license agreement clearly defines when every condition applies and when developers can waive that clause. It also has definitions to help users understand the boundaries of components used in larger works, including how to evaluate what clause to follow when a user is unsure.
How do I use GPLv3?
To release software under GPL licenses, users need to obtain a copyright disclaimer from any superseding entity like an employer or school. Once the disclaimer is in place, each file should receive the proper copyright notices while clearly defining what versions users can use.
Finally, add a COPYING file containing the complete text of the GNU GPL terms and conditions, while adding license notices and a statement of permission in each file. Adding the copyright notice display at startup is optional.
Can I use GPLv3 in commercial software?
Developers should keep in mind that GPL intends to prevent any additional restrictions on the software. When using any portion of GPLed software, the modified version retains the same rights. As such, the user should release the updated source to subsequent users (only if the user releases the modified software to the public). Although it’s possible to sell GPLed software to another user, it’s not permissible to limit that user’s rights to modify and distribute it.
Integrate license compliance into your workflows
Identify, monitor and manage open source license usage across your projects
Other Open Source Licenses
Other open-source licenses include the Massachusetts Institute of Technology’s MIT license and the three-clause Berkeley Software Distribution BSD license. GPL’s primary intent is to foster collaboration and continual improvement from a community of developers. Any software previously licensed under GPLv3 will remain free and cannot restrict competition. For situations where freedom should be limited (also known as weak copyleft licensing), the Lesser General Public License (LPGL) is better suited.
With LGPL, users can keep source code private, as it only requires the release of the modifications to the original free library. It allows subsequent users to replace only the GPLed portions of the software in the future, without having any option to change the proprietary portions of the software.
Seamlessly manage GPLed components with Snyk
With the GPL license explained, why not read more about Snyk’s developer-first license compliance management tool. It aims to help developers maintain their fast-paced build and release cycles while addressing license issues early in the process.
Or book a Demo with one of our experts to learn more about Snyk License Compliance Management solution.