Is it correctly understood that the REUSE linting doesn't address license compatibility?
I tried, as a experiment, to place the "models.py" in a Django app under GPL-3.0-only and the "views.py" under GPL-2.0-only, which is definitely an incompatible usage, and the linting passed.
Are there any plans to consider license compatibility in REUSE, or is that considered out of scope? (That would, of course, be fair enough.)
Best, Carsten
Hello Carsten,
I am not an expert.
Am 18.06.2024 09:28 schrieb Carsten Agger:
I tried, as a experiment, to place the "models.py" in a Django app under GPL-3.0-only and the "views.py" under GPL-2.0-only, which is definitely an incompatible usage, and the linting passed.
Why is that incompatible?
You license one file under GPL3 and the other under GPL2. The license goes to the specific file and not to the whole project/repo.
Best, Christian
Hi Christian
Thanks for your response!
On 18.06.2024 09.34, c.buhtz@posteo.jp wrote:
I tried, as a experiment, to place the "models.py" in a Django app under GPL-3.0-only and the "views.py" under GPL-2.0-only, which is definitely an incompatible usage, and the linting passed.
Why is that incompatible?
You license one file under GPL3 and the other under GPL2. The license goes to the specific file and not to the whole project/repo.
That's incompatible because the two files, being in the same Django app, are parts of a "combined work" consisting of all the files in the Django application.
If I were to have borrowed a "models.py" under GPL 2.0 only from a different project and wanted to integrate it in a Django app with other Python files under GPL 3.0 only that would not be legal, since the licenses are not compatible. At least that's my understanding.
Best, Carsten
Am 18.06.2024 09:43 schrieb Carsten Agger:
If I were to have borrowed a "models.py" under GPL 2.0 only from a different project and wanted to integrate it in a Django app with other Python files under GPL 3.0 only that would not be legal, since the licenses are not compatible.
The licences don't need to be compatible because they don't interfere. The license is specific to the file not the project. And the term "only" does not refer to the compatibility to other licenses but just to the fact that you are not allowed to upgrade the license of that file to v3 or v4 or what ever. Because by default the GPL allow to upgrade the license version.
Is it correctly understood that the REUSE linting doesn't address license compatibility?
Yes, you are right with that assumption, Carsten. REUSE's focus is mostly to enable developers to communicate the licensing and copyright of their projects in an effective, yet complete manner. It is not designed to help with any other parts of the large compliance picture, especially as there are a number of FOSS and proprietary tools that cover this.
For your interest in license compatibility, you might want to have a look at flict https://github.com/vinland-technology/flict. IIRC it uses the OSADL license compatibility matrix and can also use other sources of such information. It may also help with finding a suitable outbound license for the combined work.
Please note that my experience with the tool is heavily limited, but I know its author :)
Best, Max
________________________________
Pflichtangaben anzeigenhttps://www.deutschebahn.com/pflichtangaben/20240601
Nähere Informationen zur Datenverarbeitung im DB-Konzern finden Sie hier: https://www.deutschebahn.com/de/konzern/datenschutz
On 18.06.2024 13.46, Max Mehl wrote:
Is it correctly understood that the REUSE linting doesn't address license compatibility?
Yes, you are right with that assumption, Carsten. REUSE's focus is mostly to enable developers to communicate the licensing and copyright of their projects in an effective, yet complete manner. It is not designed to help with any other parts of the large compliance picture, especially as there are a number of FOSS and proprietary tools that cover this.
Thanks, Max! That also makes good sense. I just wondered because it struck me as an obvious thing to do. (This is not meant as a feature request, I think that it's a reasonable choice to have the actual licensing as the scope for REUSE.)
Best regards, Carsten
Hi Carsten,
In fact I am working on a rather big PR which adds this item to the FAQ! :)
https://github.com/fsfe/reuse-website/pull/68
Extract:
## How does license compatibility work? {#license-compatibility}
Free Software licenses are all different. Many licenses are compatible, meaning that you can use code from multiple licenses in the same project and still be able to respect the terms of each license simultaneously.
Some licenses are [less permissive than others](#copyleft-permissive-license), meaning that a combined work containing code under both licenses must effectively respect the terms of the least permissive license.
Some licenses have mutually exclusive requirements. For example, the [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/) license has a clause that disallows a work to be used for commercial purposes, and the [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.html) has a clause that says that you may not impose additional restrictions that aren't in the GPL license. Because the GPL license has no clause regarding commercial purposes, these two licenses cannot be respected simultaneously, and they are considered incompatible.
Exactly which licenses are compatible is a difficult question, and it also depends on what you want. Integrating work that is licensed differently may mean having to respect license terms which you do not want to respect.
Specifically as pertains to the GNU GPL, [this GNU article](https://www.gnu.org/licenses/license-compatibility.html) and [GNU's license list](https://www.gnu.org/licenses/license-list.html) may help you work out compatibility.
It is important to note that REUSE does not help you resolve license compatibility. REUSE's goal is to help you comprehensively declare your licensing metadata, not to check whether that metadata is correct or valid. You need different tools and processes for that.
This was actually a rather difficult FAQ item to write, because the topic is so big and complicated, and I don't want the answers to be too long and boring.
Yours with kindness, Carmen
This was actually a rather difficult FAQ item to write, because the topic is so big and complicated, and I don't want the answers to be too long and boring.
Hello Carmen. There's no way your appointments on this can be too-long-and-boring. The issue is really a gray area and most people, even in the FOSS community, often get confused (me included). I warm-heartedly encourage you to make this PR as long as you see fit. Even if not in the scope of the REUSE tool, at least some references to further reading will be really welcome.
[]s monaco
On Thu, Jun 20, 2024 at 9:42 AM Carmen Bianca BAKKER carmenbianca@fsfe.org wrote:
Hi Carsten,
In fact I am working on a rather big PR which adds this item to the FAQ! :)
https://github.com/fsfe/reuse-website/pull/68
Extract:
## How does license compatibility work? {#license-compatibility}
Free Software licenses are all different. Many licenses are compatible,
meaning
that you can use code from multiple licenses in the same project and
still be
able to respect the terms of each license simultaneously.
Some licenses are [less permissive than
others](#copyleft-permissive-license),
meaning that a combined work containing code under both licenses must effectively respect the terms of the least permissive license.
Some licenses have mutually exclusive requirements. For example, the [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/) license
has a
clause that disallows a work to be used for commercial purposes, and the [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.html) has a
clause that
says that you may not impose additional restrictions that aren't in the
GPL
license. Because the GPL license has no clause regarding commercial
purposes,
these two licenses cannot be respected simultaneously, and they are
considered
incompatible.
Exactly which licenses are compatible is a difficult question, and it
also
depends on what you want. Integrating work that is licensed differently
may mean
having to respect license terms which you do not want to respect.
Specifically as pertains to the GNU GPL, [this GNU article](https://www.gnu.org/licenses/license-compatibility.html) and
[GNU's
license list](https://www.gnu.org/licenses/license-list.html) may help
you work
out compatibility.
It is important to note that REUSE does not help you resolve license compatibility. REUSE's goal is to help you comprehensively declare your licensing metadata, not to check whether that metadata is correct or
valid. You
need different tools and processes for that.
This was actually a rather difficult FAQ item to write, because the topic is so big and complicated, and I don't want the answers to be too long and boring.
Yours with kindness, Carmen _______________________________________________ REUSE mailing list -- reuse@lists.fsfe.org To unsubscribe send an email to reuse-leave@lists.fsfe.org
This mailing list is covered by the FSFE's Code of Conduct. All participants are kindly asked to be excellent to each other: https://fsfe.org/about/codeofconduct
Dne torek, 18. junij 2024 ob 13:46:27 GMT +2 je Max Mehl napisal(a):
For your interest in license compatibility, you might want to have a look at flict https://github.com/vinland-technology/flict. IIRC it uses the OSADL license compatibility matrix and can also use other sources of such information. It may also help with finding a suitable outbound license for the combined work.
To that I’d also add Hermine as a very promising solution as well:
cheers, Matija