Yocto
create-spdx writes its SBOM in one of two shapes, and Declarable reads both. Yocto 5.0 and earlier write a compressed archive holding an index and one SPDX document per recipe and per package, each pointing at the others: for a small image that is over a hundred documents, with no single list of what is in the image. From Yocto 5.1 it writes one SPDX 3 JSON document for the image.
Yocto vulnerability tracking uses its own product names (CVE_PRODUCT), and they do not always match the recipe names in the SBOM. A recipe called one thing can be tracked under another, so a naive match misses it.
Add this to conf/local.conf, build the image, then take the archive from the deploy folder:
INHERIT += "create-spdx"
bitbake core-image-minimal
ls tmp/deploy/images/*/*.spdx.tar.zst<image>.rootfs.spdx.tar.zst (Yocto 5.0 and earlier) — the whole archive from your deploy folder; Declarable unpacks it in your browser<image>.rootfs.spdx.json (Yocto 5.1 and later) — the one SPDX 3 JSON document create-spdx writes instead of an archive; upload it as it islicense.manifest (optional) — cross-check of what is really in the imagethe cve-check JSON report (optional) — Yocto's own list of the CVEs it checked and what it decided about eachrecipe or local.conf files with CVE_STATUS lines (optional) — where you or a layer marked a CVE as fixed, ignored or not affecting youFacts on this page checked on 2026-10-14.
Declarable prepares documentation for you to review. It is not legal advice and not certification. You sign your own declaration of conformity.