{"@context":"https://spdx.org/rdf/3.0.1/spdx-context.jsonld","@graph":[{"type":"CreationInfo","@id":"_:CreationInfo0","created":"2011-04-05T23:00:00Z","createdBy":["http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/agent/OpenEmbedded"],"createdUsing":["http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/tool/oe-spdx-creator_1_0"],"specVersion":"3.0.1"},{"type":"CreationInfo","@id":"_:CreationInfo1","created":"2025-08-02T06:58:39Z","createdBy":["http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/agent/OpenEmbedded"],"createdUsing":["http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/tool/oe-spdx-creator_1_0"],"specVersion":"3.0.1"},{"type":"Organization","spdxId":"http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/agent/OpenEmbedded","creationInfo":"_:CreationInfo0","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias"}],"name":"OpenEmbedded"},{"type":"Tool","spdxId":"http://spdx.org/spdxdocs/bitbake-addba517-4804-5ae3-87c2-0c3a1a5812ba/bitbake/tool/oe-spdx-creator_1_0","creationInfo":"_:CreationInfo0","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias"}],"name":"oe-spdx-creator 1.0"},{"type":"SpdxDocument","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/document/package-libffi8","profileConformance":["build","core","security","simpleLicensing","software"],"rootElement":["http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8"],"creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/doc/libffi/package-libffi8/libffi/UNIHASH/document/package-libffi8","https://rdf.openembedded.org/spdx/3.0/link-name":"22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293"}],"name":"package-libffi8"},{"type":"software_Package","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8","software_homePage":"http://sourceware.org/libffi/","software_packageUrl":"pkg:yocto/core/libffi@3.5.2","software_packageVersion":"3.5.2","software_primaryPurpose":"install","creationInfo":"_:CreationInfo1","description":"The `libffi' library provides a portable, high level programming interface to various calling conventions.  This allows a programmer to call any function specified by a call interface description at run time. FFI stands for Foreign Function Interface.  A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.  The `libffi' library really only provides the lowest, machine dependent layer of a fully featured foreign function interface.  A layer must exist above `libffi' that handles type conversions for values passed between the two languages.","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/package/libffi8"}],"externalIdentifier":[{"type":"ExternalIdentifier","externalIdentifierType":"packageUrl","identifier":"pkg:yocto/core/libffi@3.5.2"},{"type":"ExternalIdentifier","externalIdentifierType":"cpe23","identifier":"cpe:2.3:*:*:libffi:3.5.2:*:*:*:*:*:*:*"}],"name":"libffi8","summary":"A portable foreign function interface library"},{"type":"software_File","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8/file/1","creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/package/libffi8/file/1"}],"name":"usr/lib/libffi.so.8.2.0","verifiedUsing":[{"type":"Hash","algorithm":"sha256","hashValue":"e70a107a51ff3ea52ccbfedca2c07b26fd1c43223621660e60b1ad7bb5cb599d"}]},{"type":"Relationship","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/relationship/0d3996e14bc29fb36c3ef28eca0dabe9","from":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8","relationshipType":"hasDeclaredLicense","to":["http://spdxdocs.org/openembedded-alias/by-doc-hash/61a43d12fbbd18b70663923f9017755dc881dbacc10011d8a906585e5e66225a/libffi/UNIHASH/license/3_28_0/MIT"],"creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/relationship/0d3996e14bc29fb36c3ef28eca0dabe9"}]},{"type":"LifecycleScopedRelationship","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/relationship/2d380420330673d93aee5adb4fc9058e","scope":"build","from":"http://spdxdocs.org/openembedded-alias/by-doc-hash/61a43d12fbbd18b70663923f9017755dc881dbacc10011d8a906585e5e66225a/libffi/UNIHASH/build/recipe","relationshipType":"hasOutput","to":["http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8"],"creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/relationship/2d380420330673d93aee5adb4fc9058e"}]},{"type":"LifecycleScopedRelationship","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/relationship/5a3165df7da2cf2d67abcd33d01897bb","scope":"build","from":"http://spdxdocs.org/openembedded-alias/by-doc-hash/1030a654356bdf1ac2e282c7ed9054022d8977b50f08152d007062bd5010949e/libffi/UNIHASH/recipe/libffi","relationshipType":"generates","to":["http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8"],"creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/relationship/5a3165df7da2cf2d67abcd33d01897bb"}]},{"type":"Relationship","spdxId":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/relationship/982426b621bf9ceac5e056a5ac7d689a","from":"http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8","relationshipType":"contains","to":["http://spdx.org/spdxdocs/libffi-ca19a601-2f55-55a5-8304-8a0aefc05528/35c4bc59fdc9af737e7122661765093b95fe75cda519c451da2bf324df4ca9b0/package/libffi8/file/1"],"creationInfo":"_:CreationInfo1","extension":[{"type":"https://rdf.openembedded.org/spdx/3.0/id-alias","https://rdf.openembedded.org/spdx/3.0/alias":"http://spdxdocs.org/openembedded-alias/by-doc-hash/22b513149a2c83cb93f1d4933ebcba3398023f1a1caf3ef2701e753cdc248293/libffi/UNIHASH/relationship/982426b621bf9ceac5e056a5ac7d689a"}]}]}