From 006f1406875309aa86cd356734c60971d2f03cf5 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Mon, 27 Mar 2023 15:05:29 -0500 Subject: create-spdx: Use gzip for compression The master version of the SPDX classes uses zstd for efficient compression, but it relies on the zstd tool to be present on the host system. Since dunfell supports older distros, we don't want to add this tool as an additional requirement so switch to using gzip instead. (From OE-Core rev: 55b08fd641767a3d2e080727828ca37d9e610109) Signed-off-by: Joshua Watt Signed-off-by: Steve Sakoman Signed-off-by: Richard Purdie --- meta/classes/create-spdx-2.2.bbclass | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'meta/classes') diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index 13d13fe1fc..42b693d586 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass @@ -466,13 +466,11 @@ python do_create_spdx() { @contextmanager def optional_tarfile(name, guard, mode="w"): import tarfile - import bb.compress.zstd - - num_threads = int(d.getVar("BB_NUMBER_THREADS")) + import gzip if guard: name.parent.mkdir(parents=True, exist_ok=True) - with bb.compress.zstd.open(name, mode=mode + "b", num_threads=num_threads) as f: + with gzip.open(name, mode=mode + "b") as f: with tarfile.open(fileobj=f, mode=mode + "|") as tf: yield tf else: @@ -550,7 +548,7 @@ python do_create_spdx() { add_download_packages(d, doc, recipe) if process_sources(d) and include_sources: - recipe_archive = deploy_dir_spdx / "recipes" / (doc.name + ".tar.zst") + recipe_archive = deploy_dir_spdx / "recipes" / (doc.name + ".tar.gz") with optional_tarfile(recipe_archive, archive_sources) as archive: spdx_get_src(d) @@ -618,7 +616,7 @@ python do_create_spdx() { package_doc.add_relationship(spdx_package, "GENERATED_FROM", "%s:%s" % (recipe_ref.externalDocumentId, recipe.SPDXID)) package_doc.add_relationship(package_doc, "DESCRIBES", spdx_package) - package_archive = deploy_dir_spdx / "packages" / (package_doc.name + ".tar.zst") + package_archive = deploy_dir_spdx / "packages" / (package_doc.name + ".tar.gz") with optional_tarfile(package_archive, archive_packaged) as archive: package_files = add_package_files( d, @@ -899,8 +897,8 @@ python image_combine_spdx() { if link != target_path: link.symlink_to(os.path.relpath(target_path, link.parent)) - spdx_tar_path = imgdeploydir / (image_name + ".spdx.tar.zst") - make_image_link(spdx_tar_path, ".spdx.tar.zst") + spdx_tar_path = imgdeploydir / (image_name + ".spdx.tar.gz") + make_image_link(spdx_tar_path, ".spdx.tar.gz") } python sdk_host_combine_spdx() { @@ -931,7 +929,7 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx from datetime import timezone, datetime from pathlib import Path import tarfile - import bb.compress.zstd + import gzip creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX")) @@ -1002,8 +1000,8 @@ def combine_spdx(d, rootfs_name, rootfs_deploydir, rootfs_spdxid, packages, spdx index = {"documents": []} - spdx_tar_path = rootfs_deploydir / (rootfs_name + ".spdx.tar.zst") - with bb.compress.zstd.open(spdx_tar_path, "w", num_threads=num_threads) as f: + spdx_tar_path = rootfs_deploydir / (rootfs_name + ".spdx.tar.gz") + with gzip.open(spdx_tar_path, "w") as f: with tarfile.open(fileobj=f, mode="w|") as tar: def collect_spdx_document(path): nonlocal tar -- cgit v1.2.3-54-g00ecf