summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2023-03-27 15:05:29 -0500
committerSteve Sakoman <steve@sakoman.com>2023-03-27 16:29:20 -1000
commit55b08fd641767a3d2e080727828ca37d9e610109 (patch)
tree28de0e65986bc63766d08ef145dbf439e1a6f70e
parent5f9a8809acf1ab4e73c3085b8fd100f4568ebd86 (diff)
downloadopenembedded-core-contrib-55b08fd641767a3d2e080727828ca37d9e610109.tar.gz
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. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/classes/create-spdx-2.2.bbclass20
1 files changed, 9 insertions, 11 deletions
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