-
-
Notifications
You must be signed in to change notification settings - Fork 6
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
[LEGAL] revisit automated license compliance checks #242
Comments
licomp-toolkit
@hesa ping |
@pombredanne, thanks for roping me in @jkowalleck, hi again. When looking at compatibility some context is needed (see below). I guess you are interested in the compatibility between:
Is the above your use case? Examples of context:
|
situation is the following:
I would be grateful for any help. I wonder, if https://github.com/hesa/licomp-toolkit could do the needed check for me. |
@jkowalleck FWIW, I would not consider tree-shaking, re-arrangement, minification, and bundling as "modifications" (and add transpilation from including webassembly to that list). These are transformations from a source to a deployed binary-like format, and this is essentially the same process you go through when you compile C code that's eventually linked with other objects in an ELF exe or so. These transformations are mechanically applied to run the code and would not trigger "change-related" licensing clauses in the general case. The interesting parts here are that:
|
So, we need to look at compatibility when distributing.
licomp-toolkit can only check compatibility between two licenses at a time. If you want to check an entire project (with dependencies and complex licenses (e.g. Once I know what you need (see below) I think letting flict use licomp-toolkit instead of osadl_matrix is not such a big effort and something I can look at straight away. To me, it sounds like:
|
@jkowalleck How do you use the results from your command |
file
First line is the license we plan to use for publishing our distributable. I intended to display the license compatibility, and most important, Well, anyway, my intention was the following: I am a licensing noob. |
flict and return values
Compatibility between two licenses - missing context Checking if
.... what would the answer to a question like "are So checking licenses for compatibility depends on the context (see above), e.g. the outbound license (the license you want to release your combined work under). Checking compatibility If you want to release your combined work (your component with its dependencies) under
To check the above with flict or licomp-toolkit you can do (only one example):
Potentially you could check if all of the above licenses (as you listed) are compatible in one go with flict (leaving out
|
re: #242 (comment) I will revisit the related GH workflows and might consult you for a review. |
working on this |
still using Restructured my data to something like this {"ol":"Apache-2.0","ils":["Apache-2.0","BSD-2-Clause","...","MIT", "GPL-2.0-only"]} remark - incompatible licenses: GPL-2.0-only and Apache-2.0 I tried the following #!/usr/bin/env bash
set -ue
LICENSES_JSON="$1"
flict verify \
-ol "$(jq -r '.ol' "$LICENSES_JSON")" \
-il "$(jq -r '.ils | join(" AND ")' "$LICENSES_JSON")"; as expected, this exited with a {"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "Apache-2.0 AND BSD-2-Clause AND CC-BY-3.0 AND CC0-1.0 AND ISC AND MIT AND GPL-2.0-only", "original_inbound": "Apache-2.0 AND BSD-2-Clause AND CC-BY-3.0 AND CC0-1.0 AND ISC AND MIT AND GPL-2.0-only", "result": {"outbound_licenses": [], "allowed_outbound_licenses": [], "outbound_license": "", "problems": []}}
so i went with the following, to get some details which license caused the issues: #!/usr/bin/env bash
set -ue
LICENSES_JSON="$1"
OL="$(jq -r '.ol' "$LICENSES_JSON")"
jq -r '.ils[]' "$LICENSES_JSON" | while read -r IL
do
flict verify -ol "$OL" -il "$IL"
done as expected, this exited with a {"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "Apache-2.0", "original_inbound": "Apache-2.0", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "BSD-2-Clause", "original_inbound": "BSD-2-Clause", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "CC-BY-3.0", "original_inbound": "CC-BY-3.0", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "CC0-1.0", "original_inbound": "CC0-1.0", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "ISC", "original_inbound": "ISC", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "MIT", "original_inbound": "MIT", "result": {"outbound_licenses": ["Apache-2.0"], "allowed_outbound_licenses": ["Apache-2.0"], "outbound_license": "Apache-2.0", "problems": []}}
{"original_outbound": "Apache-2.0", "outbound": "Apache-2.0", "inbound": "GPL-2.0-only", "original_inbound": "GPL-2.0-only", "result": {"outbound_licenses": [], "allowed_outbound_licenses": [], "outbound_license": "", "problems": []}} conclusion: both are valid options. |
currently using
flict==1.2.x
for license compatibility checks - which usesosadl-matrix
for the relevant functionality.unfortunately,
osadl-matrix
is no longer maintained(deprecated!) (see priv-kweihmann/osadl-matrix#209)so we do need a replacement for
cyclonedx-node-yarn/.github/workflows/nodejs.yml
Lines 134 to 176 in f921c0a
Possible alternatives:
re: vinland-technology/flict#398 (comment)
The text was updated successfully, but these errors were encountered: