-
Notifications
You must be signed in to change notification settings - Fork 186
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
Ensure that Tern produces SPDX docs conformant to NTIA minimum elements #1205
Comments
I'm glad to help with the testing component. And if |
When I tested a SPDX document produced by Tern for the
|
@rnjudge, does that look right to you? You can get more detailed output by adding a |
@jspeed-meyers not all of it looks correct. Opening an issue/question in the repo now :) |
To summarize, the missing NTIA minimum info in Tern reports is as follows:
|
The NTIA minimum requirements for an SBOM require that all Packages have version information. Since Tern represents container layers as SPDX Packages, these package elements must have version information in order to satisfy NTIA minimums. This commit adds version information to layer "Packages" using the layer indexes (i.e. the base OS layer has version "1") Works towards tern-tools#1205 Signed-off-by: Rose Judge <rjudge@vmware.com>
The NTIA minimum requirements for an SBOM require that all Packages have version information. Since Tern represents container layers as SPDX Packages, these package elements must have version information in order to satisfy NTIA minimums. This commit adds version information to layer "Packages" using the layer indexes (i.e. the base OS layer has version "1") Works towards #1205 Signed-off-by: Rose Judge <rjudge@vmware.com>
This commit adds package supplier information as an attribute in the package class for package objects. For some package managers (like PyPI), there is only one feasible supplier (PyPI) and this value is set as a constant string (PyPI). For others, like rpm, the string is determined using the /etc/os-release file based on the Linux Distro providing the packages. While this is not a perfect way to determine the distro/distributor, it is satisfactory to satisfty the NTIA minimum elements for the upcoming EO 14028. We decided to use the distro as the supplier based on conversations had on the SPDX mailing list[1]. [1] https://lists.spdx.org/g/Spdx-tech/message/4942 Works towards tern-tools#1205 Signed-off-by: Rose Judge <rjudge@vmware.com>
This commit adds `pkg_supplier` attribute values as `PackageSupplier` field values in Tag Value and JSON SPDX documents . Resolves tern-tools#1205 Signed-off-by: Rose Judge <rjudge@vmware.com>
This commit adds package supplier information as an attribute in the package class for package objects. This commit also adds `pkg_supplier` attribute values as `PackageSupplier` field values in Tag Value and JSON SPDX documents . For some package managers (like PyPI), there is only one feasible supplier (PyPI) and this value is set as a constant string (PyPI). For others, like rpm, the string is determined using the `/etc/os-release` file based on the Linux Distro providing the packages. While this is not a perfect way to determine the distro/distributor, it is satisfactory to satisfy the NTIA minimum elements for the upcoming EO 14028. We decided to use the distro as the supplier based on conversations had on the SPDX mailing list[1]. [1] https://lists.spdx.org/g/Spdx-tech/message/4942 Resolves #1205 Signed-off-by: Rose Judge <rjudge@vmware.com>
Make sure that Tern's SPDX SBOMs have all of the minimum elements for an SBOM:
- Supplier Name
- Component Name
- Version of the Component
- Other Unique Identifiers
- Dependency Relationship
- Author of SBOM Data
- Timestamp
More field mapping information here: https://spdx.github.io/spdx-spec/v2.3/how-to-use/#k22-mapping-ntia-minimum-elements-to-spdx-fields
Tooling to check conformance: https://github.com/spdx/ntia-conformance-checker (perhaps this should also be included in the testing for PRs?)
The text was updated successfully, but these errors were encountered: