The GNU General Public License v2 - An Overview

by Rowan Wilson on 10 November 2005, last updated

Introduction

The GNU General Public License v2 (GPL v2 for short) is the most commonly used open source licence. Approximately 70% of the projects in the software repository Sourceforge use the GPL v2. This document attempts to draw together the main features of the GNU General Public License v2 into a friendly and comprehensible digest and, in addition, to note some details about its history and usage. The licence itself can be read at http://www.opensource.org/licenses/gpl-license.php.

GPL v2 History

The GNU project (short for GNU’s Not UNIX) began in 1984, when Richard Stallman, a programmer working at Massachusetts Institute of Technology, decided that he would like to create a collection of software which could be distributed and adapted freely, without restrictive proprietary licensing. Stallman had become frustrated that the culture of share, use and adapt that had characterised the creation and use of computer software in the 1970s had gradually faded away. As software itself began to be seen as a marketable product, it became more normal for software to be distributed under licences which forbade the user from altering it or passing it on to others. Most programmers accepted that this was inevitable if software production was to become an industry, but Stallman disagreed. Thus he set about coding an entire operating system (Hurd) and accompanying toolset (GNU) that would be available under a licence that permitted free use, redistribution and modification of the code. In 1985 he set up the Free Software Foundation (FSF), a not-for-profit organization whose aim was to support free software projects such as GNU, and also to formulate licences that would meet the aims of the free software movement.

The expression free software pre-dates open source by more than 10 years. For many it remains the preferred description of what they are creating.

Although the basic principles of free software were established early on in the GNU project, it was not until 1989 that they were distilled into a licence that could be easily taken up and applied to any piece of software by its owner. Up to that point licences for GNU software had been written on an ad-hoc basis for each software release, and were often peppered with direct references to the software they licensed. This made them troublesome to reuse. The GNU General Public License version 1 solved this problem by simply referring to the Program. In 1991 the GPL v1 was revised to version 2, although the changes made were entirely in phraseology rather than legal effect. Also in 1991, the Library (or Lesser) General Public License (LGPL) v2.1 was released by the FSF, to deal with special cases in which it might be desirable for free software to interact closely with software released with a licence that is incompatible with the GPL v2, such as a proprietary licence. A third version of the licence, GPL v3, was published by the FSF in 2007.

GPL v2 Main Features

The GPL v2, like nearly any licence, grants rights under certain provisos. These are briefly listed here. A licensee of GPL v2-licensed software can:

  • copy and distribute the program’s unmodified source code (Section 1)
  • modify the program’s source code and distribute the modified source (Section 2)
  • distribute compiled versions of the program, both modified and unmodified (Section 3) provided that:

  • all distributed copies (modified or not) carry a copyright notice and exclusion of warranty (Section 1 and 2)
  • all modified copies are distributed under the GPL v2 (Section 2)
  • all compiled versions of the program are accompanied by the relevant source code, or a viable offer to make the relevant source code available (Section 3)

The aims of the FSF can be seen clearly in these grants and provisos. They allow anyone to use, copy, distribute, and modify the software under certain conditions. The intent of the provisos is perhaps less obvious. They are intended to protect the software’s author from various potential problems. For example, someone could use the software for some critical purpose, and then try to sue the author if it failed; for this reason the insistence on exclusion of warranties is essential. Someone could pretend the software was their own work if the licence did not insist upon a full inclusion of the original copyright information. Someone could take the program, modify it (or not) then purport to relicense it in a way that made it non-free; for this reason the licence insists that the program itself and all programs based on it must be made available under the GPL v2 if they are made available at all. The source to the program, and all modified versions, must also be made available; if not, the granted right to modify is impossible to exercise.

GPL v2 Other Features

Every new recipient of a GPL v2-licensed piece of software receives their licence from the original licensor (or licensors, if the work has been modified by one or more people), no matter from where the software itself may have been obtained. As explicity stated in section 6, there is no sub-licensing of the rights granted from one recipient to another.

It follows from this, and the grants quoted above, that no-one can place additional restrictions on a GPL v2-licensed piece of software. If you choose to pass on the software to a third party, they will get the same licence that you did. If you have modified the software, you have already agreed to release the changes you make under the GPL v2, if they are released at all. As a result of this fact, it can be difficult to combine code that you receive under the GPL v2 with code that you receive under another licence. If the other licence contains any restrictions that are not present in the GPL v2, then the combination cannot be legally distributed. This licensing issue means that only a small set of very permissive licences are actually compatible with the GPL v2.

Section 7 of the GPL v2 explicitly spells out another consequence of the licence’s grants and conditions. If a court rules that someone distributing GPL v2-licensed software must do so with an additional restriction - for example a charge for use of a patent belonging to someone else - then this means that the distributor must stop distributing the GPL v2-licensed software entirely.

Common Myths about the GPL v2

Several myths have grown up around the GPL v2. Firstly, many people believe that modifying GPL v2-licensed software means that you are obliged to release your modified version to the world. This is not true. The GPL v2 simply states what you must do if you choose to release the modified code. You are at liberty to modify the GPL v2-licensed software in any way you like and keep your modifications for your own private use.

It is also commonly believed that GPL v2-licensed software cannot be bundled with non-GPL v2 software in a collection of software, or that if it is, then all the software must be relicensed under the GPL v2. Again, this is false. Section 2 of the GPL v2 states that such mere aggregations are not governed as a whole by the conditions of the licence.

Finally, it is very common to hear that the GPL v2 (and other general licences) are not binding on the licensee because there is not explicit agreement between the licensee and the licensor. This results from a misunderstanding of the way that such general licensing is intended to function. Section 5 of the GPL v2 expands upon this subject. The copyright of the material distributed under the GPL v2 belongs to the licensor. A potential licensee may not copy, adapt or distribute this material without some kind of licence from the owner. The GPL v2 supplies a route for a potential licensee to legally copy, adapt or distribute the material, provided that they abide by its conditions. Anyone who broke the conditions of the licence and then argued that they had not agreed to them, or that they were unaware of them, would also be arguing that they had no knowledge of a licence that permitted them to use the material in the first place.

What Does The GPL v2 Do?

These bullets are intended to summarise the salient points of the GPL v2. They are not intended as a full description of its features.

  • it ensures that modified versions of the code it covers remain free and open source
  • it attempts to spread copyleftism by mandating the use of the GPL v2 for distributed adaptations of GPL v2-licensed code

In 2007 the FSF published the third version of the GPL. However, the GPL v2 contiues to be wdely used.

OSS Watch has produced a document that highlights the main legal issues to consider when Making your code available under an open source licence.

Further reading

Links:

Related information from OSS Watch: