diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-03-18 22:40:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-03-20 13:50:40 +0000 |
commit | 110b2c124bcc464325fc5cf987cdf95a19b22bd3 (patch) | |
tree | a49b1ded4238368829362a161e3ca60dc34e28c8 /meta/classes | |
parent | bdd2b0fee18c43597efc3493b9ac9ace9ccf7959 (diff) | |
download | poky-110b2c124bcc464325fc5cf987cdf95a19b22bd3.tar.gz |
spdx: Update for bitbake changes
Bitbake is dropping the need for fetcher name iteration and multiple revisions
per url. Update the code to match (removal of the for loop).
(From OE-Core rev: 4859cdf97fd9a260036e148e25f0b78eb393df1e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/create-spdx-2.2.bbclass | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index 494bde117f..8f988de868 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass | |||
@@ -352,34 +352,33 @@ def add_download_packages(d, doc, recipe): | |||
352 | for download_idx, src_uri in enumerate(d.getVar('SRC_URI').split()): | 352 | for download_idx, src_uri in enumerate(d.getVar('SRC_URI').split()): |
353 | f = bb.fetch2.FetchData(src_uri, d) | 353 | f = bb.fetch2.FetchData(src_uri, d) |
354 | 354 | ||
355 | for name in f.names: | 355 | package = oe.spdx.SPDXPackage() |
356 | package = oe.spdx.SPDXPackage() | 356 | package.name = "%s-source-%d" % (d.getVar("PN"), download_idx + 1) |
357 | package.name = "%s-source-%d" % (d.getVar("PN"), download_idx + 1) | 357 | package.SPDXID = oe.sbom.get_download_spdxid(d, download_idx + 1) |
358 | package.SPDXID = oe.sbom.get_download_spdxid(d, download_idx + 1) | ||
359 | 358 | ||
360 | if f.type == "file": | 359 | if f.type == "file": |
361 | continue | 360 | continue |
361 | |||
362 | if f.method.supports_checksum(f): | ||
363 | for checksum_id in CHECKSUM_LIST: | ||
364 | if checksum_id.upper() not in oe.spdx.SPDXPackage.ALLOWED_CHECKSUMS: | ||
365 | continue | ||
366 | |||
367 | expected_checksum = getattr(f, "%s_expected" % checksum_id) | ||
368 | if expected_checksum is None: | ||
369 | continue | ||
362 | 370 | ||
363 | if f.method.supports_checksum(f): | 371 | c = oe.spdx.SPDXChecksum() |
364 | for checksum_id in CHECKSUM_LIST: | 372 | c.algorithm = checksum_id.upper() |
365 | if checksum_id.upper() not in oe.spdx.SPDXPackage.ALLOWED_CHECKSUMS: | 373 | c.checksumValue = expected_checksum |
366 | continue | 374 | package.checksums.append(c) |
367 | 375 | ||
368 | expected_checksum = getattr(f, "%s_expected" % checksum_id) | 376 | package.downloadLocation = oe.spdx_common.fetch_data_to_uri(f, f.name) |
369 | if expected_checksum is None: | 377 | doc.packages.append(package) |
370 | continue | 378 | doc.add_relationship(doc, "DESCRIBES", package) |
371 | 379 | # In the future, we might be able to do more fancy dependencies, | |
372 | c = oe.spdx.SPDXChecksum() | 380 | # but this should be sufficient for now |
373 | c.algorithm = checksum_id.upper() | 381 | doc.add_relationship(package, "BUILD_DEPENDENCY_OF", recipe) |
374 | c.checksumValue = expected_checksum | ||
375 | package.checksums.append(c) | ||
376 | |||
377 | package.downloadLocation = oe.spdx_common.fetch_data_to_uri(f, name) | ||
378 | doc.packages.append(package) | ||
379 | doc.add_relationship(doc, "DESCRIBES", package) | ||
380 | # In the future, we might be able to do more fancy dependencies, | ||
381 | # but this should be sufficient for now | ||
382 | doc.add_relationship(package, "BUILD_DEPENDENCY_OF", recipe) | ||
383 | 382 | ||
384 | def get_license_list_version(license_data, d): | 383 | def get_license_list_version(license_data, d): |
385 | # Newer versions of the SPDX license list are SemVer ("MAJOR.MINOR.MICRO"), | 384 | # Newer versions of the SPDX license list are SemVer ("MAJOR.MINOR.MICRO"), |