GPL-3.0 Guide

The Free Software Foundation released GPL-3.0 in 2007. GPL-3.0 has obligations similar to GPL-2.0, but additionally requires the provision of Installation Information when distributing with a User Product.

SPDX Identifier: GPL-3.0-only or GPL-3.0-or-later

License Text in the Source Code

Open source under the GPL-3.0 license generally includes the following text at the top of the source code.

Copyright (C) <year> <name of author>
 
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>

Obligations by Use Case

Case 1. Redistribution in Source Form

When redistributing open source under the GPL-3.0 license in source form, observe the following.

1-1 Notice Obligation

  • Provide a copyright notice
  • Provide a warranty disclaimer
  • Provide a copy of the license

That is, redistribute while keeping the copyright/license information stated in the source code intact.

Case 2. Redistribution in Binary Form

When building open source under the GPL-3.0 license and redistributing it only in binary form, observe the following.

2-1 Notice Obligation

  • Provide a copyright notice
  • Provide a warranty disclaimer
  • Provide a copy of the license

Generate an open source notice that includes the above and include it when redistributing the binary.

2-2 Obligation to Provide Source Code

Provide the source code corresponding to the binary. In doing so, observe the following.

  1. GPL-3.0 requires that derivative works also apply GPL-3.0 and disclose their source code. Referring to the content below, disclose the source code of both the GPL-3.0 open source and the derivative work.
  1. Provide a build environment that allows binary users to build an identical binary from the disclosed source code. This includes the following.
    • Tool chain information
    • Build scripts
    • Build instructions (README)

Instead of the source code, you may provide a Written Offer. It must include the following statements.

  1. The written offer is valid for 3 years after the product is sold.
  2. It is provided to anyone.
  3. No charge is made. (excluding costs incurred for delivering the source)

2-3 Obligation to Provide Installation Information

If you distribute the binary with a User Product, provide Installation Information.

  • User Product: An embedded device such as an electronic appliance
  • Installation Information: All the information and methods that a user needs to build the source code and reinstall it on the product

Major Improvements over GPL-2.0

GPL-3.0 retains the core principles of GPL-2.0 while improving the following.

  • Explicit patent grant: Explicitly stipulates the grant of contributors’ patent licenses
  • Anti-Tivoization: Adds the obligation to provide Installation Information for User Products
  • Internationalization: Improves legal terminology so it can be applied worldwide

License Compatibility

Compatibility with Major Licenses

Combining LicenseCompatibleNotes
MITCompatibleThe entire project becomes GPL-3.0
Apache-2.0CompatibleThe entire project becomes GPL-3.0
GPL-2.0ConditionalCompatible only if GPL-2.0-or-later
LGPL-3.0CompatibleThe LGPL portion can remain LGPL
AGPL-3.0CompatibleThe entire project becomes AGPL-3.0
ProprietaryIncompatibleCannot be used in commercial software

References