GPL
GNU Public License
GPL Background
- Born in 1989
- Written by Richard Stallman (need I say more?)
- Currently on its 3rd major revision
- Spawned a collection of licenses like AGPL (Affero), LGPL (Lesser/library), and GFDL (free documentation)
- License text has been vetted by lawyers
- Courts around the world have upheld the license provisions
- Strongly opinionated and controversial, though popular license choice
GPL Ideology
- The GPL is strongly opinionated that all software should be free, and all derivatives of free software need to remain that way
- GPL is sometimes known as a “viral” license, as more often than not, things built with GPL code need to be placed under the GPL as well
- Mixing GPL code with other licenses is challenging, as the GPL does not allow you to place additional restrictions on a recipient
- What constitutes a “derivative work” is an ongoing dispute
- With version 3 and the advent of DRM and code-signing, the GPL reinforces that not just the code, but the means of building it to a working product must be open
Upgrades
- By default, the GPL allows use of licensed work under the terms of “this or any later version”
- Authors may omit this clause, as the Linux kernel notably does
- While some GPL changes are language and technical refinements, things like the DRM clauses of v3 are seen as excessive and deal-breakers
- If you allow usage of later versions, you’ve placed a good bit of control in the hands of the Free Software Foundation
Variants
- Lesser GPL
- Name is a reminder that your freedoms are not fully protected
- Frequently used for open-source libraries, to allow them to be used unmodified in other (proprietary) applications
- Affero GPL
- Designed to close the gap where modified GPL code is being used to provide a network/web service, but code would not otherwise be required to be published, as the binary is never shipped by the author
- Free Documentation License (GFDL)
- Similar to Creative Commons, in allowing redistribution of documents, while preserving openness of derivates and attribution for the authors
Summary
- The GPL is a highly opinionated license that places the freedom of modifying and redistributing code above most other considerations
- It is a very popular license, and its usage has heavily impacted the trajectory of the open-source movement
- You MUST fully understand the terms and conditions of the GPL before using it on your own code, or incorporating GPL code into your projects
- Corporate legal departments frequently ban the use of GPL code, because of the obligations it places on the company