GNU General Public License
The
GNU General Public License (
GNU GPL or simply
GPL) is a widely used
free software license, originally written by
Richard Stallman for the . 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 following rights:
* the right to run the program, for any desired purpose.
* the right to study how the program works, and modify it. (Access to the source code is a precondition for this)
* the right to redistribute copies.
* the right to improve the program, and release the improvements to the public. (Access to the source code is a precondition for this)
In contrast, the
end-user licenses (EULA) that come with
proprietary software generally only grants the
end-user the right to copy the software onto a limited number of computers. The terms and conditions of such license agreements may even attempt to restrict activities normally permitted by
copyright laws, such as
reverse engineering.
The primary difference between the GPL and more "permissive" free software licenses such as the
BSD License is that the GPL seeks to ensure that the above points are preserved in copies and in
derivative works. It does this using a legal mechanism known as
copyleft, invented by Stallman, which requires derivative works of GPL-licensed programs to also be licensed under the GPL.
In contrast, BSD-style licenses allow for derivative works to be redistributed as proprietary software.
By some measures, the GPL is the single most popular license for
free and
open source software.
As of April 2004, the GPL accounted for nearly 75% of the 23,479 free-software projects listed on
Freshmeat, and about 68% of the projects listed on
SourceForge. (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, and 1997 survey of
MetaLab, then the largest free-software archive, showed that the GPL accounted for about half of the licenses used. Prominent free software programs licensed under the GPL include the
Linux kernel and the
GNU Compiler Collection (GCC). Some other prominent free software programs are licensed under multiple licenses, one of which is the GPL;
Perl is a well-known example (see
Free software).
GPLv1
The GPL was written by
Richard Stallman for use with programs released as part of the . 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 licence.
[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.] 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. This became the GPL version 1, released in January
1989.
GPL/LGPLv2
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 was released in June
1991, therefore, a second license - the Library General Public License, or LGPL - was introduced alongside it, and was also numbered version 2 to show that the two were complementary. The version numbers diverged in
1999 when version 2.1 of the LGPL was released, which renamed it the
Lesser General Public License to reflect its place in the GNU philosophy.
According to Richard Stallman, the most major change in GPLv2 was the "Liberty or Death" clause, as he calls it - Section 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.] 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.
GPLv3
As of 2006, version 3 of the GPL is being written by
Richard Stallman, with legal counsel from
Eben Moglen and
Software Freedom Law Center[Presentation by Richard Stallman on February 25, 2006 in Brussels, Belgium - the first day of that year's FOSDEM conference.].
On
February 25,
2006, he said::Among the changes, the most important four, I will say, concern dealing with software patents, compatibility with other licences, the definition of which parts of the source code and what constitutes the source code that must be included in it, and dealing with
Digital Restrictions Management.
Some important changes:
*Clauses against patents
*Compatibility with different licences
*Clauses against DRM
*Clauses against "
tivoization"
*Additional restrictions
In January 2006, the
Free Software Foundation began a 12-month public consultation about the possible changes to the GPL. This process is being coordinated by the Free Software Foundation,
Software Freedom Law Center, and
Free Software Foundation Europe.
A
first draft of the GPLv3 was made available on
January 16 2006. Unofficial
diffs between version 2 and the v3 draft 1 are also
available[At Your Request, the GPLv2-GPL3 Chart].
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.
[Second Discussion Draft of Revised GNU General Public License Released]Richard Stallman expects GPLv3 to be finalised either in October 2006 or early 2007.
[Overview of GPL v3 Changes, presentation made on June 22, 2006 at the third international GPLv3 conference, organised by FSFE in Barcelona]The following is a colloquial summary of the terms of the GPL. The only legally precise description, however, is that of the actual text of the GPL, which is available through an external link at the end of this article.
Granting of rights
The terms and conditions of the GPL are available to anybody receiving a copy of the GPLed work ("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. Stallman has argued that free software should not place restrictions on commercial use, and the GPL explicitly states that GPLed works may be (re)sold.
The GPL additionally states that a distributor may not impose "further restrictions on the rights granted by the GPL". This forbids e.g. the distribution 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 programmes 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.
The copyleft
The GPL does not give the licensee unlimited redistribution rights. The right to redistribute is granted only if the licensee includes the
source code (or a legally-binding offer to provide the source code), including any modifications made. Furthermore, the distributed copies, including the modifications, must also be licensed under the terms of the GPL.
This requirement is known as
copyleft, and it gets its legal teeth from the fact that the program is
copyrighted. Because it is copyrighted, a licensee has no right to modify or redistribute it (barring
fair use), except under the terms of the copyleft. 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 web portal running a modified GPL
content management system is not required to distribute its changes to the underlying software. (It has been suggested that this be changed for version 3 of the GPL.)
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 licences, such as
Civil Law systems.
The way the GPL license works is simple: if you do not abide by the GPL's terms and conditions, then you do not have permission, under copyright law, to copy or distribute GPL licensed software or derivative works. It does
not mean that the rules of the GPL do not apply to you and that you may use the software however you like. By default, the restrictions of copyright law are in effect, not the anarchy of the public domain.
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.
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.
Unfortunately, many developers believe this is a technical question. It is not. The question is entirely a legal issue â€" is the linking work
legally a derivative work?
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 is apparently
de facto enforceable even if not currently
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.
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 in the world that a court had confirmed that the GPL is a legally enforceable license.
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."
[Dismissal of Wallace v. FSF. From this article on Groklaw.] Wallace was denied the possibility of further amending his complaint, and was ordered to pay the FSF's legal expenses.
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 GPLed program without conflict (the new combination would have the GPL applied to the whole). However, some open source software licenses are not GPL-compatible. Many have strongly advocated that 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 software licenses for examples of compatible and incompatible licenses.
In 2001
Microsoft CEO Steve Ballmer referred to Linux as a "cancer" because of the effects of the GPL. Critics of Microsoft claim that the real reason Microsoft dislikes the GPL is because the GPL resists proprietary vendor's attempts to
embrace, extend and extinguish (EEE). Note that Microsoft has sold a product (
Microsoft Windows Services for UNIX) with GPL-licensed code.
Critics of the GPL often describe it as being
"viral", based on the GPL terms that all derived works must in turn be licensed under the GPL. Since the definition of "derived work" is commonly interpreted to include software containing GPLed code or dynamically linking to GPLed libraries (see above), the "virus" complaint comes from the view that the GPL forces its terms onto all other software whose authors choose to add GPLed code to their own. This is part of a
philosophical difference between the GPL and permissive free software licenses such as the BSD-style licenses, which put fewer restrictions on derived works. While proponents of the GPL believe that free software should ensure that its freedoms are preserved in derivative works, others believe that free software should give its users the maximum freedom to redistribute it as they wish.
However, the GPL does
not force copyright owners to do anything with code they own. Copyright owners of works licensed with the GPL are free to negotiate alternate terms with authors of derived works. Dual-licensing is becoming more common, where software licensed under the GPL can be made available under a commercial license for a fee, allowing others to create derived works without licensing them under the GPL.
Some critics dislike the ideological tone of the GPL's preamble, or complain that the license is too long. Others feel that it restricts certain software business models too much in favor of unneeded user freedoms and a better "middle ground" must be found. This can include licenses which disallow reproduction of source or the binaries but allow free modification for personal or corporate use. One such example of a license of that variety is the
Open Public License.
As might be expected when technical minds enter into the world of law, there are many misconceptions about the GPL and what it requires or permits. The more common include:
Modifying GPL source code requires redistribution : The GPL does not necessarily require one to disclose their source code when modifying a GPL-covered work or using GPL-covered code in a new work. This requirement arises only when the new project is "distributed" to third parties. If the resulting software is kept only for use by the modifier, no disclosure of source code is required.; Charging money is not allowed: 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.
See also
*
GNU Free Documentation License*
Dual licensing*
BSD and GPL licensing*
GNU Lesser General Public License*
GNAT Modified General Public License*
GNU General Public License Discussion Draft 1 of Version 3*
BSD License*
Mozilla Public License*
List of software licenses*
GNU General Public License v2.0*
GNU General Public License v1.0 - This version is deprecated
*
GNU Lesser General Public License v2.1*
Frequently Asked Questions about the GPL*
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*
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*
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
*
The German GPL Order - Translated*
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
*
Can Technical Tricks Circumvent the GPL?, by Richard Stallman
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 22nd 2006
**
A transcript of Richard Stallman's presentation**
A transcript of Eben Moglen's presentation