The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses. The GPL is a copyleft license, which means that it guarantees end users the freedom to run, study, share, or modify the software, but if you distribute a derivative work or modification, you must provide the source code to those recipients under the same or equivalent license terms — there is no requirement to publish anything to the public at large. The GPL was the first copyleft license available for general use. It was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. The GPL states more obligations on redistribution than the GNU Lesser General Public License and differs significantly from widely used permissive software licenses such as BSD, MIT, and Apache. Historically, the GPL license family has been one of the most popular software licenses in the free and open-source software (FOSS) domain. Prominent free software programs licensed under the GPL include the Linux operating system kernel and the GNU Compiler Collection (GCC). David A. Wheeler argues that the copyleft provided by the GPL was crucial to the success of Linux-based systems, giving the contributing programmers some assurance that their work would benefit the world and remain free, rather than being potentially exploited by software companies who would not be required to contribute to the community. In 2007, the third version of the license (GPLv3) was released to address perceived shortcomings in the second version (GPLv2) that had become apparent through long-term use. To keep the license current, the GPL includes an optional "any later version" clause, which allows users to choose between two options –the original terms, or the terms in new versions as updated by the FSF. Software projects licensed with the optional "or later" clause include the GNU Project, while projects such as the Linux kernel are licensed under GPLv2 only. The "or any later version" clause is sometimes known as a lifeboat clause, since it allows combinations of different versions of GPL-licensed software to maintain compatibility. Usage of the GPL has steadily declined since the 2010s, particularly because of the complexities mentioned above, as well as a perception that the license restrains the modern open source domain from growth and commercialization.
History The original GPL was written by Richard Stallman in 1989 for use with programs released as part of the GNU Project. The license was based on unifying similar licenses used for early versions of the GNU Emacs text editor, the GNU Debugger, and the GNU C Compiler. These licenses contained provisions similar to the modern GPL, but they were specific to each program, which rendered them incompatible despite being the same license. Stallman's goal was to produce a single license that could be used for any project, thereby enabling many projects to share code. The second version of the license, GPLv2, was released in 1991. During the subsequent 15 years, members of the free software community became concerned about specific problems in the GPLv2 license, which could allow a person to exploit GPL-licensed software in ways contrary to the license's intent. These problems included the following:
tivoization—the inclusion of GPL-licensed software in hardware that prevents users from running modified versions of the software (on that hardware) compatibility issues similar to those of the AGPL (v1) patent deals between Microsoft and distributors of free and open-source software, which some people viewed as an attempt to use patents as a weapon against the free software community Version 3 of the GPL was developed as an attempt to address the concerns mentioned above; it was officially released on 29 June 2007.
Version 1
Version 1 of the GNU GPL, released on 25 February 1989, was written to protect against the two main methods by which software distributors restricted the freedoms that define free software. The first method is publishing binary files that are only executable, but not readable or modifiable by humans. To prevent this restriction, the GPLv1 states that copying and distributing copies of any portion of the program must also make the human-readable source code available under the same licensing terms. The second method is adding restrictions, either directly to the license or by combining the software with other software having different restrictions on distribution. The union of two such sets of restrictions would apply to the combined work, thereby adding unacceptable constrictions. To prevent this situation, the GPLv1 states that modified versions, as a whole, must be distributed under the terms of GPLv1. As a result, software distributed under the terms of the GPLv1 could be combined with software distributed under more permissive terms, since this combination would not change the terms under which the whole could be distributed. However, software distributed under GPLv1 could not be combined with software distributed under a more restrictive license, since this combination would conflict with the requirement that the whole be distributable under the terms of GPLv1.
Version 2
… excerpt ends here. Continue reading the full article.





