{"SPDXID": "SPDXRef-DOCUMENT", "creationInfo": {"comment": "This document was created by analyzing recipe files during the build.", "created": "2025-11-15T20:54:08Z", "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": "bf9d255dd813c7b5533428cc0566d7595fb1713a"}, "externalDocumentId": "DocumentRef-dependency-recipe-builtin-interfaces", "spdxDocument": "http://spdx.org/spdxdocs/recipe-builtin-interfaces-85cc5013-06c5-5d77-9159-f8e9c68c0299"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "7aa5723eb56af8e2f61b81e8ef6e48ca2993b31f"}, "externalDocumentId": "DocumentRef-dependency-recipe-cmake-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-cmake-native-065aeeea-e673-57cc-a9f5-a3fe1fc2b3ea"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "5a8d44f74dc1c26c3dcb53cfa54b4ac56edec50e"}, "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": "c0b482c6d3b1fcb5f7dcf5953b314e29e77cb821"}, "externalDocumentId": "DocumentRef-dependency-recipe-gcc-runtime", "spdxDocument": "http://spdx.org/spdxdocs/recipe-gcc-runtime-a8177036-816d-5f00-a030-969647302050"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "d822ad0b28921db57dcb58765c171891760eb3a3"}, "externalDocumentId": "DocumentRef-dependency-recipe-geometry-msgs", "spdxDocument": "http://spdx.org/spdxdocs/recipe-geometry-msgs-c8d273a7-7f05-5477-98c2-302437c52359"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "2568d3a1f1711d26e11b72f80ac46993ef240e1c"}, "externalDocumentId": "DocumentRef-dependency-recipe-glibc", "spdxDocument": "http://spdx.org/spdxdocs/recipe-glibc-8ec5f1d4-204b-530d-8854-79bbb314d6d7"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "f54a2a5c584cb3c252f2dacb775b74b88cd3110d"}, "externalDocumentId": "DocumentRef-dependency-recipe-ninja-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-ninja-native-69509a4d-51be-58e4-8b69-f8cab885e13f"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "325d44fadae3f5ce37c6cb688eaa69651695104a"}, "externalDocumentId": "DocumentRef-dependency-recipe-python3-native", "spdxDocument": "http://spdx.org/spdxdocs/recipe-python3-native-34cc7325-70e1-5a3a-873a-66b0c1f8d193"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "ff36b30ee8d4734a60878b96ac295d8594babef8"}, "externalDocumentId": "DocumentRef-dependency-recipe-rcutils", "spdxDocument": "http://spdx.org/spdxdocs/recipe-rcutils-2d03d6a8-3cec-5750-a76d-b01aaa9dd5b8"}, {"checksum": {"algorithm": "SHA1", "checksumValue": "3901cf708a57168387b0730c84e77d1b071a23e4"}, "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": "5e3bf5271dd7c4cdb4c801cd2e5e544336738800"}, "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": "d757d0683680597dbaa47c67e360084b5364d220"}, "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"}