THE SPDX WIKI IS NO LONGER ACTIVE. ALL CONTENT HAS BEEN MOVED TO https://github.com/spdx
Difference between revisions of "Technical Team/Proposals/2010-10-21/Composite licensing"
Line 9: | Line 9: | ||
used under the licenses A and B or A and C.</p> | used under the licenses A and B or A and C.</p> | ||
− | <h3>Use cases</h3 | + | <h3>Use cases</h3> |
− | The set of use cases we need to be able to describe in SPDX is: | + | <p>The set of use cases we need to be able to describe in SPDX is:</p> |
− | + | <ol> | |
− | + | <li><p>a single license</p></li> | |
− | + | <li><p>choice of one from multiple single licenses</p></li> | |
− | + | <li><p>multiple licenses (conjunctive)</p></li> | |
− | + | <li><p>choice of one from multiple conjunctive license sets</p></li> | |
+ | </ol> | ||
− | + | <h2>Proposal</h2> | |
<p>Introduce a license set concept to cover all these use cases. | <p>Introduce a license set concept to cover all these use cases. | ||
Line 26: | Line 27: | ||
type `License`, `ConjunctiveLicenseSet` or `DisjunctiveLicenseSet`. | type `License`, `ConjunctiveLicenseSet` or `DisjunctiveLicenseSet`. | ||
This would allow composing licensing information in arbitrary | This would allow composing licensing information in arbitrary | ||
− | conjunctive and disjunctive groupings.</ | + | conjunctive and disjunctive groupings.</p> |
− | The definition of `License` would not change. The `DeclaredLicense` and `DetectedLicense` properties would be | + | <p>The definition of `License` would not change. The `DeclaredLicense` and `DetectedLicense` properties would be |
updated to allow their value to be a `License`, | updated to allow their value to be a `License`, | ||
− | `ConjunctiveLicenseSet`, `DisjunctiveLicenseSet | + | `ConjunctiveLicenseSet`, or `DisjunctiveLicenseSet`.</p> |
− | + | <h3>Examples</h3> | |
<h4>Single license</h4> | <h4>Single license</h4> | ||
Line 46: | Line 47: | ||
<pre><code><br /> <Package><br /> <DeclaredLicense><br /> <DisjuntiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:Apache" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </licenses><br /> </DisjuntiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /><br /></code></pre> | <pre><code><br /> <Package><br /> <DeclaredLicense><br /> <DisjuntiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:Apache" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </licenses><br /> </DisjuntiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /><br /></code></pre> | ||
− | |||
− | |||
− | |||
<h3>Changes</h3><h3> | <h3>Changes</h3><h3> | ||
− | <p>These changes are available in the <a href="https://github.com/pezra/spdx-spec/tree/ | + | <p>These changes are available in the <a href="https://github.com/pezra/spdx-spec/tree/compositeslicensing>'composite-licensing'</a> branch of <a href="https://github.com/pezra/spdx-spec.git">https://github.com/pezra/spdx-spec.git</a>. A full version of the spec with these changes is attached, as is a patch file to implement these changes.</p></h3> |
Revision as of 18:28, 16 November 2010
Contents
- 1 Status
- 2 Issue
- 3 Proposal
- 3.1 Examples
- 3.2 Changes
- 3.3 These changes are available in the <a href="https://github.com/pezra/spdx-spec/tree/compositeslicensing>'composite-licensing'</a> branch of <a href="https://github.com/pezra/spdx-spec.git">https://github.com/pezra/spdx-spec.git</a>. A full version of the spec with these changes is attached, as is a patch file to implement these changes.
Status
Draft
Issue
There are some licensing scenarios which are not expressable in SPDX. For example, there is currently no way to express that a file can be used under the licenses A and B or A and C.
Use cases
The set of use cases we need to be able to describe in SPDX is:
a single license
choice of one from multiple single licenses
multiple licenses (conjunctive)
choice of one from multiple conjunctive license sets
Proposal
Introduce a license set concept to cover all these use cases. Specifically, a `ConjunctiveLicenseSet`, a `DisjunctiveLicenseSet` and a `LicenseOrLaterVersion`. Members of these types of sets would be of type `License`, `ConjunctiveLicenseSet` or `DisjunctiveLicenseSet`. This would allow composing licensing information in arbitrary conjunctive and disjunctive groupings.
The definition of `License` would not change. The `DeclaredLicense` and `DetectedLicense` properties would be updated to allow their value to be a `License`, `ConjunctiveLicenseSet`, or `DisjunctiveLicenseSet`.
Examples
Single license
<code><br /> <Package><br /> <DeclaredLicense><br /> <rdf:Description rdf:about="license:GPL" /><br /> </DeclaredLicense><br /> </Package><br /></code>
Disjunctive licenses
<code><br /> <Package><br /> <DeclaredLicense><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /></code>
Complex disjunctive licenses
<code><br /> <Package><br /> <DeclaredLicense><br /> <DisjuntiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:BSD" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> <ConjunctiveLicenseSet><br /> <licenses rdf:parseType="Collection"><br /> <rdf:Description rdf:about="license:GPL" /><br /> <rdf:Description rdf:about="license:Apache" /><br /> </licenses><br /> </ConjunctiveLicenseSet><br /> </licenses><br /> </DisjuntiveLicenseSet><br /> </DeclaredLicense><br /> </Package><br /><br /></code>