GNU GPL Version 3: What Changed and GPLv2 vs GPLv3

GNU GPL version 3 (GPLv3) is the current version of the GNU General Public License, the best-known free software license. The Free Software Foundation (FSF) released it on 29 June 2007, and we covered the release at the time. This guide explains what the GPL is, what version 3 changed, and how GPLv3 compares with GPLv2 for developers today.

GNU GPL version 3 explained

Quick answer: GPLv3 is a free, copyleft license: anyone may use, study, share and change the software, but distributed copies and modified versions must stay under the same license with source code available. Compared with GPLv2, it adds protection against tivoization and patent deals and is compatible with the Apache License 2.0. GPLv2 remains valid, and many projects still use it.

What is the GNU General Public License?

The GNU General Public License is a free, copyleft license for software and other kinds of works. It guarantees your freedom to share and change all versions of a program and makes sure it remains free software for all its users. When we wrote about it in 2007, the FSF described the GPL as the most widely used free software license, covering a large share of all free software packages.

Richard Stallman released version 1 in 1989 and version 2 in 1991. With increasing use of free software, changing computing practices and new threats, version 3 became necessary.

What changed in GNU GPL version 3

The FSF’s essay Why Upgrade to GPLv3 explains that upgrading is a choice. GPLv3 was designed to deal with problems that GPLv2 did not cover:

  • Tivoization: stops devices from using GPL software while blocking users from running modified versions on that hardware.
  • Digital Restrictions Management (DRM): limits how GPL software can be used to enforce DRM.
  • Patents: adds explicit patent protection and targets discriminatory patent deals.
  • Apache compatibility: GPLv3 is compatible with the Apache License 2.0, which earlier versions were not.
  • Better internationalization: wording that works better across different countries’ laws.
  • Gentler termination: a chance to fix accidental violations instead of losing the license at once.
  • Peer-to-peer sharing: clearer rules for sharing object code through networks like BitTorrent.

The FSF also updated the GNU Lesser General Public License (LGPLv3), which takes the GPLv3 terms and adds extra permissions for linking libraries. You can read the full GNU GPL version 3 text on the GNU website.

GPLv2 vs GPLv3

GPL version 2 remains a valid license, and no disaster happens when some programs stay on GPLv2 while others move to GPLv3. Key points:

  • “Or later” clause: code licensed as “version 2 or (at your option) any later version” can be used under GPLv3. Code under “GPLv2 only” cannot be combined with GPLv3 code.
  • Linux kernel: stays under GPLv2 only.
  • WordPress: is licensed GPLv2 or later, which is why WordPress plugins and themes are usually GPL too (see our interview with a WordPress theme reviewer).
  • Apache 2.0 code: can be combined with GPLv3 code, but not with GPLv2-only code.

How to use GPLv3 in your project

  1. Add a copy of the license text, usually as a file named COPYING or LICENSE.
  2. Put a short notice at the top of each source file saying the program is licensed under GPLv3 (or “version 3 or later”).
  3. When you distribute the software, provide the complete source code or a written offer for it.
  4. For server software that users reach over a network, consider the GNU Affero GPL, which also covers network use.

Want to try GPL software? Browse our list of open source applications for Windows, and see the Free Software Foundation for more on free software.

FAQ

When was GNU GPL version 3 released?

The FSF released GPLv3 on 29 June 2007.

Can I sell GPL software?

Yes. The GPL allows selling copies, but buyers get the same freedoms, including the source code and the right to share it.

Is GPLv3 compatible with GPLv2?

Only when the GPLv2 code says “or any later version”. GPLv2-only code can’t be combined with GPLv3 code.

What is the difference between GPL and LGPL?

The LGPL adds permissions so non-GPL programs can link to an LGPL library, while the GPL requires the whole combined program to be GPL.

Found this useful? Share it with someone who needs it.

Get our free weekly email: new tech guides and tools, no spam.

New and updated tech guides, a free tool worth bookmarking and one useful pick, once a week. No spam, unsubscribe anytime.

One email a week. Unsubscribe anytime. See our privacy policy.

Fresh Tech Guides

Leave a Reply

Your email address will not be published. Required fields are marked *