---
title: "Open Source Software Licenses 101: GPL v3"
description: "Explore the differences between GPL v2 and GPL v3, understand the key features of GPL v3, and discover why it's a popular choice among developers and companies. Learn about its use cases, compatibility with Apache 2.0, and the future of GPL v3 in OSS projects."
canonical_url: "https://fossa.com/blog/open-source-software-licenses-101-gpl-v3/"
markdown_url: "https://fossa.com/blog/open-source-software-licenses-101-gpl-v3.md"
content_type: "blog"
language: "en"
date_published: "2021-03-03"
date_modified: "2025-11-10"
author: "Kristen Miller"
organization: "FOSSA"
---

# Open Source Software Licenses 101: GPL v3

> Explore the differences between GPL v2 and GPL v3, understand the key features of GPL v3, and discover why it's a popular choice among developers and companies. Learn about its use cases, compatibility with Apache 2.0, and the future of GPL v3 in OSS projects.

The previous post in our series on [popular open source software (OSS) licenses](https://fossa.com/blog/what-do-open-source-licenses-even-mean.md) went through the ins and outs of the GNU [GPL v2 license](https://fossa.com/blog/open-source-software-licenses-101-gpl-v2.md), a copyleft license originally published by the [GNU Project](https://www.gnu.org/). However, version 2.0 is not the most recent — or necessarily the most popular — version of the GNU GPL (General Public License). That would be the [GNU General Public License Version 3.0](https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3)>), or GPL v3 for short.

Despite being released in 2007, 16 years after GPL v2, GPL v3 has quite a bit in common with its predecessor. Both require users to include a copy of the full license text and make available original source code when you distribute any binaries based on the licensed work, among other similarities. The key differences are the result of attempts to address and/or remedy what some considered weaknesses or loopholes in version 2.0.

So, how do these two versions of the GNU GPL compare? And why might a developer or software company choose to work with code licensed under GPL v3? We’ll go through these questions and more in this guide.

## GPL v3 License: The Basics

Like the GPL v2, GPL 3 is a strong [copyleft license](https://fossa.com/blog/all-about-copyleft-licenses.md), meaning that any copy or modification of the original code must also be released under the GPL v3. In other words, you can take the GPL 3’d code, add to it or make major changes, then distribute your version. However, your version is subject to the same license requirements, meaning that it must be under GPL v3 as well — anyone can see your modified code and install it for their own purposes.

### GPL v3 Requirements

The license terms of GPL v2 and GPL v3 are similar. They require users of the code to:

<ol className="list-decimal list-inside space-y-2 my-4">
  <li className="text-zinc-300">Include a copy of the full license text</li>
  <li className="text-zinc-300">State all significant changes made to the original software</li>
  <li className="text-zinc-300">Make available the original source code when you distribute any binaries based on the licensed work</li>
  <li className="text-zinc-300">Include a copy of the original copyright notice</li>
</ol>

In addition, GPL v3 states that anyone who includes the code as part of a consumer device has to include any installation information necessary to update and reinstall the software. (For a deeper dive on GPL v3's "User Products" clause, consider checking out our [on-demand webinar](https://www.youtube.com/watch?v=HlIRWHY1bxU) on the subject.)

### Using the Licensed Code

The GPL v3 license permits users of the code to:

- **Use the code for commercial purposes:** Like GPL v2, GPL v3 allows for use of the licensed code in commercial software.
- **Change the code:** Users can change or rework the code, but if they distribute these changes/modifications in binary form, they’re also required to release these updates in source code form under the GPL v3 license.
- **Distribute copies or modifications of the code:** As long as these modifications are also released under the GPL v3 license, they can be distributed to others.
- **Place warranty:** Distributors of the original code can offer their own warranty on the licensed software.

Like its predecessor, GPL v3 does _not_ allow users to sublicense the code. In other words, you cannot rework, alter, or add to the code, then close those changes off to the public. The “open source-ness” of the original code follows any update or addition.

## GPL v3 vs. GPL v2

GPL v3's addition of the "User Products" clause isn't the only difference between it and GPL v2. Here, we'll explore in detail the similarities and differences between the two licenses, including important provisions related to the grant of patent rights and compatibility with the [Apache License 2.0](https://fossa.com/blog/open-source-licenses-101-apache-license-2-0.md).

  <table className="w-full text-left border-collapse">
    <thead>
      <tr className="border-b border-white/10">
        <th className="py-3 pr-4 text-white font-medium align-top">Feature</th>
        <th className="py-3 pr-4 text-white font-medium align-top">GPL v2</th>
        <th className="py-3 text-white font-medium align-top">GPL v3</th>
      </tr>
    </thead>
    <tbody>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Release Date</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">1991</td>
        <td className="py-3 text-zinc-300 align-top">2007</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">License Text Required</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Yes</td>
        <td className="py-3 text-zinc-300 align-top">Yes</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Copyright Notice Required</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Yes</td>
        <td className="py-3 text-zinc-300 align-top">Yes</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Source Code Disclosure</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Required when distributing binaries</td>
        <td className="py-3 text-zinc-300 align-top">Required when distributing binaries</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Modification Disclosure</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Required (significant changes)</td>
        <td className="py-3 text-zinc-300 align-top">Required (significant changes)</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Patent Grant</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">General discussion, not explicit</td>
        <td className="py-3 text-zinc-300 align-top">Explicit grant from contributors</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Apache 2.0 Compatibility</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Not compatible</td>
        <td className="py-3 text-zinc-300 align-top">Compatible (one-way)</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Installation Information</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Not required</td>
        <td className="py-3 text-zinc-300 align-top">Required for consumer devices</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Commercial Use</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Allowed</td>
        <td className="py-3 text-zinc-300 align-top">Allowed</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Modification</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Allowed (must release under GPL v2)</td>
        <td className="py-3 text-zinc-300 align-top">Allowed (must release under GPL v3)</td>
      </tr>
      <tr className="border-b border-white/10">
        <td className="py-3 pr-4 text-white font-medium align-top">Distribution</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Allowed (must include source)</td>
        <td className="py-3 text-zinc-300 align-top">Allowed (must include source)</td>
      </tr>
      <tr>
        <td className="py-3 pr-4 text-white font-medium align-top">Sublicensing</td>
        <td className="py-3 pr-4 text-zinc-300 align-top">Not allowed</td>
        <td className="py-3 text-zinc-300 align-top">Not allowed</td>
      </tr>
    </tbody>
  </table>

### Grant of Patent Rights

Like the popular [permissive license](https://fossa.com/blog/all-about-permissive-licenses.md) Apache License 2.0, GPL v3 includes an explicit grant of patent rights. What does that mean, exactly? It means that the creator or contributor to the original licensed code essentially “gives away” their patent rights with regard to any subsequent reuse of the software. Normally, if you have a patent on something you created and someone manufactures, uses, sells, or imports it, you [could challenge them in court](https://google.github.io/opencasebook/patents/). That’s not the case if you have explicitly granted patent rights to other users, as all contributors do when licensing their code under GPL v3.

While the GPL v2 license does discuss patent rights, it does so more generally and without an explicit grant by code contributors. GPL v3 addresses this by clearly stating the patent grant in the [full text](https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3)#fulltext>) of the license.

### Compatibility With Apache 2.0

Let’s say a developer uses components from two different OSS libraries under two different licenses to build a piece of software. If the licenses are compatible — in other words, software components with different licenses can legally be distributed together — all is well and good, and the developer can distribute the aggregate work under the conditions of the stronger license. If they’re not, that can pose problems.

Unlike GPL v2, GPL v3 is compatible with the frequently used Apache License 2.0. This compatibility only works one way, however. Code licensed under Apache 2.0 may be combined with GPL 3-licensed code with the resulting work being licensed under GPL 3. The opposite — incorporating GPL 3 code into a larger work that is then licensed under Apache 2.0 — [is not permitted](https://www.apache.org/licenses/GPL-compatibility.html).

## GPL v3 Use Cases

Both GPL v3 and GPL v2 are still in use today, with some OSS projects staying with the earlier version and others adopting the most recent one. Below, we’ll go through a few reasons why developers and software companies might select the GPL v3 license for their open source work.

### For Developers

Research indicates that open source software contributors are [motivated](https://fossa.com/blog/top-security-takeaways-from-the-2020-foss-contributor-survey.md) more by a desire to learn and be part of the OSS community than by financial rewards. And many OSS developers believe in the philosophy that software should be free and accessible to everyone, which makes copyleft licenses like GPL v2 and GPL v3 particularly attractive.

GPL v3 might be the better option for developers who are either based abroad or gearing their project for a global audience, as it includes improvements with regard to [internationalization](https://www.gnu.org/licenses/rms-why-gplv3.en.html). And, if a developer is planning to incorporate Apache 2.0’d components into their work, they must select GPL v3 instead of GPL v2.

If you can’t decide which to choose, you can also use GPL v2 or any later version, which at this time includes GPL v2 or GPL v3.

### For Companies

For software organizations, a major differentiator between the two GPLs is the express grant of patent rights. Lawsuits are something no company wants, and the explicit patent grant included in GPL v3 provides legal protection and a sense of security.

The compatibility aspect of GPL v3 is a sticking point for companies as well as developers. Since Apache 2.0 is such a commonly used license, a software organization might want to keep the option of using Apache-licensed code open.

However, many companies shy away from using GPL v3 code in IoT or embedded systems because of its “installation information” requirements.

### Well-Known Uses of GPL v3

[Ansible](https://www.ansible.com/), the IT automation company acquired by enterprise OSS giant Red Hat in 2015, licensed its open source software under GPL v3 (or any later version of the GPL). Other well-known examples of projects under GPL v3 or later include image editor [GIMP](https://www.gimp.org/) and Unix shell [Bash](https://www.gnu.org/software/bash/), both of which were built as part of the GNU Project.

## Frequently Asked Questions About the GPL v3 License

### What is the GPL v3 License?

The GNU General Public License Version 3.0 (GPL v3) is a strong copyleft open source software license released in 2007 by the GNU Project. It requires that any modifications or derivatives of GPL v3-licensed code must also be released under the GPL v3 license, ensuring that the code remains open source.

### What are the main requirements of the GPL v3 License?

The GPL v3 requires you to include the full text of the license and the original copyright notice when distributing the code. It also requires you to state any significant changes, release modifications under the same GPL v3 license, make the source code available when distributing binaries, and provide installation information for consumer devices.

### What's the difference between GPL v3 and GPL v2?

Key differences include: GPL v3 has an explicit grant of patent rights from contributors, is compatible with Apache License 2.0, protects against tivoization (devices that prevent users from running modified software), requires installation information for consumer devices, and has improved internationalization. GPL v2 does not address these issues.

### Can I use GPL v3-licensed code in commercial software?

Yes, you can use GPL v3-licensed code in commercial software and charge money for it. However, you must make the source code available to anyone who receives the software, and any modifications must be released under the GPL v3 license.

### Do I need to share my modifications to GPL v3-licensed code?

Yes, if you distribute your modifications or software that includes GPL v3-licensed code, you must share your modifications under the GPL v3 license. However, if you only use the code internally and don't distribute it, you're not required to share your modifications.

### Is the GPL v3 License compatible with Apache 2.0?

Yes, GPL v3 is compatible with Apache License 2.0, but only in one direction. You can combine Apache 2.0-licensed code with GPL v3-licensed code, and the resulting work must be licensed under GPL v3. However, you cannot combine GPL v3 code into a work licensed under Apache 2.0.

### Does the GPL v3 License grant patent rights?

Yes, GPL v3 contains an explicit grant of patent rights from contributors to users. This means contributors grant patent rights to anyone who uses, modifies, or distributes the code, providing protection against patent lawsuits from contributors.

<script type="application/ld+json" dangerouslySetInnerHTML={{__html: JSON.stringify({
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "url": "https://fossa.com/open-source-software-licenses-101-gpl-v3/",
  "name": "GPL v3 License FAQ",
  "description": "Frequently asked questions about the GNU General Public License Version 3.0 (GPL v3), its requirements, differences from GPL v2, and how it compares to other open source licenses",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the GPL v3 License?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The GNU General Public License Version 3.0 (GPL v3) is a strong copyleft open source software license released in 2007 by the GNU Project. It requires that any modifications or derivatives of GPL v3-licensed code must also be released under the GPL v3 license, ensuring that the code remains open source."
      }
    },
    {
      "@type": "Question",
      "name": "What are the main requirements of the GPL v3 License?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The GPL v3 requires you to include the full text of the license and the original copyright notice when distributing the code. It also requires you to state any significant changes, release modifications under the same GPL v3 license, make the source code available when distributing binaries, and provide installation information for consumer devices."
      }
    },
    {
      "@type": "Question",
      "name": "What's the difference between GPL v3 and GPL v2?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Key differences include: GPL v3 has an explicit grant of patent rights from contributors, is compatible with Apache License 2.0, protects against tivoization (devices that prevent users from running modified software), requires installation information for consumer devices, and has improved internationalization. GPL v2 does not address these issues."
      }
    },
    {
      "@type": "Question",
      "name": "Can I use GPL v3-licensed code in commercial software?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, you can use GPL v3-licensed code in commercial software and charge money for it. However, you must make the source code available to anyone who receives the software, and any modifications must be released under the GPL v3 license."
      }
    },
    {
      "@type": "Question",
      "name": "Do I need to share my modifications to GPL v3-licensed code?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, if you distribute your modifications or software that includes GPL v3-licensed code, you must share your modifications under the GPL v3 license. However, if you only use the code internally and don't distribute it, you're not required to share your modifications."
      }
    },
    {
      "@type": "Question",
      "name": "Is the GPL v3 License compatible with Apache 2.0?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, GPL v3 is compatible with Apache License 2.0, but only in one direction. You can combine Apache 2.0-licensed code with GPL v3-licensed code, and the resulting work must be licensed under GPL v3. However, you cannot combine GPL v3 code into a work licensed under Apache 2.0."
      }
    },
    {
      "@type": "Question",
      "name": "Does the GPL v3 License grant patent rights?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, GPL v3 contains an explicit grant of patent rights from contributors to users. This means contributors grant patent rights to anyone who uses, modifies, or distributes the code, providing protection against patent lawsuits from contributors."
      }
    }
  ]
})}} />

## Related resources

- [Analyzing 5 Major OSS License Compliance Lawsuits](https://fossa.com/blog/analyzing-5-major-oss-license-compliance-lawsuits.md): Learn about five lawsuits that have helped shape global enforcement of open source software licenses.
- [May 2025 FOSSA Product Updates](https://fossa.com/blog/may-2025-product-updates.md): Learn about several recent FOSSA product updates, including container scanning and CycloneDX report improvements.
- [Annotate Dependencies with Context: Introducing Package Labels in FOSSA](https://fossa.com/blog/annotate-dependencies-context-introducing-package-labels.md): Introducing FOSSA Package Labels - a powerful way to annotate packages with contextual metadata, enabling more efficient and insightful reporting and filtering.
- [License Compliance, SBOM, and Vulnerability Management for Smaller Teams: FOSSA Business Tier](https://fossa.com/blog/fossa-business-tier.md): FOSSA introduces a new business tier tailored for smaller teams, offering flexible pricing and comprehensive features for SBOM, vulnerability management, and license compliance.
- [Fall 2024 Software Licensing Roundup](https://fossa.com/blog/fall-2024-software-licensing-roundup.md): Explore the significant licensing stories of fall 2024, including Elastics return to open source, the new fair source licensing model, and the PearAI controversy.

## Source

Canonical page: https://fossa.com/blog/open-source-software-licenses-101-gpl-v3/
