The goal of this article is to explain the terms and conditions of section 7 of the GNU General Public License, version 3.0, (aka GPLv3).
You can find a copy of GPLv3 on this server as well as on gnu.org
I am not a lawyer, this is not legal advice.
Section 7 of GPLv3 is a framework for adding terms to the license:
Additional permissionsare terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered
further restrictionswithin the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
It is common for people to want to modify the terms of a freedom-respecting licenses to suit their needs. Section 7 of allows them to do so to the GPL in a controlled manner. This section delineates which are permissible modifications to the terms of the license and which are not.
This mechanism is extremely flexible and is designed to cover many of the cases encountered over the years of discussing the GPL with the community.
Section 7 classifies these terms into one of three categories: additional permissions
, non-permissive additional terms
, and further restrictions
.
We'll start by discussing additional permissions
:
Additional permissionsare terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Additional permissions free the recipient from one or more of the conditions of the license. In fact, the Lesser GNU Public License version 3 (LGPLv3) is such a license; it consists of GPLv3 with a set of additional permissions.
Additional permissions can apply only to a part of the program. They do not necessarily need to cover the entire work.
Since the terms and conditions of the GPL serve to protect the freedom-respecting software community, it is important exceptions to those terms be carefully considered.
Only the copyright holder of a work can place additional permissions on that work. You can modify a work and place additional permissions on the portions you've added, but you can't place additional permissions on the parts for which you are not the copyright holder.
Anyone, however, can remove additional permissions. This is since without any additional permissions the work will revert to simply being under the term and conditions of GPLv3. The work then reverts to being more protected, and there is nothing wrong with that.
Here is an example of an additional permission one could write under section 7. Suppose that you want your GPLv3-licensed work to be distributed in combination with the program FOOBAR, but FOOBAR doesn't have source code available. Normally under these conditions, people distributing your work would not be able to do so because they are required by the terms of GPLv3 to provide the complete corresponding source, and that would include the source for FOOBAR. Assuming that the license terms of FOOBAR also permit it, you could craft a narrow exception using section 7 of GPLv3:
In contrast to the above, non-permissive additional terms add to what GPLv3 already requires. GPLv3 only allows you to add these from predetermined set of acceptable options since they could be potentially too restrictive and harm the community:
Only the copyright holders of a work can add non-permissive additional terms to it, and nobody can remove them except their respective copyright holder. If you modify a work, then you can non-permissive additional terms to cover the potions you've added.
further restrictionswithin the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
Restrictive terms may be removed at your discretion. However, communicating with the copyright holder about the terms is a good idea.
This is a subtle point and would benefit a detailed explanation. Suppose you were working on a GPLv3-license work for which you are not the copyright holder. You want to add some code, but that code carries further restrictions (as defined above). You can still add the material, just as long as as the license of that code permits relicensing under GPLv3 or a compatible license, without any of those restrictions.
This allows code which is under a license with restrictive terms to still be usable in a piece of freedom-respecting software if it has a clause in its licensing permitting that you strip away those restrictions and apply the GPL instead.
Section 7 of GPLv3 ends with a requirement to place any additional terms, restrictive or otherwise, in a relevant place where the recipient can readily find them. This is to address concerns that recipients of GPLv3-licensed works may not be aware that the work carries additional terms.
Section 7 of GPLv3 is a powerful and flexible way to modify the license to suit the myriad ways freedom-respecting software is used and distributed. Unfortunately, many people are not aware that the GPL contains this mechanism and therefore may wrongfully conclude that the GPL isn't appropriate for their particular application.