{"SPDXID": "SPDXRef-DOCUMENT", "creationInfo": {"comment": "This document was created by analyzing recipe files during the build.", "created": "2025-11-10T23:45:19Z", "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": "ed5d5f478224372feacb4a38a05608d9338aa4f8"}, "externalDocumentId": "DocumentRef-dependency-recipe-builtin-interfaces", "spdxDocument": "http://spdx.org/spdxdocs/recipe-builtin-interfaces-85cc5013-06c5-5d77-9159-f8e9c68c0299"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "e63f51a6eaa5d782429cee91b0425425a24b5002"}, "externalDocumentId": "DocumentRef-dependency-recipe-cmake-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-cmake-native-065aeeea-e673-57cc-a9f5-a3fe1fc2b3ea"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "4b7f5865d8e834188b7294e269afbedc2bf999ae"}, "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": "a35935958d23999d186c099c5957e1eade02e2fc"}, "externalDocumentId": "DocumentRef-dependency-recipe-gcc-runtime", "spdxDocument": "http://spdx.org/spdxdocs/recipe-gcc-runtime-a8177036-816d-5f00-a030-969647302050"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "aad8deecbee47efd31635f47f278d8941aa40481"}, "externalDocumentId": "DocumentRef-dependency-recipe-geometry-msgs", "spdxDocument": "http://spdx.org/spdxdocs/recipe-geometry-msgs-c8d273a7-7f05-5477-98c2-302437c52359"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "69ddf125aaa4a50b4dda8f21ad352b25b6557204"}, "externalDocumentId": "DocumentRef-dependency-recipe-glibc", "spdxDocument": "http://spdx.org/spdxdocs/recipe-glibc-8ec5f1d4-204b-530d-8854-79bbb314d6d7"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "a931fb2a1988fba5506a975d3856c91150024b69"}, "externalDocumentId": "DocumentRef-dependency-recipe-ninja-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-ninja-native-69509a4d-51be-58e4-8b69-f8cab885e13f"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "8b42c1a90e4d381d7229739f1d9c9fd5741dbac0"}, "externalDocumentId": "DocumentRef-dependency-recipe-python3-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-python3-native-34cc7325-70e1-5a3a-873a-66b0c1f8d193"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "496f0fff3c1f1850da8e537eff6764869ac4798e"}, "externalDocumentId": "DocumentRef-dependency-recipe-rcutils", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rcutils-2d03d6a8-3cec-5750-a76d-b01aaa9dd5b8"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "4158b8a3e201dda89c83053cf0f531a272ba1810"}, "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": "1ebd661596b3f08de7ef7273f1b2f7240371110c"}, "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": "5163d71df8114c8925d31912729d5b2d15f7e787"}, "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.2-2:*:*:*:*:*:*:*", "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.2-2-r0", "supplier": "Organization: OpenEmbedded ()", "versionInfo": "0.36.2-2"}, {"SPDXID": "SPDXRef-Download-tf2-1", "copyrightText": "NOASSERTION", "downloadLocation": "git+https://github.com/ros2-gbp/geometry2-release@1d04e15a235ac97b571bc0419f837126f90e6bf2", "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-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"}