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 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 licences are the standard examples.
The GNU Lesser General Public License (LGPL) is a modified, more permissive, version of the GPL, originally 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.
The Affero General Public License (GNU AGPL) is a similar licence with a focus on networking server software. The GNU AGPL is similar to the GNU General Public License, except that it additionally covers the use of the software over a computer network, requiring that the complete source code be made available to any network user of the AGPLed work, for example a web application. The Free Software Foundation recommends that this licence is considered for any software that will commonly be run over the network.
As of August 2007, the GPL accounted for nearly 65% of the 43,442 free software projects listed on Freshmeat, and as of January 2006, about 68% of the projects listed on SourceForge.net. Similarly, a 2001 survey of Red Hat Linux 7.1 found that 50% of the source code was licensed under the GPL and a 1997 survey of MetaLab, then the largest free software archive, showed that the GPL accounted for about half of the licences used. One survey of a large repository of open-source software reported that in July 1997, about half the software packages with explicit licence terms used the GPL. 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 licences, often with one of the licences 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.
The second version of the licence, 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 its software); 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.
The second problem was the distributors might add additional restrictions, either by adding restrictions to the licence, 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 licence, as this would conflict with the requirement that the whole be distributable under the terms of GPLv1.
By 1990, it was becoming apparent that a less restrictive licence would be strategically useful for some software libraries; when version 2 of the GPL (GPLv2) was released in June 1991, therefore, a second licence - 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.
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 the public consultation began. The public consultation was originally planned for nine to fifteen months but finally stretched to eighteen months with four drafts being published. The official GPLv3 was released by FSF on June 29, 2007. GPLv3 was written by Richard Stallman, with legal counsel from Eben Moglen and Software Freedom Law Center.
According to Stallman, the most important changes are in relation to software patents, free software licence compatibility, the definition of "source code", and hardware restrictions on software modification ("tivoization"). Other changes relate to internationalisation, how licence violations are handled, and how additional permissions can be granted by the copyright holder.
Other notable changes include allowing authors to add certain additional conditions or requirements to their contributions. One of those new optional requirements, sometimes referred to as the Affero clause, is intended to fulfill a request regarding software as a service; the permitting addition of this requirement makes GPLv3 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 licence would do.
During the public consultation process, 962 comments were submitted for the first draft. By the end, a total of 2,636 comments had been submitted.
The third draft was released on March 28, 2007. This draft included language intended to prevent patent cross-licences like the controversial Microsoft-Novell patent agreement and restricts the anti-tivoization clauses to a legal definition of a "User" or "consumer product." It also explicitly removed the section on "Geographical Limitations", whose probable removal had been announced at the launch of the public consultation.
The fourth discussion draft, which was the last, was released on May 31, 2007. It introduced Apache License compatibility, clarified the role of outside contractors, and made an exception to avoid the perceived problems of a Microsoft-Novell style agreement, saying in section 11 paragraph 6 that
This aims to make future such deals ineffective. The licence is also meant to cause Microsoft to extend the patent licences 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.
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.
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.
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 redistribute it, not even in modified form (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. It also ensures that unlimited redistribution rights are not granted, should any legal flaw be found in the copyleft statement.
Many distributors of GPL'ed 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 GPL'ed programs are distributed over the Internet, and the source code is made available over FTP. For Internet distribution, this complies with the license.
Copyleft applies only 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 applies only 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 GPL'ed content management system is not required to distribute its changes to the underlying software.
Those who do not agree to the GPL's terms and conditions do not have permission, under copyright law, to copy or distribute GPL licenced software or derivative works. However, they may still use the software however they like.
The FSF permits people to create new licences based on the GPL, as long as the derived licences do not use the GPL preamble without permission. This is discouraged, however, since such a licence is generally incompatible with the GPL. (See the GPL FAQ for more information.)
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.
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 GPL'ed 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 GPL'ed software 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:
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 licence 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." 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. 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 inappropriate and copyright infringing use of parts of the Linux Operating System Kernel. 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.
In late 2007, the developers of BusyBox and the Software Freedom Law Center embarked upon a program to gain GPL compliance from distributors of BusyBox in embedded systems, suing those who would not comply. These were claimed to be the first US uses of courts for enforcement of GPL obligations. See GPL lawsuits.
Many of the most common free software licences, 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 licences are not GPL-compatible. Many GPL proponents have strongly advocated that free/open source software developers use only GPL-compatible licences, because doing otherwise makes it difficult to reuse software in larger wholes. Note that this issue only arises in concurrent use of licences which impose conditions on their manner of combination. Some licences, such as the BSD licence, impose no conditions on the manner of their combination.
Also see the list of FSF approved software licences for examples of compatible and incompatible licences.
A number of businesses use dual-licensing to distribute a GPL version and sell a proprietary licence to companies wishing to combine the package with proprietary code, using dynamic linking or not. Examples of such companies include MySQL AB, Trolltech (Qt toolkit), Namesys (ReiserFS) and Red Hat (Cygwin).
The GPL has been described as being "viral" by many of its critics because the GPL only allows conveyance of whole programs, which means that programmers are not allowed to convey programs that link to libraries having GPL-incompatible licences. The so-called "viral" effect of this is that under such circumstances disparately licenced software cannot be combined unless one of the licences is changed. Although theoretically either licence could be changed, in the "viral" scenario the GPL cannot be practically changed (because the software may have so many contributors, some of whom will likely refuse), whereas the licence of the other software can be practically changed.
This is part of a philosophical difference between the GPL and permissive free software licences such as the BSD-style licences, which do not put such a 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. More specifically, the GPL requires that redistribution occur subject to the GPL, whereas more "permissive" licences allow redistribution to occur under licences more restrictive than the original licence.
While the GPL does allow commercial distribution of GPL software, the market price will settle near the price of distribution—near zero—since the purchasers may redistribute the software and its source code for their cost of redistribution. This could be seen to inhibit commercial use of GPL'ed code by others wishing to use that code for proprietary purposes—if they don't wish to avail themselves of GPL'ed code, they will have to re-implement it themselves. Microsoft has included anti-GPL terms in their open source 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". It's not clear that there are any cases of this happening in practice, however.
The GPL has no indemnification clause explicitly protecting maintainers and developers from litigation resulting from unscrupulous contribution. (If a developer submits existing patented or copyright work to a GPL project claiming it as their own contribution, all the project maintainers and even other developers can be held legally responsible for damages to the copyright or patent holder.) Lack of indemnification is one criticism that lead Mozilla to create the Mozilla Public License rather than use the GPL or LGPL. However, Mozilla later relicenced their work under a GPL/LGPL/MPL triple licence, due to problems with the GPL-incompatibility of the MPL.
Some software developers have found the extensive scope of the GPL to be too restrictive. For example, Bjørn Reese and Daniel Stenberg felt that their choice of the GPL for their software created a "quodque pro quo" (Latin, "Everything in return for something") for the developers of other software that linked with theirs. For that reason, in 2001 they abandoned the GPLv2 in favor of less restrictive copyleft licences.
As a specific example of licence incompatibility, Sun Microsystems' ZFS, because it is licensed under the GPL-incompatible CDDL and covered by several Sun patents, cannot link to the GPL-licensed linux kernel.
Some have also argued that the GPL could, and should, be shorter.