Open-CMSIS-Pack  Version 1.7.15
Delivery Mechanism for Software Packs
/package/licenseSets element

The concept of licenseSets gets introduced to support pack content with a variety of governing license terms. A licenseSet is defined as a collection of one or more licenses. A license references an ASCII file located within the pack, containing the license terms.

Supported use cases:

  • the content of the whole pack can be associated with one or more license files using the default attribute of a licenseSet Example - a click through license set of two licenses for the complete pack content
    <licenseSets>
    <licenseSet id="all" default="true" gating="true">
    <license name="./licenses/license1.txt" title="BSD-3 Clause License for components" spdx="BSD-3-Clause"/>
    <license name="./licenses/license2.txt" title="MIT License for device support" spdx="MIT"/>
    </licenseSet>
    </licenseSets>
  • individual components and apis can be associated with a specific licenseSet Example - an api and a component associated with different specific licenseSets.
    ...
    <licenseSets>
    ...
    <licenseSet id="API">
    <license name="./licenses/apache2.0.txt" title="Apache 2.0 open-sourc license" spdx="Apache-2.0"/>
    </licenseSet>
    <licenseSet id="Implementation">
    <license name="./licenses/myProprietaryLicense.txt" title="ProprietaryLicense" url="https://myvendor.com/licenses/myProprietaryLicense.html"/>
    </licenseSet>
    </licenseSets>
    <apis>
    <api Cclass="CMSIS Driver" Cgroup="SPI" Capiversion="2.1.0" exclusive="true" licenseSet="API">
    <description>CMSIS Driver API for SPI peripherals</description>
    <files>
    <file name="CMSIS/Driver/Include/SPI.h" category="header"/>
    <file name="CMSIS/Docs/SPI.html" category="doc"/>
    </files>
    </api>
    ...
    </apis>
    <components>
    <component Cclass="CMSIS Driver" Cgroup="SPI" Cversion="1.0.0" Capiversion="2.1.0" condition="MyDevice" licenseSet="Implementation">
    <description>Implementation of an SPI driver against the CMSIS Driver SPI API</description>
    <files>
    <file name="MyDevice/CMSIS-Driver/SPI.c" category="sourceC"/>
    </files>
    </component>
    ...
    </components>
  • the license file element can optionally specify an attribute url to allow license inspection without the need to download a pack.

Note, the licenseSets description section supersedes the file specified by the license element, if the tools supports licenseSets. The id attribute of a licenseSet is used to associate individual components and apis with a licenseSet.

 



/package/licenseSets/

Grouping element for licenseSets. No more than one such group can exist in a Pack. None is required.

Parent Chain
package /package
Child Elements Description Type Occurrence
licenseSet Description of a collection of license files LicenseSetType 1..*

 



/package/licenseSets/licenseSet

An element containing a list of one or more license files.

Parent Chain
licenseSets /package/licenseSets
Attributes Description Type Use
id license set identifier string which must be unique within the scope of the pdsc file. The id is used in components and apis to associate it with the licenseSet. xs:string required
default If set to 'true' this licenseSet is associated with the pack's content and for all apis and components, which are not explicitly referencing another licenseSet. There can only be a single default licenseSet. This optional attribute is treated as 'false' if not specified. xs:string optional
Child Elements Description Type Occurrence
licensefile Description of a license file reference, unique identifier, title and default attributes LicensefileType 1..*

 



/package/licenseSets/licenseSet/license

An element describing an individual license file.

Parent Chain
licenseSet /package/licenseSets/licenseSet
Attributes Description Type Use
name license filename with pack base directory relative path. The license file is an ASCII text file with '*.txt' or no file extension xs:string required
title A display string used by tools to represent the license. xs:string required
spdx A machine readable license ID string according to the SPDX License List. In case a license is not listed here do not use this attribute. xs:string optional
url A public web link to the license text matching the file content referenced by name attribute. This url allows the inspection of license terms by the user prior to downloading the pack. xs:anyURI optional