.. |br| raw:: html
.. _sbom-index: Generating Software Bill of Materials (SBOM) ============================================ An SBOM is a formal, structured list of all components, libraries, modules and dependencies (both open-source and proprietary) used to create a software application. It acts as a ‘list of ingredients’ for software and provides transparency across the entire software supply chain. A detailed SBOM contains information on component versions, suppliers, licence details and often also on known security vulnerabilities (CVEs – Common Vulnerabilities and Exposures). This list can be used for rapid identification of vulnerabilities in components used and for verification of licence terms. SBOMs are frequently created in standardised machine-readable formats such as **SPDX** or **CycloneDX**. It is becoming increasingly important due to regulatory requirements, such as the EU Cyber Resilience Act. .. admonition:: Please note :class: note Yocto provides only SBOM generation in SPDX format. To generate an SBOM during the Yocto build process do the following: #. Add the following to ``conf/local.conf``: .. code-block:: text INHERIT += "create-spdx" #. Compile the image. You can control the level of detail in the SBOM using variables in your local.conf: +---------------------------+---------------------------------------------------------------------------------------+ |Variable |Description | +---------------------------+---------------------------------------------------------------------------------------+ |SPDX_PRETTY = "1" |Formats the JSON files for readability (indentation), which increases the file size. | +---------------------------+---------------------------------------------------------------------------------------+ |SPDX_INCLUDE_SOURCES = "1" |Adds descriptions to the source code files. | +---------------------------+---------------------------------------------------------------------------------------+ |SPDX_ARCHIVE_SOURCES = "1" |Archives the actual source code together with the SBOM (useful for licence compliance).| +---------------------------+---------------------------------------------------------------------------------------+ |SPDX_ARCHIVE_PACKAGED = "1"|Creates archives of the files that have ended up in the destination packages. | +---------------------------+---------------------------------------------------------------------------------------+ A detailed description of all the features of Yocto’s SBOM generation can be found on the website `Creating a Software Bill of Materials`_. .. _`Creating a Software Bill of Materials`: https://docs.yoctoproject.org/scarthgap/dev-manual/sbom.html#creating-a-software-bill-of-materials