Description
What would you like to be added:
SBOM formats such as CycloneDX and SPDX support including the full text of a license with a component. It would be great if syft could extract this information when scanning for licenses.
Why is this needed:
OSS license compliance is one important use case for SBOMs, especially in large enterprises. SBOMs produced by syft today include components with licenses identified by name (not SPDX ID) which is mostly useless without the accompanying text.
Comment #2002 (comment) has also asked for such a feature to be implemented, however, I believe it was eventually overlooked when the corresponding issue was closed.
Additional context:
Example for curl produced by dpkg cataloger in CycloneDX (modified for conciseness):
{
"type": "library",
"name": "curl",
"version": "7.81.0-1ubuntu1.15",
"licenses": [
// snip
{
"license": {
"name": "other"
}
},
{
"license": {
"name": "public-domain"
}
}
],
"purl": "pkg:deb/ubuntu/curl@7.81.0-1ubuntu1.15?arch=amd64&distro=ubuntu-22.04",
"properties": [
// snip
{
"name": "syft:location:0:path",
"value": "usr/share/doc/curl/copyright"
},
{
"name": "syft:location:1:path",
"value": "var/lib/dpkg/info/curl.md5sums"
},
{
"name": "syft:location:2:path",
"value": "var/lib/dpkg/status"
}
],
// snip
},