{"SPDXID": "SPDXRef-DOCUMENT", "creationInfo": {"comment": "This document was created by analyzing recipe files during the build.", "created": "2025-05-10T19:07:01Z", "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": "eb5a5874c68a5d90c7f0454cba121b9c910102d9"}, "externalDocumentId": "DocumentRef-dependency-recipe-builtin-interfaces", "spdxDocument": "http://spdx.org/spdxdocs/recipe-builtin-interfaces-85cc5013-06c5-5d77-9159-f8e9c68c0299"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "97d258d4362dd02b63a2e9e53b2bc7d05b8a9bcc"}, "externalDocumentId": "DocumentRef-dependency-recipe-cmake-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-cmake-native-065aeeea-e673-57cc-a9f5-a3fe1fc2b3ea"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "626bd259648bd837a736da341f3e4562112de984"}, "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": "dc06fabe25133177baf23846c11527771077ada9"}, "externalDocumentId": "DocumentRef-dependency-recipe-gcc-runtime", "spdxDocument": "http://spdx.org/spdxdocs/recipe-gcc-runtime-a8177036-816d-5f00-a030-969647302050"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "d40e1858d0517cb5aa897e65612838ab5f69fb11"}, "externalDocumentId": "DocumentRef-dependency-recipe-geometry-msgs", "spdxDocument": "http://spdx.org/spdxdocs/recipe-geometry-msgs-c8d273a7-7f05-5477-98c2-302437c52359"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "78f2f3e0e17baedef9f1b25094e73e91f0595805"}, "externalDocumentId": "DocumentRef-dependency-recipe-glibc", "spdxDocument": "http://spdx.org/spdxdocs/recipe-glibc-8ec5f1d4-204b-530d-8854-79bbb314d6d7"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "e45023967d61d5ed9b584354de441fa14b120887"}, "externalDocumentId": "DocumentRef-dependency-recipe-ninja-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-ninja-native-69509a4d-51be-58e4-8b69-f8cab885e13f"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "cf8bf6c83a1caa7a4bae13451bdc629bb753449e"}, "externalDocumentId": "DocumentRef-dependency-recipe-python3-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-python3-native-34cc7325-70e1-5a3a-873a-66b0c1f8d193"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "a351989bf26c0cd61ecaf4823c7d3c47af906eca"}, "externalDocumentId": "DocumentRef-dependency-recipe-rcutils", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rcutils-2d03d6a8-3cec-5750-a76d-b01aaa9dd5b8"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "3c4eac24cf0bcfd2c8d7e5a7b6e64cb1147fd4dd"}, "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": "3edec0fe9cd0ea290c91fe2c52c1ccb61eef1032"}, "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": "3191adc1e9b78a97619e6b5e3c522b897a7a8462"}, "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"}