
The GNU logo
The 'GNU General Public License' ('GNU GPL' or simply 'GPL') is a widely used
free software license, originally written by
Richard Stallman for the
GNU project. It is the license used by the
Linux kernel. The GPL is the most popular and well known example of the type of strong
copyleft license that requires derived works to be available under the same copyleft. Under this philosophy, the GPL is said to grant the recipients of a
computer program the rights of the
free software definition and uses copyleft to ensure the freedoms are preserved, even when the work is changed or added to. This is in distinction to
permissive free software licences, of which the
BSD licenses are the standard examples.
The
GNU Lesser General Public License (LGPL) is a modified, more permissive, version of the GPL, intended for some
software libraries. There is also a
GNU Free Documentation License, which was originally intended for use with documentation for GNU software, but has also been adopted for other uses, such as the
Wikipedia project.
History
The GPL was written by
Richard Stallman in 1989 for use with programs released as part of the
GNU project. The original GPL was based on a unification of similar licenses used for early versions of
GNU Emacs, the
GNU Debugger and the
GNU Compiler Collection. These licenses contained similar provisions to the modern GPL, but were specific to each program, rendering them incompatible, despite being the same license.
[1] Stallman's goal was to produce one license that could be used for any project, thus making it possible for many projects to share code.
An important vote of confidence in the GPL came from
Linus Torvalds' adoption of the license for the
Linux kernel in 1992, switching from an earlier license that prohibited commercial distribution.
As of August 2007, the GPL accounted for nearly 65% of the 43,442 free software projects listed on
Freshmeat,
[2] and
as of January 2006, about 68% of the projects listed on
SourceForge.net.
[3] Similarly, a 2001 survey of
Red Hat Linux 7.1 found that 50% of the source code was licensed under the GPL
[4] and a 1997 survey of
MetaLab, then the largest free software archive, showed that the GPL accounted for about half of the licenses used. One survey of a large repository of open-source software reported that in July 1997, about half the software packages with explicit license terms used the GPL.
[5] Prominent free software programs licensed under the GPL include the
Linux kernel and the
GNU Compiler Collection (GCC). Some other free software programs are
dual-licensed under multiple licenses, often with one of the licenses being the GPL.
Some observers believe that the strong copyleft provided by the GPL was crucial to the success of Linux, giving the programmers who contributed to it the confidence that their work would benefit the whole world and remain free, rather than being exploited by software companies that would not have to give anything back to the community.
[6]
The second version of the license, version 2, was released in 1991. Over the following 15 years, some members of the
FOSS (Free and Open Source Software) community came to believe that some software and hardware vendors were finding loopholes in the GPL, allowing GPL-licensed software to be exploited in ways that were contrary to the intentions of the programmers. These concerns included
tivoization (the inclusion of GPL-licensed software in hardware that will refuse to run modified versions of it); the use of unpublished, modified versions of GPL software behind web interfaces; and patent deals between
Microsoft and Linux and Unix distributors that may represent an attempt to use patents as a weapon against competition from Linux.
Version 3 was developed to attempt to address these concerns. It was
officially released on
June 29,
2007.
Versions
Version 1
Version 1 of the GNU GPL, released in January 1989, prevented what were then the two main ways that software distributors restricted the freedoms that define free software. The first problem was that distributors may publish
binary files only – executable, but not readable or modifiable by humans. To prevent this, GPLv1 said that any vendor distributing binaries must also make the human readable source code available under the same licensing terms.
The second problem was the distributors might add additional restrictions, either by adding restrictions to the license, or by combining the software with other software which had other restrictions on its distribution. If this was done, then the union of the two sets of restrictions would apply to the combined work, thus unacceptable restrictions could be added. To prevent this, GPLv1 said that modified versions, as a whole, had to be distributed under the terms in GPLv1. Therefore, software distributed under the terms of GPLv1 could be combined with software under more permissive terms, as this would not change the terms under which the whole could be distributed, but software distributed under GPLv1 could not be combined with software distributed under a more restrictive license, as this would conflict with the requirement that the whole be distributable under the terms of GPLv1.
Version 2
According to Richard Stallman, the major change in GPLv2 was the "Liberty or Death" clause, as he calls it - Section 7.
[7] This section says that if someone has restrictions imposed that ''prevent'' him or her from distributing GPL-covered software in a way that respects other users' freedom (for example, if a legal ruling states that he or she can only distribute the software in binary form), he or she cannot distribute it at all.
By 1990, it was becoming apparent that a less restrictive license would be strategically useful for some software libraries; when version 2 of the GPL (GPLv2) was released in June 1991, therefore, a second license - the Library General Public License (LGPL) was introduced at the same time and numbered with version 2 to show that both were complementary. The version numbers diverged in 1999 when version 2.1 of the LGPL was released, which renamed it the
GNU Lesser General Public License to reflect its place in the GNU philosophy.
Version 3
Version 3 of the GNU GPL, or GPLv3, was released on
June 29,
2007 after a nearly two-year public comment process on earlier drafts. Compared to version 2, GPLv3 contained expanded efforts to address
software patents, hardware restrictions on software modification ("
tivoization"), compatibility with other
free software licenses, and internationalization, as well as many other changes involving such issues as how license violations are handled and how additional permissions can be granted by the copyright holder.
In late 2005, the
Free Software Foundation (FSF) announced work on version 3 of the GPL (GPLv3). On
January 16,
2006, the first "discussion draft" of GPLv3 was published, and a public consultation began which was to last approximately one year. It actually took a year and a half. The FSF officially released the final version of GPLv3 on
June 29,
2007; see
[1] for the full text.
GPLv3 was written by
Richard Stallman, with legal counsel from
Eben Moglen and
Software Freedom Law Center.
[8]
Stallman's summary of important changes proposed in the first draft included handling
software patent issues,
free software license compatibility, the definition of "source code", and
tivoization.
Other notable changes include allowing authors to add certain additional restrictions and requirements to their contributions.
One of those new optional restrictions, sometimes referred to as the Affero clause, is intended to plug a web-publishing loophole; the permitting of this optional restriction is meant to make it permitted to modify GPLv3 to be compatible with the
Affero General Public License.
The public consultation process was coordinated by the Free Software Foundation with assistance from
Software Freedom Law Center,
Free Software Foundation Europe, and other free software groups. Comments were collected from the public via the
gplv3.fsf.org web portal. That portal runs purpose-written software called
stet. These comments were passed to four committees comprising approximately 130 people, including supporters and detractors of FSF's goals. Those committees researched the comments submitted by the public and passed their summaries to Stallman for a decision on what the license would do.
Unofficial
diffs between version 2 and the v3 draft 1 were released by
Groklaw.
[9].
During the public consultation process, 1,000 comments were submitted for the first draft, and, as of March 2007, 681 comments had been submitted for the second draft. Diffs between draft 1 and draft 2 were made available by FSF
[10] and by FSFE.
[11]
A third draft was released on
March 28,
2007[12]. This draft included language intended to prevent patent cross-licenses like the controversial
Microsoft-Novell patent agreement and restricts the anti-tivoization clauses to the legal definition of a "User" or "consumer product." It also explicitly removed the section on "Geographical Limitations" that was planned to be removed in earlier drafts, but was in the drafts nonetheless. An unofficial diff can be found
here. Notably, the final discussion draft
[13] of the GPLv3, released on
May 31,
2007, introduced
Apache Software License compatibility, clarified the role of outside contractors, and while grandfathering the Microsoft-Novell agreement, the sixth paragraph of section 11 requires that "You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license [...]", which should make future deals of this form ineffective. The license is also meant to require Microsoft to extend the patent licenses it grants to Novell customers for the use of GPLv3 software to ''all'' users of that GPLv3 software; this is possible only if Microsoft is legally a "conveyor" of the GPLv3 software.
[14][15]
Others, notably some high-profile developers of the
Linux kernel, commented to the mass media and made public statements about their objections to parts of discussion drafts 1 and 2.
[16], though in the aftermath of the Novell-Microsoft agreement, Linux kernel developer Linus Torvalds expressed interest in reconsidering GPLv3.
Terms and conditions
The terms and conditions of the GPL are available to anybody receiving a copy of the work that has a GPL applied to it ("the licensee"). Any licensee who adheres to the terms and conditions is given permission to modify the work, as well as to copy and redistribute the work or any derivative version. The licensee is allowed to charge a fee for this service, or do this free of charge. This latter point distinguishes the GPL from software licenses that prohibit commercial redistribution. The FSF argues that free software should not place restrictions on commercial use,
[17] and the GPL explicitly states that GPL works may be sold at any price.
The GPL additionally states that a distributor may not impose "further restrictions on the rights granted by the GPL". This forbids activities such as distributing of the software under a non-disclosure agreement or contract. Distributors under the GPL also grant a license for any of their patents practiced by the software, to practice those patents in GPL software.
Section three of the license requires that programs distributed as pre-compiled binaries are accompanied by a copy of the source code, a written offer to distribute the source code via the same mechanism as the pre-compiled binary or the written offer to obtain the source code that you got when you received the pre-compiled binary under the GPL.
Copyleft
The GPL does not give the licensee unlimited redistribution rights. The right to redistribute is granted only if the distribution is licensed under the terms of the GPL and includes, or unconditionally offers to include at the moment of distribution, the
source code.
This requirement is known as
copyleft. It earns its legal power from the use of
copyright on software programs. Because a GPL work is copyrighted, a licensee has no right to modify or redistribute it (barring
fair use), except under the terms of the license. One is only required to adhere to the terms of the GPL if one wishes to exercise rights normally restricted by copyright law, such as redistribution. Conversely, if one distributes copies of the work without abiding by the terms of the GPL (for instance, by keeping the source code secret), he or she can be
sued by the original author under copyright law.
Copyleft thus uses copyright law to accomplish the opposite of its usual purpose: instead of imposing restrictions, it grants rights to other people, in a way that ensures the rights cannot subsequently be taken away. This is the reason the GPL has been described as a "copyright
hack". It also ensures that unlimited redistribution rights are not granted, should any legal flaw (or "
bug") be found in the copyleft statement.
Many distributors of GPLed programs bundle the source code with the
executables. An alternative method of satisfying the copyleft is to provide a written offer to provide the source code on a physical medium (such as a CD) upon request. In practice, many GPLed programs are distributed over the
Internet, and the source code is made available over
FTP. For Internet distribution, this complies with the license.
Copyleft only applies when a person seeks to redistribute the program. One is allowed to make private modified versions, without any obligation to divulge the modifications as long as the modified software is not distributed to anyone else. Note that the copyleft only applies to the software and not to its output (unless that output is itself a derivative work of the program); for example, a public web portal running a modified derivative of a GPLed
content management system is not required to distribute its changes to the underlying software.
Licensing and contractual issues
The GPL was designed as a
license, rather than a
contract.
[18][19] In some
Common Law jurisdictions, the legal distinction between a license and a contract is an important one: contracts are enforceable by
contract law, whereas licences are enforced under
copyright law. However, this distinction is not useful in the many jurisdictions where there are no differences between contracts and licenses, such as
Civil Law systems.
[20]
Those who do not abide by or agree to the GPL's terms and conditions do not have permission, under copyright law, to copy or distribute GPL licensed software or derivative works. However, they may still use the software however they like.
Copyright holders
The text of the GPL is itself copyrighted, and the copyright is held by the
Free Software Foundation (FSF). However, the FSF does not hold the copyright for a work released under the GPL, unless an author explicitly assigns copyrights to the FSF (which seldom happens except for programs that are part of the
GNU project). Only the individual copyright holders have the authority to sue when a license violation takes place.
The FSF permits people to create new licenses based on the GPL, as long as the derived licenses do not use the GPL preamble without permission. This is discouraged, however, since such a license is generally incompatible with the GPL.
[21] (See the
GPL FAQ for more information.)
Other licenses created by the GNU project include the
GNU Lesser General Public License and the
GNU Free Documentation License.
The GPL in court
A key dispute related to the GPL is whether or not non-GPL software can
dynamically link to GPL libraries. The GPL is clear in requiring that all
derivative works of GPLed code must themselves be GPLed. However, it is not clear whether an executable that dynamically links to a GPL code should be considered a derivative work. The free/open-source software community is split on this issue. The FSF asserts that such an executable is indeed a derivative work if the executable and GPL code "make function calls to each other and share data structures,"
[22] with others agreeing,
[23] while some (e.g.
Linus Torvalds) agree that dynamic linking can create derived works but disagree over the circumstances.
[24] On the other hand, some experts have argued that the question is still open: one
Novell lawyer has written that dynamic linking not being derivative "makes sense" but is not "clear-cut"
[25] and
Lawrence Rosen has claimed that a court of law would "probably" exclude dynamic linking from derivative works although "there are also good arguments" on the other side and "the outcome is not clear"
[26] (on a later occasion, he argued that "market-based" factors are more important than the linking technique
[27]). This is ultimately a question not of the GPL ''per se'', but of how copyright law defines derivative works. In ''
Galoob v. Nintendo'' the
Ninth Circuit Court of Appeals defined a derivative work as having "'form' or permanence" and noted that "the infringing work must incorporate a portion of the copyrighted work in some form," but there have been no clear court decisions to resolve this particular conflict.
Since there is no record of anyone circumventing the GPL by dynamic linking and contesting when threatened with lawsuits by the copyright holder, the restriction appears ''
de facto'' enforceable even if not yet proven ''
de jure''.
In 2002, MySQL AB sued Progress NuSphere for copyright and trademark infringement in
United States district court. NuSphere had allegedly violated MySQL's copyright by linking code for the Gemini table type into the MySQL server. After a preliminary hearing before Judge
Patti Saris on
February 27,
2002, the parties entered settlement talks and eventually settled. At the hearing, Judge Saris "saw no reason" that the GPL would not be enforceable.
[28]
In August 2003, the
SCO Group stated that they believed the GPL to have no legal validity, and that they intended to take up lawsuits over sections of code supposedly copied from SCO Unix into the
Linux kernel. This was a problematic stand for them, as they had distributed Linux and other GPLed code in their
Caldera OpenLinux distribution, and there is little evidence that they had any legal right to do so except under the terms of the GPL. For more information, see
SCO-Linux controversies and
SCO v. IBM.
In April 2004 the
netfilter/iptables project was granted a preliminary
injunction against Sitecom Germany by
Munich District Court after Sitecom refused to desist from distributing Netfilter's GPLed software, allegedly in violation of the terms of the GPL. On July 2004 , the German court confirmed this injunction as a final ruling against Sitecom.
[29] The court's justification for its decision exactly mirrored the predictions given earlier by the FSF's
Eben Moglen:
: ''Defendant has infringed on the copyright of plaintiff by offering the software 'netfilter/iptables' for download and by advertising its distribution, without adhering to the license conditions of the GPL. Said actions would only be permissible if defendant had a license grant... This is independent of the questions whether the licensing conditions of the GPL have been effectively agreed upon between plaintiff and defendant or not. If the GPL were not agreed upon by the parties, defendant would notwithstanding lack the necessary rights to copy, distribute, and make the software 'netfilter/iptables' publicly available.''
This ruling was important because it was the first time that a court had confirmed that violating terms of the GPL was an act of copyright violation. However, the case was not as crucial a test for the GPL as some have concluded. In the case, the enforceability of GPL itself was not under attack. Instead, the court was merely attempting to discern if the license itself was in effect.
In May of
2005,
Daniel Wallace filed suit against the
Free Software Foundation (FSF) in the
Southern District of Indiana, contending that the GPL is an illegal attempt to fix prices at zero. The suit was dismissed in March 2006, on the grounds that Wallace had failed to state a valid anti-trust claim; the court noted that "the GPL encourages, rather than discourages, free competition and the distribution of computer operating systems, the benefits of which directly pass to consumers."
[30] Wallace was denied the possibility of further amending his complaint, and was ordered to pay the FSF's legal expenses.
On September 8, 2005, Seoul Central District Court ruled that GPL has no legal relevance concerning the case dealing with
trade secret derived from GPL-licensed work.
[6] Defendants argued that since it is impossible to maintain trade secret while being compliant with GPL and distributing the work, they aren't in breach of trade secret. This argument was considered without ground.
On September 6, 2006, the
gpl-violations.org project prevailed in court litigation against D-Link Germany GmbH regarding D-Link's alleged inappropriate and copyright infringing use of parts of the Linux Operating System Kernel.
[31] The
judgment finally provided the on-record, legal precedent that the GPL is valid and legally binding, and that it will stand up in German court.
Compatibility and multi-licensing
Many of the most common free software licenses, such as the original
MIT/X license, the
BSD license (in its current 3-clause form), and the
LGPL, are "GPL-
compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole). However, some free/open source software licenses are not GPL-compatible. Many have strongly advocated that free/open source software developers use only GPL-compatible licenses, because doing otherwise makes it difficult to reuse software in larger wholes.
Also see the
list of FSF approved software licenses for examples of compatible and incompatible licenses.
A number of businesses use
dual-licensing to distribute a GPL version and sell a
proprietary license to companies wishing to combine the package with proprietary code, using dynamically linking or not. Examples of such companies include
MySQL AB,
Trolltech (
Qt toolkit),
Namesys (
ReiserFS) and
Red Hat (
Cygwin).
Criticism
In
2001 Microsoft CEO Steve Ballmer referred to Linux as "a cancer that attaches itself in an intellectual property sense to everything it touches."
[32] Critics of Microsoft claim that the real reason Microsoft dislikes the GPL is that the GPL resists proprietary vendors' attempts to "
embrace, extend and extinguish".
[33] Note that Microsoft has released
Microsoft Windows Services for UNIX which contains GPL-licensed code. In response to Microsoft's attacks on the GPL, several prominent Free Software developers and advocates released a joint statement supporting it.
[34]
The GPL has been described as being
"viral" by many of its critics, because the GPL terms require that all modified versions of the software must in turn be licensed under the GPL.
[35] This is part of a
philosophical difference between the GPL and permissive free software licenses such as the
BSD-style licenses, which do not put this requirement on modified versions. While proponents of the GPL believe that free software should ensure that its freedoms are preserved all the way from the developer to the user, others believe that intermediaries between the developer and the user should be free to redistribute the software as non-free software.
In addition, the
FreeBSD project has stated that "a less publicized and unintended use of the GPL is that it is very favorable to large companies that want to undercut software companies. In other words, the GPL is well suited for use as a marketing weapon, potentially reducing overall economic benefit and contributing to monopolistic behavior".
[36]
Some have also argued that the GPL could, and should, be shorter.
[37]
Common misconceptions
; "If you use code licensed under the GPL, you have to release your program's source code no matter what." : The GPL does not actually ''force'' copyright owners to do anything with code simply for owning, using, or privately modifying it. The requirement to distribute source code only arises if the software is "distributed" to third parties.
[38] If the resulting software is kept only for use by the modifier, no disclosure of source code is required. The GPL is automatically revoked upon any violation of its terms, but copyright owners of works licensed with the GPL ''are'' free to negotiate alternate terms with authors of derived works. Independent software consultant Ted Roche, among others, has noted that dual-licensing is becoming more common.
[39] This is where software licensed under the GPL can be made available under a
proprietary software license for a fee, allowing others to create derived works without licensing them under the GPL. This has long been the business model of
MySQL AB.
; "Software licensed under the GPL must be given away for free, it cannot be sold.": The GPL expressly permits one to
sell copies of GPL-covered works and
charge a download fee for them. Purchasing rather than downloading may make sense from a convenience standpoint, but it does not change either the purchaser's or vendor's rights or responsibilities under the GPL. In fact, licenses that only allow non-commercial distribution are automatically incompatible with the GPL.
; "Any software created with GPL tools must be released under the GPL.": The program must be GPL only if it includes GPL source code or it is linked with a GPL library. For example, using
gcc to compile proprietary software is allowed.
See also
★
Dual licensing
★
GNU Lesser General Public License
★
List of software licenses
★
Permissive and copyleft licences
References
1. Presentation by Richard Stallman, made on April 21, 2006, at the second international GPLv3 conference, held in Porto Alegre. Direct link to the section about the prehistory of the GPL.
2. Freshmeat's statistics page
3. http://www.dwheeler.com/frozen/sourceforge-stats-20031110.html
4. Estimating Linux's Size David A. Wheeler
5. Eric S. Raymond’s "Homesteading the Noosphere," referenced in Make Your Open Source Software GPL-Compatible. Or Else By David A. Wheeler
6. why the GPL rocketed Linux to success
7. Presentation by Richard Stallman, made on April 21 2006, at the second international GPLv3 conference, held in Porto Alegre. Direct link to the section about the "Liberty or Death" clause.
8. Presentation by Richard Stallman on February 25, 2006 in Brussels, Belgium - the first day of that year's FOSDEM conference.
9. At Your Request, the GPLv2-GPL3 Chart
10. http://gplv3.fsf.org/gpl3-dd1to2-markup-rationale.pdf
11. http://www.fsfeurope.org/projects/gplv3/diff-draft1-draft2.en.html
12. [2]
13. [3] Final Discussion Draft, accessed June 4, 2007
14. [4] GPLv3 FAQ, accessed June 4, 2007. This is from the FAQ instead of the license, for readability purposes.
15. [5] Fourth Discussion Draft Rationale, accessed June 4, 2007.
16. Kernel developers' position on GPLv3 -- http://lwn.net/Articles/200422/, accessed June 4, 2007
17. Selling Free Software
18. Essay by Stallman explaining why a license is more suitable than a contract
19. Eben Moglen explaining why the GPL is a licence and why it matters
20.
Viral contracts or unenforceable documents? Contractual validity of copyleft licenses, , Andres, Guadamuz-Gonzalez, European Intellectual Property Review,
21. GPL FAQ: Can I modify the GPL and make a modified license?
22. Can I apply the GPL when writing a plug-in for a non-free program?, GPL FAQ, Free Software Foundation.
23. Jerry Epplin, Using GPL software in embedded applications, ''LinuxDevices.com'' (4 March 2001).
24. Linus Torvalds, GPL only modules, ''linux-kernel'' mailing list (17 December 2006).
25. Matt Asay, The GPL: Understanding the License that Governs Linux, ''Novel Cool Solutions Feature'' (16 Jan. 2004).
26. Lawrence Rosen, Derivative Works, ''Linux Journal'' (1 Jan 2003).
27. Lawrence Rosen, Derivative Works, ''rosenlaw.com'' (25 May 2004)
28. See ''Progress Software Corporation v. MySQL AB'', 195 F. Supp. 2d 328 (D. Mass. 2002), on defendant's motion for preliminary injunction.
29. Harald Welte vs. Sitecom, final order, translated from German by Jens Maurer
30. Dismissal of Wallace v. FSF. From this article on Groklaw.
31. http://gpl-violations.org/news/20060922-dlink-judgement_frankfurt.html
32. Microsoft CEO takes launch break with the Sun-Times Dave Newbart (Internet archive link)
33. Deadly embrace
34. Free Software Leaders Stand Together
35. "Speech Transcript - Craig Mundie, The New York University Stern School of Business", ''Prepared Text of Remarks by Craig Mundie'', Microsoft Senior Vice President, The Commercial Software Model The New York University Stern School of Business May 3, 2001
36. GPL Advantages and Disadvantages
37. GPLv3, Clarity and Simplicity Allison Randal
38. http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
39. Roche makes the point in FoxTalk, May 2003. Another consultant, Rich Voder, also makes the point in Open Source: Tree Museums, Fri 12.30.2005.
External links
★
A quick guide to the licensing terminology in: Open Source Glossary
★
A paper on enforcing the GPL
★
Free Software Leaders Stand Together, a joint statement in support of the GPL
★
Frequently Asked Questions about the GPL
★
GPL, BSD, and NetBSD - why the GPL rocketed Linux to success by David A. Wheeler
★
GNU General Public License v1.0 - This version is
deprecated by the FSF.
★
GNU General Public License v2.0 - This version is
deprecated by the FSF but still widely accepted.
★
GNU General Public License v3.0
★
GNU General Public License and Commentaries - Edited by
Robert Chassell.
★
GNU Lesser General Public License v2.1
★
History of the GPL
★
Information Site Tracking Rate of GPL v3 License Adoption
★
Linux and the Law
★
List of presentation transcripts about the GPL and free software licences
★
Make Your Open Source Software GPL-Compatible. Or Else. (David A. Wheeler,
7 April 2004) — why a GPL-compatible license is important to the health of a project
★
The Emacs General Public Licence, a February 1988 version, a direct predecessor of the GNU GPL