mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 09:49:33 +02:00
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 <JPEWhacker@gmail.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
77e8b40bae
commit
006f140687
@@ -466,13 +466,11 @@ python do_create_spdx() {
|
|||||||
@contextmanager
|
@contextmanager
|
||||||
def optional_tarfile(name, guard, mode="w"):
|
def optional_tarfile(name, guard, mode="w"):
|
||||||
import tarfile
|
import tarfile
|
||||||
import bb.compress.zstd
|
import gzip
|
||||||
|
|
||||||
num_threads = int(d.getVar("BB_NUMBER_THREADS"))
|
|
||||||
|
|
||||||
if guard:
|
if guard:
|
||||||
name.parent.mkdir(parents=True, exist_ok=True)
|
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:
|
with tarfile.open(fileobj=f, mode=mode + "|") as tf:
|
||||||
yield tf
|
yield tf
|
||||||
else:
|
else:
|
||||||
@@ -550,7 +548,7 @@ python do_create_spdx() {
|
|||||||
add_download_packages(d, doc, recipe)
|
add_download_packages(d, doc, recipe)
|
||||||
|
|
||||||
if process_sources(d) and include_sources:
|
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:
|
with optional_tarfile(recipe_archive, archive_sources) as archive:
|
||||||
spdx_get_src(d)
|
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(spdx_package, "GENERATED_FROM", "%s:%s" % (recipe_ref.externalDocumentId, recipe.SPDXID))
|
||||||
package_doc.add_relationship(package_doc, "DESCRIBES", spdx_package)
|
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:
|
with optional_tarfile(package_archive, archive_packaged) as archive:
|
||||||
package_files = add_package_files(
|
package_files = add_package_files(
|
||||||
d,
|
d,
|
||||||
@@ -899,8 +897,8 @@ python image_combine_spdx() {
|
|||||||
if link != target_path:
|
if link != target_path:
|
||||||
link.symlink_to(os.path.relpath(target_path, link.parent))
|
link.symlink_to(os.path.relpath(target_path, link.parent))
|
||||||
|
|
||||||
spdx_tar_path = imgdeploydir / (image_name + ".spdx.tar.zst")
|
spdx_tar_path = imgdeploydir / (image_name + ".spdx.tar.gz")
|
||||||
make_image_link(spdx_tar_path, ".spdx.tar.zst")
|
make_image_link(spdx_tar_path, ".spdx.tar.gz")
|
||||||
}
|
}
|
||||||
|
|
||||||
python sdk_host_combine_spdx() {
|
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 datetime import timezone, datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import tarfile
|
import tarfile
|
||||||
import bb.compress.zstd
|
import gzip
|
||||||
|
|
||||||
creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||||
deploy_dir_spdx = Path(d.getVar("DEPLOY_DIR_SPDX"))
|
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": []}
|
index = {"documents": []}
|
||||||
|
|
||||||
spdx_tar_path = rootfs_deploydir / (rootfs_name + ".spdx.tar.zst")
|
spdx_tar_path = rootfs_deploydir / (rootfs_name + ".spdx.tar.gz")
|
||||||
with bb.compress.zstd.open(spdx_tar_path, "w", num_threads=num_threads) as f:
|
with gzip.open(spdx_tar_path, "w") as f:
|
||||||
with tarfile.open(fileobj=f, mode="w|") as tar:
|
with tarfile.open(fileobj=f, mode="w|") as tar:
|
||||||
def collect_spdx_document(path):
|
def collect_spdx_document(path):
|
||||||
nonlocal tar
|
nonlocal tar
|
||||||
|
|||||||
Reference in New Issue
Block a user