Libreguide.org

Relicensing versus Compatibility

Introduction

Relicensing and license compatibility are two fundamental aspects of how licensing works in our community. However, there is often only a hazy understanding of what these terms mean. This article explains both concepts, what they have in common, and how they differ.

Relicensing

The copyright holder of a work has a government-granted, exclusive property right over that work. One of the exclusive rights granted to the copyright holder is to license that work to others.

A copyright holder in our community chooses a freedom-respecting license, applies it to their work, and releases it to the community. The community is then free to further study, modify, and further distribute that work as long as they abide by the terms and conditions of the license when they do so.

The copyright holder of a work can then release future copies and versions of a work under a different license. This is called relicensing. Just as only the copyright holder can apply the original license to a work, only the copyright holder can relicense the work.

Explicitly Permitted Relicensing

Some licenses have terms and conditions which permit a recipient to further distribute the copy in their possesion under a different license. For example, all versions of the GPL allow the copyright holder to add the option for recipients to change the license to a later version of the GPL (for instance from GPLv2 to GPLv3.) However, this is optional and at the discretion of the copyright holder. They may license their work without adding the option for others to upgrade the work.

Another example is the Creative Commons Attribution-Sharealike 4.0 license, which has an option which allows a recipient to change the license of their copy of the work to GPLv3. There are a number of other licenses which have similar language.

In these cases the copyright holder has explicitly permitted further distribution under a different license. For example, if a copyright holder licenses their work under GPLv2 with the option to upgrade to GPLv3, then they have effectively licensed their work under either GPLv2 or GPLv3. A recipient of such a work can choose to further distribute their copy under GPLv3 instead of GPLv2. In this case they are taking advantage of an existing licensing option explicitly granted to them by the copyright holder.

Note the subtle difference here: true relicensing can only be done by the copyright holder, since they can freely change the license of the work to any other license. Explicitly permitted relicensing, in contrast, is when a non-copyright holder exercises the right given to them by the copyright holder to further distribute the work under a different license. The non-copyright holder is limited to the permitted changes in licensing.

What is Compatibility?

A freedom-respecting license is a set of terms and conditions under which you may modify and share a work. A license may have only a few terms and conditions, such as the Modified BSD license, or many, like in the Mozilla Public License 2.0.

Licenses are called compatible if their respective requirements aren't in contradiction. Independent works can be combined when their licenses are compatible since it is possible to abide by all of the terms of all of the licenses involved.

An example of compatibility is GPLv3 and the Modified BSD licenses: sections 1 and 2 of the Modified BSD license do not contradict the GPL's requirements for distributing either source or binary forms of a work. Section 3 of the Modified BSD license has a condition which is explicitly permitted in section 7 of GPLv3. Since there are no contradictions, you can take two independent works, one under GPLv3 and one under the Modified BSD license and distribute them together as a whole.

Licenses are called incompatible if there is a contradicting requirement between them. Incompatibility stops you from combining the independent pieces of softwate into a single, larger work.

To explain incompatibility, let us examine why the GPLv3 and CPAL licenses are incompatible: The Common Public Attribution License Version 1.0 (CPAL) has the condition in section 3.1 that requires you to distribute source code only under the CPAL license. GPLv3 has a condition under section 5(c) that the work as a whole must licensed under the terms of the GPL. Obviously, you cannot satisfy both licenses at once: the source cannot be released only under GPLv3 and also only under CPAL. These contradicting terms make the two licenses incompatible.

How Does Compatibility Work?

We can use the example of GPLv3 and the Modified BSD licenses to see how compatibility works in practice. GPLv3 and the Modified BSD licenses are indeed compatible: we can combine two pieces of software, one under GPLv3 and the other under the Modified BSD license, and distribute that combination as a single, larger work. But how does that look in practice? What is happening under the proverbial hood?

In order to distribute the combined work we will have to satisfy all of the conditions of GPLv3, and all of the conditions of the Modified BSD license.

To comply with the conditions of the Modified BSD license, we'll do things like preserve the copyright notice, preserve the text of the license, and remember not to use the name of the author for promotion without their consent.

To comply with the GPLv3 side we will need to do a lot more. But everything that GPLv3 requires of us is either in agreement with an existing requirement of the Modified BSD license, or an additional protection of freedom that doesn't contradict or conflict with any requirement of the Modified BSD license. It is this situation which gives people the false impression that the Modified BSD licensed work has been relicensed to be under GPLv3. The Modified BSD licensed part is still in there. But everything it says simply agrees with with the GPL, so it is hard to notice it.

There is proof that the the Modified BSD licensed part of the larger work survives: after the conditions of both licenses have been satisfied and the work has been distributed, the recipient can then extract the Modified BSD licensed part and distribute it independently and with its original license intact. Neither the GPLv3 licensed part, not the Modified BSD licensed part have been relicensed; they have just been distributed in a mutually compatible manner.

Conclusion

Relicensing is when the copyright holder of a work changes the license in a way only the copyright holder is permitted. But there are also ways for the copyright holder to permit others to make certain prescribed licensing changes.

License compatibility is when two works with different licenses can be combined and distributed as a larger whole while satisfying all of the requirements of all of the licenses involved.

The hope is that armed with this knowledge, the community can proceed with confidence to write ever more freedom-respecting software. Now, go hack a good hack.

Copyright © 2021-2023 Yoni Rabkin
I am not a lawyer, the above is not legal advice.
This work is licensed under the GNU General Public License, Version 3, or (at your option) any later version
Generated by blaze version 1 on 2023-12-11T17:13:33-0500, build number 133.
$ git clone https://git.sr.ht/~yrk/blaze