The GNU GPL, LGPL and AGPL obligations are the conditions that the GNU General Public License family attaches to software once it is passed to other people. The licenses place no conditions on running a program: GPLv3 “explicitly affirms your unlimited permission to run the unmodified Program”, and covered works that are not conveyed may be made, run and propagated “without conditions” while the license remains in force.[1] The obligations described here apply when an organization conveys copies, and under the Affero GPL also when it lets remote users interact with a modified version.[1][5]
Editions
| License | Main additional condition compared with the one above |
|---|---|
| GPL-2.0 | Source with binaries or a three-year written offer; automatic termination on violation[2] |
| GPL-3.0 | Installation Information for User Products; explicit patent license; cure period on termination[1] |
| LGPL-2.1 / LGPL-3.0 | Fewer conditions than the GPL: works that link to the library may use other terms if relinking and modification remain possible[3][4] |
| AGPL-3.0 | GPLv3 plus a source offer to users interacting with a modified version over a network[5] |
The FSF’s GPL FAQ explains how the FSF reads these texts. It is guidance, not part of the licenses.[6]
Metrics
None. The licenses do not define users, devices, cores or instances, and a distributor may not impose “a license fee, royalty, or other charge for exercise of rights granted under this License”.[1]
Counting / floors
What counts as conveying
GPLv3 defines to “convey” as “any kind of propagation that enables other parties to make or receive copies”, and states that mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.[1] The FSF considers copying within one organization not to be distribution. Transfers to other organizations or individuals, including “providing copies to contractors for use off-site”, are distribution.[6] Whether a transfer to a majority-owned subsidiary is distribution depends on the copyright law of the jurisdiction.[6] See Internal use and Providing copies to contractors.
Source code
- GPL-2.0 §3. Object code may be distributed only if accompanied by the complete machine-readable source, or by a written offer “valid for at least three years” to give any third party the source for no more than the cost of physical distribution. Passing on a received offer is allowed only for noncommercial distribution.[2] See the GPL-2.0 rule.
- GPL-3.0 §6. Object code must be conveyed with its Corresponding Source by one of five methods: on a durable physical medium with a physical product, by a written offer valid for at least three years and as long as spare parts or support are offered for the product model, by passing on an offer occasionally and noncommercially, by equivalent access from the same place at no further charge, or by peer-to-peer transmission.[1] See the GPL-3.0 rule.
“Corresponding Source” means all the source code needed to generate, install and run the object code and to modify the work, including scripts. It excludes System Libraries and general-purpose tools used unmodified.[1] According to the FSF, distributing binaries obtained without source still requires distributing the complete corresponding source.[6]
Notices and modified versions
A distributor must keep intact the copyright notices, the notices that the license applies and the warranty disclaimers, and must give each recipient a copy of the license.[1] A modified version must carry “prominent notices stating that you modified it, and giving a relevant date”, and must be licensed “as a whole” under the GPL to anyone who comes into possession of a copy.[1] GPLv2 states the same copyleft condition in section 2(b).[2] See the notices rule and Modified versions.
Linking and aggregation
The FSF’s position is that linking a GPL work with other modules, statically or dynamically, makes a combined work, and “the terms and conditions of the GNU General Public License cover the whole combination”.[6] By contrast, including a covered work in an aggregate of separate programs on one medium “does not cause this License to apply to the other parts of the aggregate”.[1] The FSF says the line between two programs and one program with two parts is ultimately for judges to decide. In its view, both the mechanism of communication and what information is exchanged are relevant.[6] See Linking and Aggregation.
LGPL
LGPLv3 permits conveying a Combined Work “under terms of your choice” if those terms do not restrict modification of the library portions and reverse engineering for debugging such modifications, and if the required notices and relinking means are provided.[3] LGPLv2.1 section 6 contains the equivalent permission.[4] The FSF’s reading covers all LGPL versions. With static linking, the application must be provided in object form so the user can relink it with a modified library. With dynamic linking to a library already present on the user’s computer, the library’s source need not be conveyed. If the distributor ships the library itself, its source must be provided.[6] SPDX records the version choice separately, for example LGPL-2.1-or-later.[9] See LGPL linking.
Virtualization & partitioning
The licenses do not refer to virtualization. Delivering a virtual machine or container image that contains GPL software to another party conveys copies of that software, because it “enables other parties to make or receive copies”.[1]
Cloud / BYOL
Under the GPL and LGPL, providing a service over a network is not conveying.[1] The FSF confirms that a company running a modified GPL program on a web site “does not have to release the modified sources”, but notes that JavaScript and other programs sent to visitors’ browsers are distributed.[6] AGPLv3 section 13 requires a modified version to “prominently offer all users interacting with it remotely through a computer network” the Corresponding Source from a network server at no charge.[5] The FSF says the test is whether there is a reasonable expectation that a person will interact with the program remotely, whether the program is called a client or a server.[6] The Open Source Initiative approved AGPLv3 on 2008-03-03.[8] See Network-served AGPL software.
Programs
There are no commercial programs attached to these licenses. Distributors may charge any price for copies and may sell support or warranty protection.[1] FSF offerings are listed in GNU Project licensing.
Devices, patents and termination
Installation Information (tivoization)
GPLv3 section 6 requires that object code conveyed in or for a “User Product”, meaning consumer goods or products for incorporation into a dwelling, be accompanied by “Installation Information”. This is the methods, procedures and “authorization keys” needed to install and run modified versions. The requirement does not apply where no one retains the ability to install modified code on the product.[1] The FSF describes devices that run GPL software but block modified versions as “tivoization”, and GPLv2 does not use the term Installation Information.[6][7] See Installation Information.
Patents
Under GPLv3 section 11, each contributor grants a “non-exclusive, worldwide, royalty-free patent license” under its essential patent claims. Section 10 bars a licensee from starting patent litigation claiming that making, using or selling the program infringes.[1] The FSF’s quick guide presents these terms as a response to patent deals that protect only some users.[7] See Patent license.
Fees and further restrictions
No further restrictions may be imposed on recipients’ rights.[1] The FSF states that using GPL software on a device that stops operating unless the customer keeps paying a subscription is prohibited, because it limits the user’s ability to run the program.[6] See Copies may be sold.
Termination
Under GPLv2, any copying, modification or distribution not permitted by the license “is void, and will automatically terminate your rights”.[2] GPLv3 reinstates rights provisionally when the violation stops, and permanently if the copyright holder does not give notice within 60 days. A first violation cured within 30 days of notice is also reinstated permanently.[1] See Termination.
Additional terms
GPLv3 section 7 lists the only additional terms a licensor may add, including “declining to grant rights under trademark law” for some names and marks.[1] See the trademark rule.
Out of scope
This article does not cover the GNU Free Documentation License, the GCC Runtime Library Exception or glibc-specific notices, which are described in GNU toolchain and C library licensing. It also does not cover license compatibility with non-GNU licenses or court decisions on the GPL.