Skip to main content
See other licenses

GPL-2.0-only

GNU GPL v2.0 only

GPL-2.0-only is strong copyleft pinned to version 2. Recipients cannot move the work to GPLv3, so Apache-2.0 does not combine with it.

On this page

What it does

GNU GPL v2.0 only is the copyleft grant without the 'or later' upgrade. You may run, study, change and share the program, including inside a paid product. The moment you convey a binary, recipients can ask for the complete corresponding source of the combined program under GPL-2.0-only, build scripts included. SPDX used to list this as the bare id GPL-2.0. Git, BusyBox and the Linux kernel use this form. Because the grant cannot be read as GPLv3, Apache-2.0 code does not combine cleanly with it.

Details

Treat 'only' and 'or later' as two licenses. A package that declares GPL-2.0-only while shipping the or-later text is a mismatch, not a rounding error. Version 2 has no express patent grant, no Installation Information duty, and no 30-day cure. Section 3 still lets you accompany a binary with a written offer, valid for at least three years, to give corresponding source. Linking questions are the same as under GPL-2.0-or-later: the FSF reads static and dynamic linking as one combined work.

Pros

  • Clear rules for sharing improvements. Recipients of a binary can ask for the corresponding source.
  • Widely understood by legal and engineering. Compatibility questions have a large public record.

Cons

  • Shipping a combined binary usually means offering corresponding source under the same license.
  • Mixing with Apache-2.0 is a known trap on this version, because the grant cannot be read as GPLv3.

What it allows and requires

Choose a category to see the full grant in one scannable list. Permissions show what the license allows, limits show what it withholds, and obligations show the conditions your release process must satisfy.

Permissions

  • Commercial use

    You may ship the code inside a paid product. The license does not restrict commercial use.

  • Modify

    You may change the code, including keeping those changes private, unless a later obligation says otherwise.

  • Distribute

    You may give copies to others. Distribution is what usually turns notice and source duties into real work.

  • Private use

    Use inside your company, including internal forks, does not by itself trigger distribution duties.

What GPL-2.0-only requires when you ship

When you distribute a binary that includes GPL-2.0-only code, notice still travels with the copy, and the corresponding source has to be available under the same license. Internal use without a copy leaving the company is a different situation. The list below is the shipping work: what a recipient of that binary can demand, and what you record so a buyer can see it.

  1. You meet the terms while nobody outside your team receives a copy. Running and modifying GPL-2.0-only code on your own servers triggers no source duty, because version 2 has no network clause.

  2. You meet them on a shipped binary when every recipient can get the complete corresponding source of the combined program under GPL-2.0-only. The same delivery or a written offer valid for three years both work.

  3. You meet the notice terms when the original copyright lines and the GPL-2.0 text travel with the copy, and each file you changed carries a note saying that you changed it and when.

  4. You keep the grant intact when you do not mix this code with Apache-2.0 in one combined work. The missing 'or later' token is what blocks that combination.

  5. You have closed the linking question when counsel has answered it. The FSF reads both static and dynamic linking as creating one combined work, and that reading has never been settled in court.

The duties named in GPL-2.0-only

Notice still travels with the copy. On top of that, GPL-2.0-only names a source duty. These are the conditions in the text. The how-to above is when they become real work.

Include copyright

Keep copyright notices on distributed copies.

Include license

Give recipients a copy of the license with the program.

Disclose source

When you distribute a binary of a covered work, corresponding source has to be offered in the way the license describes.

Same license

The combined work you distribute has to stay under this license. You cannot close the covered work with a more restrictive grant.

Things to be aware of

  • Recording the component as GPL-2.0-or-later because SPDX used to say GPL-2.0. Git and BusyBox headers that say 'only' are a different grant.
  • Dropping Apache-2.0 into the same binary and calling it compatible. Version 2 only cannot be read as GPLv3, which is the usual Apache path.
  • Offering source for the GPL package alone. The obligation covers the corresponding source of the whole program you shipped, including build scripts.
  • Writing a source offer that nobody owns. Name the repository or the postal address before release, and keep it reachable for the full three years.

What the GNU GPL v2.0 only does not do

Search results often flatten GNU GPL v2.0 only into a slogan. These are the usual misreads. GPL-2.0-only is a grant with conditions, not a permission to skip the paperwork below.

  • GPL-2.0-only does not let you keep the combined program closed if you distribute it. The reciprocal duty reaches the work as a whole under version 2, not under GPLv3.
  • It does not include an 'or later' token. Recipients cannot elect GPLv3 terms, and that is the usual reason Apache-2.0 stays out of the tree.
  • Network use alone is not distribution. Running a GPL-2.0-only program as SaaS, without AGPL, does not by itself trigger the source duty.

How GPL-2.0-only differs from nearby licenses

These licenses are often confused with GPL-2.0-only, but their release duties differ. Each row summarizes what the license requires when you ship. Open the linked page for the full checklist.

GPL-2.0-only
GPL-2.0-only is strong copyleft pinned to version 2. Recipients cannot move the work to GPLv3, so Apache-2.0 does not combine with it.
GPL-2.0-or-later
GPL-2.0 asks for source when you hand someone a binary. Running it on your own servers triggers nothing. The trigger is shipping a copy, not merely using it.
GPL-3.0-only
GPL-3.0 keeps the source duty on distributed binaries and adds a patent grant, an anti-lockdown rule for consumer devices, and a cure period.
Apache-2.0
Permissive like MIT, plus an express patent grant. The catch is the NOTICE file: it has to travel inside the binaries you ship.

Common questions about GNU GPL v2.0 only

Answers to common questions about what GNU GPL v2.0 only requires, when its duties apply, and what evidence belongs with a release.

What is the GNU GPL v2.0 only?

GNU GPL v2.0 only is the copyleft grant without the 'or later' upgrade. You may run, study, change and share the program, including inside a paid product. The moment you convey a binary, recipients can ask for the complete corresponding source of the combined program under GPL-2.0-only, build scripts included. SPDX used to list this as the bare id GPL-2.0. Git, BusyBox and the Linux kernel use this form. Because the grant cannot be read as GPLv3, Apache-2.0 code does not combine cleanly with it.

What does GPL-2.0-only require when you ship a product?

You meet the terms while nobody outside your team receives a copy. Running and modifying GPL-2.0-only code on your own servers triggers no source duty, because version 2 has no network clause. You meet them on a shipped binary when every recipient can get the complete corresponding source of the combined program under GPL-2.0-only. The same delivery or a written offer valid for three years both work. You meet the notice terms when the original copyright lines and the GPL-2.0 text travel with the copy, and each file you changed carries a note saying that you changed it and when. You keep the grant intact when you do not mix this code with Apache-2.0 in one combined work. The missing 'or later' token is what blocks that combination. You have closed the linking question when counsel has answered it. The FSF reads both static and dynamic linking as creating one combined work, and that reading has never been settled in court.

Does hosting a product that uses GPL-2.0-only trigger extra duties?

Hosting alone usually does not trigger the source duty for GPL-2.0-only. Shipping a binary, a container, or an on-prem build does. Notice still travels with any copy you hand over.

Does linking to GPL-2.0-only force me to open my application?

For strong copyleft such as GPL-2.0-only, the FSF reads static and dynamic linking as one combined work when you distribute the result. Shipping a binary that includes GPL-2.0-only code is the usual trigger. Internal use with no copy leaving the company is a different situation. Read the actual text, not the family nickname.

What is corresponding source for GPL-2.0-only?

Corresponding source is the source a recipient needs to build and run the same binary, including scripts and interface files the license names. Hosting a repository URL can be an offer. The offer has to match what you actually shipped. SourceTrust records that a person on your team confirmed the offer. It does not publish your source and does not host a mirror.

How is GPL-2.0-only different from GNU GPL v2.0 or later?

GPL-2.0-only asks this: GPL-2.0-only is strong copyleft pinned to version 2. Recipients cannot move the work to GPLv3, so Apache-2.0 does not combine with it. GNU GPL v2.0 or later asks this: GPL-2.0 asks for source when you hand someone a binary. Running it on your own servers triggers nothing. The trigger is shipping a copy, not merely using it. Open the GNU GPL v2.0 or later page for what that license requires when you ship. Do not treat the SPDX ids as interchangeable because the short names look similar.

Where do I record GPL-2.0-only for a buyer?

The catalog marks GPL-2.0-only as copyleft, so a source offer item appears on the project checklist when the project's distribution context is Distributed binary or Mixed. A SaaS-only project sees no item for it. Nobody ticks the item for you. The fetcher compares the license text inside the published artifact against the declared id, so an 'or later' text under an 'only' id lands as a mismatch. SourceTrust does not publish your source.

Where do I record GPL-2.0-only for a buyer?

The catalog marks GPL-2.0-only as copyleft, so a source offer item appears on the project checklist when the project's distribution context is Distributed binary or Mixed. A SaaS-only project sees no item for it.

Nobody ticks the item for you. The fetcher compares the license text inside the published artifact against the declared id, so an 'or later' text under an 'only' id lands as a mismatch.

SourceTrust does not publish your source. Read /docs/reviewing-component for the review flow.

See also

The hub is the pillar for this cluster. Sibling licenses are the other spokes. Product FAQ links explain how SourceTrust records the duty, not the license text itself.

Practical guidance for procurement review, not legal advice. Confirm high-stakes use with counsel.

Ship the proof.

Import GNU GPL v2.0 only and the rest of what you ship. Free to import and review. You only pay when you publish.

Start for free

Cookies on sourcetrust.dev

We use essential cookies for security, including abuse prevention on our site scan and walkthrough request form. With your permission, we also use optional analytics and diagnostics (Google Tag Manager on this site, and the Sentry browser SDK on the SourceTrust application when configured). See our cookie policy.