The GNU General Public License v3 - An Overview

by Rowan Wilson on 28 May 2012


The GNU General Public License v3 (GPL v3 for short) is the next version of the extremely popular free and open source licence the GPL v2. It updates its predecessor to reflect the changes that have taken place in the IT world over the sixteen years that separate them. This document attempts to draw together the main features of the GNU General Public License v3 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

GPL v3 History

The GPLv2 licence dates back to 1991 and when the FSF started thinking about a new revision in 2006 it was obvious that information technology had changed enormously in the intervening years. The Internet had become a mass-market phenomenon, and free and open source software had shifted from being a minority interest to underpinning IT systems of all kinds the world over. The popularity of the GPL v2 had grown and grown, particularly as a result of its use on the free and open source operating system GNU/Linux. Despite this extraordinary success, certain aspects of the GPL v2 were beginning to show their age.

Therefore during 2006, the Free Software Foundation ran a consultative exercise with software authors and users in the community and industry to discuss how to modernise the GPL v2.

GPL v3 Main Features

The resulting licence, the GPL v3, is broadly similar in effect to GPL v2. The changes made were chiefly in three areas.

Firstly, GPL v2 software had started to be distributed in encrypted forms, perhaps as the operating software of a hardware device. By doing this, the device manufacturers hoped to prevent end users from modifying that software and perhaps breaking the device. The GPL v2 did not seek to restrain this kind of distribution; provided the source code to the encrypted software was made available you were in compliance. However this could be seen as inhibiting the ability of the software’s recipients to modify and use the GPL v2 code they were receiving. Therefore the GPL v3 made it obligatory for anyone distributing software it covered to also distribute any additional information or keys necessary to modify it and run the modified copies.

Secondly, as a result of the growing use of the internet, many countries had introduced tougher laws to deal more stringently with the modification of software or data. Such modifications were often undertaken in order to copy the material in question, ‘cracking’ digital protection schemes. The new laws made circumventing such schemes an offence in itself, even if it did not also include an act of copying. For many in the free and open source software community this legislating against modification seemed a retrograde step. While the GPL v3 authors could not directly affect the enforcement of these laws, they could change their licence so that no such scheme implemented using GPL v3 software would be protected by it.

Thirdly, an important protection against software patent litigation had been partially circumvented in the GPL v2. Under GPL v2, if a distributor is made to pay a licence fee to distribute the GPL v2 code - for example because it has been found to embody someone else’s patent - then they must cease distributing altogether. This provision made suing over software patent infringement in GPL v2 software less appealing; you could stop its distribution, but not gain any ongoing fees through some kind of licensing deal with the distibutor. However this provision in the GPL v2 only covered the direct relationship between patent owner and distributor. Less direct deals - for example agreeing not to sue each other’s customers - were not prevented. Using deals like this, companies could create ‘favoured’ versions of GPL v2 software which effectively had lower risks of patent litigation for their customers. GPL v3 stipulates that any such ‘favours’ must be extended to the entire community, undermining their effectiveness as a tool to realise business advantage through threat of litigation.

Finally various small issues were fixed, including unintended incompatibilities with some other free and open source software licences, ambiguous legal language and clarification of responsibilities around source code distribution.

Of course, updating such a popular licence is not without problems. Simply because the new licence exists, it does not mean it will be used. For software that already declared itself to be under ‘GPL v2 or later’ (a form of words that the Free Software Foundation had been recommending for some time) a user could automatically choose to take the software under the new licence. For other software that was declared to be solely under the GPL v2, the licensors would have to explicitly distribute their code under the new licence for it to take effect. Many projects have converted in this way, but there have been some notable refusals. The Linux kernel, for example, the core element of the GNU/Linux operating system, remains under GPL v2 only.

The GPL v3 was finalised and published in 2007.

What Does The GPL v3 Do?

These bullets are intended to summarise the salient points of the GPL v3. 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 v3 for distributed adaptations of GPL v3-licensed code
  • it attempts to provide better solutions than the GPL v2 to certain problems

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


Related information from OSS Watch: