-
-
Notifications
You must be signed in to change notification settings - Fork 67
[FEATURE]: there SHOULD be at most one "declared" and one "conclude" license per component #619
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
Comments
this is a ticket that is intended to handle your remarks from #454 (comment) @pombredanne, could you see whether it covers your ideas? |
had a call with @pombredanne, and we modified the ticket's test until he was satisfied. |
Yes, in the Linux ecosystem. I just focus here on that. This ecosystem is one of the biggest in the world and I see it here as one of the most significant and relevant ecosystems. The licenses are bound to the input of the authors, NOT to the package as output like we have for most other components.
Simple example for a package (=component):
Who desires this? One point that is absolutely a requirement for me: Any SBOM specification must consider licenses practices that are established in the real world (and not vice versa) by every ecosystem we need to consider for products. @pombredanne, you wrote in #454 : "- Allow a list of expressions with unique "acknowledgment" across all expressions" When I read this my understand was that an acknowledgement can effectively done for the whole licensing of the component only (which may include simple and (resolved) compound expessions). It is impossible to reduce a set of different licenses to a single one. All licenses have the same weight. The coverage of the source file sets may have a significant diference, but finally there is no license that has a bigger impact than another one. A "concluded" acknoledgement attribute marks (1.) a component with a disjunctive compound expression where a conclusion was done OR a reference to a component that was not properly declared by the component creator (see below) (in component.licenses) (2.) a "miss" declaration of a certain license of the component creator (in evidence.licenses) For "declared" acknoledgements it means (according to 1.) The "declared" acknoledgement attribute marks all components that have an identical content like the declared components we find in evidence. (according to 2.) the author explicitly declared the license in a correct way.
My first thought was: I agree. But, as described above, after thinking deeper this would mean that we cannot distinguish here between a proper and improper declaration anymore, if we do not have an attribute that shows a present or missing in the declaration. The tag's name is "evidence", not "declaration". So that also means that the content has to be true and complete. The conclusion includes not only to decide what license applies from a disjunctive expression, but also includes the decision of the user that declares applicable license(s). The description that comes with acknoledgement ("Declared license are ...") are fully correct for me. So, if the attribute values "declared" and "concluded" are not thought in that way, they are completely useless and redundant for me. |
@pombredanne does. I opened this very ticket to address his ideas/wishes; and to see how others think about the proposed changes. I personally don’t have any strong feelings about this—I don’t really care. I only wrote down what others wished for. So, I won’t step into this argument. |
I encourage you to drive your own ideas as change/feature proposals. |
Describe the feature
CycloneDX allows multiple licenses in parallel, per component/evidence/etc.
Currently, it is possible to have multiple "declared" licenses.
Currently, it is possible to have multiple "concluded" licenses.
It is desired to only have one "concluded" license -- how would you have multiple?
Similar situation with the "declared" licenses.
For evidences, we have the desire to not have any license acknowledgement at all.
Changing this from a "MAY" (current state) to a "MUST"/"MUST NOT" - would be a breaking change.
Using a "SHOULD" might be possible easily for ambiguous license lists.
Using a "MUST" for license expressions - for "concluded", and "SHOULD" for "declared".
There must be no constraints for license evidence!
Possible solutions
Change the spec tests
acknowledgement
, it they do, it shall be ignored."acknowledgement
; the same acknowledgement shall be used not more than once."a follow up: create a ticket for v2.0 that makes these should/shall a must.
Alternatives
What other things would suite the needs?
Additional context
this ticket was created because of
The text was updated successfully, but these errors were encountered: