-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add document describing the goals and plan of p4c software license tracking #5110
Open
jafingerhut
wants to merge
16
commits into
p4lang:main
Choose a base branch
from
jafingerhut:add-license-dir-v1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
61b70fa
Add document describing the goals and plan of p4c software license tr…
jafingerhut bb67ce6
Minor wording fixes.
jafingerhut 7be12f2
Call out the Python ptf package as one that must probably also be GPL v2
jafingerhut 655ab71
Add notes to the two sections describing GPL v2 source files ...
jafingerhut 87963cf
Remove sentence that was added by accident.
jafingerhut e2e8c49
Reword statement about P4 back ends like p4c-ebpf
jafingerhut 99290c5
Clarify wording of which p4c source files are meant in an early sentence
jafingerhut e87702a
Say that the Linux Foundation designated a licensing specialist
jafingerhut 486428e
Add separate article specifically on Apache 2.0 and GPL v2 compatibil…
jafingerhut 9efffb1
Introduce the phrase "questionable legal ground"
jafingerhut c4fa28a
Hopefully the last tweak for today.
jafingerhut b220916
Move all files into doc directory, with file names starting with 'lic…
jafingerhut e7e831c
Correct inter-file links after renaming files. Minor wording changes
jafingerhut 735851b
Add file documenting published opinions on compatibility of Apache an…
jafingerhut daa4171
Merge branch 'master' into add-license-dir-v1
jafingerhut 906fcf1
Add link to an article on EBPF software licenses
jafingerhut File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add separate article specifically on Apache 2.0 and GPL v2 compatibil…
…ity question Signed-off-by: Andy Fingerhut <andy.fingerhut@gmail.com>
- Loading branch information
commit 486428e482609b46c01ff14b159e6446c67aff81
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Compatibility of GPL v2.0 and Apache 2.0 licenses | ||
|
||
The claims of incompatibility in this section could use some good | ||
references to back them up. Please suggest references if you know of | ||
them. | ||
|
||
| Python program A | ... imports Python | | | ||
| with license | package B with license | Allowed? | | ||
| ----------------- | ----------------------- | -------- | | ||
| Apache-2.0 | Apache-2.0 | yes, same licenses | | ||
| GPL-2.0-only | GPL-2.0-only | yes, same licenses | | ||
| Apache-2.0 | GPL-2.0-only | very questionable | | ||
| GPL-2.0-only | Apache-2.0 | very questionable | | ||
|
||
|
||
There is no publicly available advice on the last two rows of the | ||
table above that makes the answer obviously "compatible or obviously | ||
"incompatible", hence the "very questionable" statement on whether it | ||
is allowed. See later sections for examples arguing both ways. | ||
|
||
Given that lack of clarity on whether it is allowed, it seems prudent | ||
that the P4 Consortium should not risk its limited funds and available | ||
volunteer time by using questionable combinations of software | ||
licenses. We have a way to avoid that risk: use combinations of | ||
licenses that are well known to be compatible. | ||
|
||
If someone proposes using other approaches, it seems wise that they | ||
should be able to provide advice backed by an organization with at | ||
least one intellectual property lawyer, and willing to defend the | ||
approach in court. | ||
|
||
|
||
# Article published in a law journal | ||
|
||
See [5]. | ||
|
||
Here is the text of the abstract of this 29-page article: | ||
|
||
License “incompatibility” in free and open source software | ||
licensing means that, when two differently licensed pieces of software | ||
are combined, one cannot comply with both licenses at the same time. | ||
It is commonly accepted that the GNU General Public License version | ||
2 is incompatible with the Apache License, version 2 because certain | ||
provisions of the Apache License would be considered “further | ||
restrictions” not permitted by the GPLv2. However, this article will | ||
explain why there is no legally cognizable claim for combining the two, | ||
either under a copyright infringement theory or a breach of contract | ||
theory. | ||
|
||
I have not read this article in full. I have no idea whether this | ||
author's ideas would hold up in a court case. | ||
|
||
|
||
# Open Source Automation Development Lab (OSADL) | ||
|
||
The OSADL [1] publishes a license compatibility matrix [2]. The | ||
details in this section are for the version of this matrix downloaded | ||
on 2025-Jan-23. | ||
|
||
The matrix entry for the leading license being GPL-2.0-only and the | ||
subordinate license being Apache-2.0 says: | ||
``` | ||
{ "name": "Apache-2.0", "compatibility": "No", "explanation": "Incompatibility of the Apache-2.0 license with the GPL-2.0-only license is explicitly stated in the GPL-2.0-only license checklist."}, | ||
``` | ||
|
||
The matrix entry for the leading license being Apache-2.0 and the | ||
subordinate license being GPL-2.0-only says: | ||
``` | ||
{ "name": "GPL-2.0-only", "compatibility": "No", "explanation": "Software under a copyleft license such as the GPL-2.0-only license normally cannot be redistributed under a non-copyleft license such as the Apache-2.0 license, except if it were explicitly permitted in the licenses."}, | ||
``` | ||
|
||
|
||
# Free Software Foundation (FSF) | ||
|
||
"By the same token, lax licenses are usually compatible with any | ||
copyleft license. In the combined program, the parts that came in | ||
under lax licenses still carry them, and the combined program as a | ||
whole carries the copyleft license. One lax license, Apache 2.0, has | ||
patent clauses which are incompatible with GPL version 2; since I | ||
think those patent clauses are good, I made GPL version 3 compatible | ||
with them." [4] | ||
|
||
The above was written by Richard Stallman, who often speaks for the | ||
FSF, but I do not know whether the FSF specifically endorses the legal | ||
interpretations in the quoted paragraph above. It is published on the | ||
gnu.org site quite prominently, though. | ||
|
||
|
||
# Randomly found StackExchange discussion | ||
|
||
See [3]. I don't claim anything in there as authoritative, but it | ||
might have useful links that lead to more authoritiatve information. | ||
|
||
|
||
# References | ||
|
||
[1] https://osadl.org | ||
|
||
[2] "OASDL license compatibility matrix with explanations", | ||
https://www.osadl.org/html/CompatMatrix.html | ||
|
||
|
||
[3] https://opensource.stackexchange.com/questions/1357/can-i-link-a-apache-2-0-library-into-software-under-gplv2 | ||
|
||
[4] https://www.gnu.org/licenses/license-compatibility.html | ||
|
||
[5] Pamela S. Chestek, "A promise without a remedy: The supposed | ||
incompatibility of the GPL v2 and Apache v2 licenses", Santa Clara | ||
High Technology Law Journal, Vol 40, Issue 3, Article 2, | ||
https://digitalcommons.law.scu.edu/cgi/viewcontent.cgi?article=1701&context=chtlj#:~:text=It%20is%20commonly%20accepted%20that,not%20permitted%20by%20the%20GPLv2. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add reference to this file into the LINCENSE file, below the actual license.