Reviewed-by: Joshua Watt <jpewhac...@gmail.com> On Tue, Dec 24, 2024 at 7:48 PM hongxu via lists.openembedded.org <hongxu.jia=eng.windriver....@lists.openembedded.org> wrote: > > After commit [spdx 3.0: Rework how SPDX aliases are linked] applied, it set > license_text_map with SPDX alias other than actual ID > > The property of simplelicensing_customIdToUri is > ListProp(ObjectProp(DictionaryEntry))), > and class DictionaryEntry has key and value, the property of value is > StringProp other > than ObjectProp in which could not support to decode/extract SPDX alias with > actual ID > in image jsonld file > ----------- > "simplelicensing_customIdToUri": [ > { > "type": "DictionaryEntry", > "key": "LicenseRef-PD", > "value": > "http://spdxdocs.org/openembedded-alias/by-doc-hash/d53e90e23b12c4ad640809a74a810e86f31c76cdbdf36487712d22a33d53362a/sqlite3-native/UNIHASH/license-text/PD" > } > ], > ----------- > > Add special code in the linking to manually go through all of the > simplelicensing_customIdToUri DictionaryEntry items and resolve > any aliases to actual objects > ----------- > "simplelicensing_customIdToUri": [ > { > "type": "DictionaryEntry", > "key": "LicenseRef-PD", > "value": > "http://spdx.org/spdxdocs/sqlite3-native-e5cc0672-d8dd-57e8-a2df-fe4615831fda/162c62b5b011cd3f82f413b3dae4d6d1542201552c964d5ce69fe170e0720b85/license-text/PD" > } > ] > ----------- > > Suggested-by: Joshua Watt <jpewhac...@gmail.com> > > Signed-off-by: Hongxu Jia <hongxu....@windriver.com> > --- > meta/lib/oe/sbom30.py | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py > index 08fea2aca3..0004447066 100644 > --- a/meta/lib/oe/sbom30.py > +++ b/meta/lib/oe/sbom30.py > @@ -855,6 +855,18 @@ class ObjectSet(oe.spdx30.SHACLObjectSet): > self.doc.import_ = sorted(imports.values(), key=lambda e: > e.externalSpdxId) > bb.debug(1, "Linking...") > self.link() > + > + # Manually go through all of the simplelicensing_customIdToUri > DictionaryEntry > + # items and resolve any aliases to actual objects. > + for lic in > self.foreach_type(oe.spdx30.simplelicensing_LicenseExpression): > + for d in lic.simplelicensing_customIdToUri: > + if d.value.startswith(OE_ALIAS_PREFIX): > + obj = self.find_by_id(d.value) > + if obj is not None: > + d.value = obj._id > + else: > + self.missing_ids.add(d.value) > + > self.missing_ids -= set(imports.keys()) > return self.missing_ids > > -- > 2.25.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#209480): https://lists.openembedded.org/g/openembedded-core/message/209480 Mute This Topic: https://lists.openembedded.org/mt/110280280/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-