Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
54
sources/poky/meta/lib/oeqa/selftest/cases/spdx.py
Normal file
54
sources/poky/meta/lib/oeqa/selftest/cases/spdx.py
Normal file
@@ -0,0 +1,54 @@
|
||||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
import json
|
||||
import os
|
||||
from oeqa.selftest.case import OESelftestTestCase
|
||||
from oeqa.utils.commands import bitbake, get_bb_var, runCmd
|
||||
|
||||
class SPDXCheck(OESelftestTestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(SPDXCheck, cls).setUpClass()
|
||||
bitbake("python3-spdx-tools-native")
|
||||
bitbake("-c addto_recipe_sysroot python3-spdx-tools-native")
|
||||
|
||||
def check_recipe_spdx(self, high_level_dir, spdx_file, target_name):
|
||||
config = """
|
||||
INHERIT += "create-spdx"
|
||||
"""
|
||||
self.write_config(config)
|
||||
|
||||
deploy_dir = get_bb_var("DEPLOY_DIR")
|
||||
machine_var = get_bb_var("MACHINE")
|
||||
# qemux86-64 creates the directory qemux86_64
|
||||
machine_dir = machine_var.replace("-", "_")
|
||||
|
||||
full_file_path = os.path.join(deploy_dir, "spdx", machine_dir, high_level_dir, spdx_file)
|
||||
|
||||
try:
|
||||
os.remove(full_file_path)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
bitbake("%s -c create_spdx" % target_name)
|
||||
|
||||
def check_spdx_json(filename):
|
||||
with open(filename) as f:
|
||||
report = json.load(f)
|
||||
self.assertNotEqual(report, None)
|
||||
self.assertNotEqual(report["SPDXID"], None)
|
||||
|
||||
python = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'nativepython3')
|
||||
validator = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'pyspdxtools')
|
||||
result = runCmd("{} {} -i {}".format(python, validator, filename))
|
||||
|
||||
self.assertExists(full_file_path)
|
||||
result = check_spdx_json(full_file_path)
|
||||
|
||||
def test_spdx_base_files(self):
|
||||
self.check_recipe_spdx("packages", "base-files.spdx.json", "base-files")
|
||||
Reference in New Issue
Block a user