GNU General Public License
From Wikipedia, the free encyclopedia
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. The latest version of the license, version 2, was released in 1991. The GNU Lesser General Public License (LGPL) is a modified version of the GPL, intended for some software libraries.
The GPL grants 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.
By some measures, the GPL is the single most popular license for free and open source software. As of January 2006, the GPL accounted for nearly 66% of the 41,962 free software projects listed on Freshmeat[1], and as of January 2006, about 68% of the projects listed on SourceForge[2]. (These sites are owned by OSTG, a company that advocates Linux and the GPL.) Similarly, a 2001 survey of Red Hat Linux 7.1 found that 50% of the source code was licensed under the GPL[3], and 1997 survey of MetaLab, then the largest free-software archive, showed that the GPL accounted for about half of the licenses used[4]. 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.
Contents |
[edit] History
The GPL was written by Richard Stallman for use with programs released as part of the GNU project. It 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.[5] 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.
[edit] 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. Those were the distribution of binaries - executable, but not readable or modifiable to humans, and adding legal restrictions in the licence. GPLv1 said that if you distribute binaries, you must make the human readable source code available too, and when you distribute GPL'd software, you cannot add any further restrictions to the license.
[edit] Version 2
According to Richard Stallman, the major change in GPLv2 was the "Liberty or Death" clause, as he calls it - Section 7.[6] This section says that if someone has restrictions imposed that prevent them from distributing GPL-covered software in a way that respects other users' freedom (for example, if a legal ruling states that they can only distribute the software in binary form), they 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.
[edit] Version 3
In late 2005, the Free Software Foundation (FSF) announced that it would begin drafting version 3 of the GPL. On January 16, 2006, the first "discussion draft" of GPLv3 was published and a public consultation began which was to last approximately one year.
Version 3 of the GPL (GPLv3) is being written by Richard Stallman, with legal counsel from Eben Moglen and Software Freedom Law Center.[7]
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 tivoisation.[7] Other notable changes include allowing authors to add certain additional restrictions and requirements to their contributions.
One of those new optional restriction, sometimes referred to as the Affero clause, is intended to plug a web-publishing loophole, and 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 is being coordinated by the Free Software Foundation with assistance from Software Freedom Law Center, Free Software Foundation Europe, and other free software groups. Comments are collected from the public via the gplv3.fsf.org web portal. That portal runs purpose written software called stet. These comments are passed to four committees comprising approximately 130 people, including supporters and detractors of FSF's goals. These committees research the comments submitted by the public and pass their summaries to Stallman for a decision on what the license will do.
Unofficial diffs between version 2 and the v3 draft 1 were released by Groklaw.[8]. Diffs between draft 1 and draft 2 were made available by FSF[9] and by FSFE.[10]
On 27 July 2006, a second discussion draft of GPLv3 was released, along with a first discussion draft of a version 3 of the LGPL.[11]
During the year-long public consultation process, one thousand comments were submitted for the first draft, and, as of March 2007, 681 comments had been submitted for the second draft.
A third draft was released on March 28, 2007[12]. This draft includes language thought to prevent patent cross-licenses like the controversial Microsoft-Novell patent agreement and restricts the anti-Tivoization clauses to the legal definition of "consumer products". It also explicitly removes the section on "Geographical Limitations" that was planned to be removed in earlier drafts, but were in the drafts nonetheless. An unofficial diff can be found here.
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.[13] FSF expects GPLv3 to be finalized in June 2007.[14]
[edit] 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,[15] 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.
[edit] The 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), they can be sued by the original author under copyright law.
The 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.
The 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. However, it has been suggested that this be changed for version 3 of the GPL.
[edit] The GPL is a license
The GPL was designed as a license, rather than a contract. 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 the GPL, as a license, is enforced under the terms of 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.[citation needed]
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.
[edit] 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. (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.
[edit] GPL-related disputes
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 library should be considered a derivative work. The free/open-source software community is split on this issue, with the FSF asserting that such an executable is indeed a derivative work, and other experts disagreeing. 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.
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). 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.[16]
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. 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."[17] Wallace was denied the possibility of further amending his complaint, and was ordered to pay the FSF's legal expenses.
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.[18] The judgement finally provided the on-record, legal precedent that the GPL is valid and legally binding, and that it will stand up in German court.
[edit] GPL compatibility
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 licences for examples of compatible and incompatible licences.
[edit] 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."[19] Critics of Microsoft claim that the real reason Microsoft dislikes the GPL is because the GPL resists proprietary vendors' attempts to "embrace, extend and extinguish".[20] Note that Microsoft has released Microsoft Windows Services for UNIX which contains GPL-licensed code.
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.[21] 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 version. 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.
[edit] Practical examples
- The GPL only requires you to distribute source code if you are distributing binary versions
- 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.[22] 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.[23] 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.
- Anyone can charge for copies of GPL'd software
- 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.
- Non-GPL'd and non-free software can be developed with GPL'd tools
- 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.
[edit] Notes
- ^ For up to date statistics, see Freshmeat's statistics page
- ^ See, for example, a backup.
- ^ "The GPL is far and away the most common license (by lines of code) of any single license. In fact, the category GPL all by itself accounts for a simple majority of all code (53%), even when not including packages with multiple licenses (e.g., LGPL/GPL, GPL/BSD, Artistic or GPL, etc); adding these other packages would have made the total for the GPL even higher. " from "Estimating Linux's Size", see the section "Total Counts by License"; by David A. Wheeler.
- ^ "Eric S. Raymond's "Homesteading the Noosphere" (section 2) reported that in July 1997 about half the software packages with explicit license terms at North Carolina’s Metalab (formerly Sunsite) used the GPL. At the time Metalab was the largest OSS/FS software archive." "Make Your Open Source Software GPL-Compatible. Or Else." By David A. Wheeler
- ^ 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.
- ^ 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.
- ^ a b Presentation by Richard Stallman on February 25, 2006 in Brussels, Belgium - the first day of that year's FOSDEM conference.
- ^ At Your Request, the GPLv2-GPL3 Chart
- ^ http://gplv3.fsf.org/gpl3-dd1to2-markup-rationale.pdf
- ^ http://www.fsfeurope.org/projects/gplv3/diff-draft1-draft2.en.html
- ^ Second Discussion Draft of Revised GNU General Public License Released
- ^ [1]
- ^ http://lwn.net/Articles/200422/
- ^
- ^ Selling Free Software. Free Software Foundation.
- ^ See Progress Software Corporation v. MySQL AB, 195 F. Supp. 2d 328 (D. Mass. 2002), on defendant's motion for preliminary injunction.
- ^ Dismissal of Wallace v. FSF. From this article on Groklaw.
- ^ http://gpl-violations.org/news/20060922-dlink-judgement_frankfurt.html
- ^ Newbart, Dave. "Microsoft CEO takes launch break with the Sun-Times", Chicago Sun-Times, June 1, 2001.(Internet archive link)
- ^ "Deadly embrace", The Economist, 2000-03-30. Retrieved on 2006-03-31.
- ^ "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
- ^ http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
- ^ 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.
[edit] See also
- GNU Free Documentation License
- Dual licensing
- BSD and GPL licensing
- GNU Lesser General Public License
- GNAT Modified General Public License
- BSD License
- Mozilla Public License
- List of software licenses
- Glossary of legal terms in technology
[edit] External links
[edit] Official webpages
- GNU General Public License v2.0
- GNU General Public License v1.0 - This version is deprecated
- The Emacs General Public Licence, a February 1988 version, a direct predecessor of the GNU GPL
- GNU Lesser General Public License v2.1
- Frequently Asked Questions about the GPL
[edit] Other webpages
- Free Software Leaders Stand Together, a joint statement in support of the GPL
- Summary of the GPL v2.0 from the Creative Commons
- GPLMedicine.org an advocacy site for the GPL in health-related software
- History of the GPL
- Groklaw: The GPL is a license, not a contract
- The German GPL Order - Translated
- Groklaw: FSF Moves to Dismiss Wallace and for Stay on Filing Briefs on Summary Judgment Motion, June 22, 2005
- Enforcing the GNU GPL by Eben Moglen, September 10, 2001
- IBM's motion containing case law backing legitimacy and legality of the GPL
- Groklaw GPL References
- GNU General Public License and Commentaries - Edited by Robert Chassell.
- 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
- "Toward True Open Source" - an article about why the GPL is allegedly too restrictive
- Patent risks of open source software - explains the patent license grant in the GPL
- "Ballmer: 'Linux is a cancer'" by Thomas C Greene, The Register, June 2, 2001
- NOVELL: The GPL: Understanding the License that Governs Linux - This article explains one view of the GPL in easy terms, talks about static vs. dynamic linking and the GPL, and discusses why companies like Microsoft may "fear" the license.
- SOFTPANORAMA: Labyrinth of Software Freedom - Nikolai Bezroukov's e-book about BSD, GPL and social aspects of free licensing
- Viral Contracts or Unenforceable Documents? Contractual Validity of Copyleft Licenses - Article looking at the GPL from an European perspective.
- GPL-Violations.org - website monitoring the net for GPL violations
- 10 common misunderstandings about the GPL by Bruce Byfield in the IT Manager's Journal
- GPL, BSD, and NetBSD - why the GPL rocketed Linux to success by David A. Wheeler
[edit] GPLv3 and the public consultation
- A transcript of FSF's January 16th, 2006, presentation of the changes they propose from GPLv2 to v3
- A transcript of Richard Stallman speaking in Brussels on February 25th, 2006, about version three of the GPL
- A transcript of presentation by Richard Stallman about the proposed changes to the GPL for version three, Turin, Italy, March 18th 2006
- Information about the public process for drafting version three of the GPL, from FSF-Europe
- GPLv3 presentation by Richard Stallman, April 21st 2006
- A law review article arguing that GPLv3's changes will compromise its enforceability
- Audio and video recordings of a 2-day GPLv3 event, Barcelona, June 22 2006
- A transcript of Richard Stallman, with Q&A, from GPLv3 conference in Bangalore, August 23, 2006
- Interview on GPLv3 rationale with Eben Moglen by Chris DiBona and Leo Laporte from TWiT.tv, September 27, 2006
- A transcript of Richard Stallman at 5th international GPLv3 conference, Tokyo, November 21, 2006
History: GNU Manifesto • GNU Project • Free Software Foundation (FSF)
GNU licenses: GNU General Public License (GPL) • GNU Lesser General Public License (LGPL) • GNU Free Documentation License (FDL)
Software: GNU operating system • bash • GNU Compiler Collection • Emacs • GNU C Library • Coreutils • GNU build system • other GNU packages and programs
Speakers: Robert J. Chassell • Loïc Dachary • Ricardo Galli • Georg C. F. Greve • Federico Heinz • Bradley M. Kuhn • Eben Moglen • Richard Stallman • Len Tower