{"SPDXID": "SPDXRef-DOCUMENT", "creationInfo": {"comment": "This document was created by analyzing recipe files during the build.", "created": "2026-06-06T17:47:43Z", "creators": ["Tool: OpenEmbedded Core create-spdx.bbclass", "Organization: OpenEmbedded ()", "Person: N/A ()"], "licenseListVersion": "3.14"}, "dataLicense": "CC0-1.0", "documentNamespace": "http://spdx.org/spdxdocs/recipe-tf2-c565fe51-3ca9-5419-8b41-46f3fdc80a62", "externalDocumentRefs": [{"checksum": {"algorithm": "SHA1", "checksumValue": "27c4a43dd594e8be73b9b3a0d9da9ffdd3e9b895"}, "externalDocumentId": "DocumentRef-dependency-recipe-ament-cmake-ros-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-ament-cmake-ros-native-947b9849-7b9d-56e7-b306-ec0fe08a640f"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "f9adfc64d99ba1277eb4bfc7c2b0b053cea404d8"}, "externalDocumentId": "DocumentRef-dependency-recipe-builtin-interfaces", "spdxDocument": "http://spdx.org/spdxdocs/recipe-builtin-interfaces-85cc5013-06c5-5d77-9159-f8e9c68c0299"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "57f14868aa627d81c32587de64cf30375136eeff"}, "externalDocumentId": "DocumentRef-dependency-recipe-cmake-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-cmake-native-065aeeea-e673-57cc-a9f5-a3fe1fc2b3ea"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "b673e159f94b3a12df9854d964495640adf2b67c"}, "externalDocumentId": "DocumentRef-dependency-recipe-gcc-cross-aarch64", "spdxDocument": "http://spdx.org/spdxdocs/recipe-gcc-cross-aarch64-e05122e2-842a-5b45-a068-7a450933ae13"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "bea3135e31acb0fc740a62557f21527c31a15ca5"}, "externalDocumentId": "DocumentRef-dependency-recipe-gcc-runtime", "spdxDocument": "http://spdx.org/spdxdocs/recipe-gcc-runtime-a8177036-816d-5f00-a030-969647302050"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "5e211ea23164216d446334fc50451edaedf6f740"}, "externalDocumentId": "DocumentRef-dependency-recipe-geometry-msgs", "spdxDocument": "http://spdx.org/spdxdocs/recipe-geometry-msgs-c8d273a7-7f05-5477-98c2-302437c52359"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "d725f06c2ebed554ba90ab3489e220528c9c8c7a"}, "externalDocumentId": "DocumentRef-dependency-recipe-glibc", "spdxDocument": "http://spdx.org/spdxdocs/recipe-glibc-8ec5f1d4-204b-530d-8854-79bbb314d6d7"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "74bf643aa99c3105cb29626a8756623c02c55857"}, "externalDocumentId": "DocumentRef-dependency-recipe-ninja-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-ninja-native-69509a4d-51be-58e4-8b69-f8cab885e13f"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "aa04abe6722cb6b1b9abb1ce7c02ad3bf6ebec95"}, "externalDocumentId": "DocumentRef-dependency-recipe-python3-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-python3-native-34cc7325-70e1-5a3a-873a-66b0c1f8d193"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "18d8988c71dd641018c7097c300451fd27449b2d"}, "externalDocumentId": "DocumentRef-dependency-recipe-rcutils", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rcutils-2d03d6a8-3cec-5750-a76d-b01aaa9dd5b8"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "dd5e0cd4fc20b67f5d234ef4b20702ce8619d036"}, "externalDocumentId": "DocumentRef-dependency-recipe-rosidl-cmake-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rosidl-cmake-native-bee28fa9-a178-5c25-a17b-5ae767801271"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "a6c877199228bf3c9b72762dbec2b4f6a17d9dcf"}, "externalDocumentId": "DocumentRef-dependency-recipe-rosidl-generator-py-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rosidl-generator-py-native-05e06b07-dfed-5eab-b08b-d86b995f5a10"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "e04eb9fa277742dff6e7a4b05585eec7cc5da310"}, "externalDocumentId": "DocumentRef-dependency-recipe-rosidl-runtime-cpp", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rosidl-runtime-cpp-e43aaf35-2ee4-5625-9077-179357da67bd"}], "name": "recipe-tf2", "packages": [{"SPDXID": "SPDXRef-Recipe-tf2", "copyrightText": "NOASSERTION", "description": "tf2 is the second generation of the transform library, which lets     the user keep track of multiple coordinate frames over time. tf2     maintains the relationship between coordinate frames in a tree     structure buffered in time, and lets the user transform points,     vectors, etc between any two coordinate frames at any desired     point in time.", "downloadLocation": "NOASSERTION", "externalRefs": [{"referenceCategory": "SECURITY", "referenceLocator": "cpe:2.3:*:*:tf2:0.36.20-1:*:*:*:*:*:*:*", "referenceType": "http://spdx.org/rdf/references/cpe23Type"}], "homepage": "http://www.ros.org/wiki/tf2", "licenseConcluded": "NOASSERTION", "licenseDeclared": "BSD-3-Clause", "licenseInfoFromFiles": ["NOASSERTION"], "name": "tf2", "summary": "tf2 version 0.36.20-1-r0", "supplier": "Organization: OpenEmbedded ()", "versionInfo": "0.36.20-1"}, {"SPDXID": "SPDXRef-Download-tf2-1", "copyrightText": "NOASSERTION", "downloadLocation": "git+https://github.com/ros2-gbp/geometry2-release@685143bce2a21eab3c2caa756b33df534d0c8695", "licenseConcluded": "NOASSERTION", "licenseDeclared": "NOASSERTION", "licenseInfoFromFiles": ["NOASSERTION"], "name": "tf2-source-1", "supplier": "NOASSERTION"}], "relationships": [{"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "DESCRIBES", "spdxElementId": "SPDXRef-DOCUMENT"}, {"relatedSpdxElement": "SPDXRef-Download-tf2-1", "relationshipType": "DESCRIBES", "spdxElementId": "SPDXRef-DOCUMENT"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "SPDXRef-Download-tf2-1"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-ament-cmake-ros-native:SPDXRef-Recipe-ament-cmake-ros-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-builtin-interfaces:SPDXRef-Recipe-builtin-interfaces"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-cmake-native:SPDXRef-Recipe-cmake-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-gcc-cross-aarch64:SPDXRef-Recipe-gcc-cross-aarch64"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-gcc-runtime:SPDXRef-Recipe-gcc-runtime"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-geometry-msgs:SPDXRef-Recipe-geometry-msgs"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-glibc:SPDXRef-Recipe-glibc"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-ninja-native:SPDXRef-Recipe-ninja-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-python3-native:SPDXRef-Recipe-python3-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-rcutils:SPDXRef-Recipe-rcutils"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-rosidl-cmake-native:SPDXRef-Recipe-rosidl-cmake-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-rosidl-generator-py-native:SPDXRef-Recipe-rosidl-generator-py-native"}, {"relatedSpdxElement": "SPDXRef-Recipe-tf2", "relationshipType": "BUILD_DEPENDENCY_OF", "spdxElementId": "DocumentRef-dependency-recipe-rosidl-runtime-cpp:SPDXRef-Recipe-rosidl-runtime-cpp"}], "spdxVersion": "SPDX-2.2"}