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:
75
sources/meta-tq/meta-dumpling/classes/tq-buildinfo.bbclass
Normal file
75
sources/meta-tq/meta-dumpling/classes/tq-buildinfo.bbclass
Normal file
@@ -0,0 +1,75 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany
|
||||
#
|
||||
# Reuse and extend image-buildinfo.bbclass to generate '/etc/buildinfo' with SCM
|
||||
# information for the built BSP and configuration information for machine / distro / image
|
||||
# Additionally the image specific buildinfo is generated in DEPLOY_DIR_IMAGE using
|
||||
# IMAGE_NAME and IMAGE_LINK_NAME
|
||||
#
|
||||
# Usage: add INHERIT += "tq-buildinfo" to your conf file
|
||||
#
|
||||
|
||||
# support creating /etc/buildinfo in image
|
||||
inherit image-buildinfo
|
||||
|
||||
# define what to put in /etc/buildinfo
|
||||
IMAGE_BUILDINFO_VARS += "DISTRO"
|
||||
IMAGE_BUILDINFO_VARS += "MACHINE"
|
||||
IMAGE_BUILDINFO_VARS += "DEFAULTTUNE"
|
||||
IMAGE_BUILDINFO_VARS += "MACHINE_FEATURES"
|
||||
IMAGE_BUILDINFO_VARS += "DISTRO_FEATURES"
|
||||
IMAGE_BUILDINFO_VARS += "COMBINED_FEATURES"
|
||||
IMAGE_BUILDINFO_VARS += "IMAGE_FEATURES"
|
||||
IMAGE_BUILDINFO_VARS += "MACHINEOVERRIDES"
|
||||
IMAGE_BUILDINFO_VARS += "DISTROOVERRIDES"
|
||||
|
||||
# use functions from oe.buildcfg to get information about the
|
||||
# build space project. This assumes, that the build directory is
|
||||
# located inside the checked out build space repository. 'TOPDIR' resolves to the
|
||||
# top level build directory
|
||||
def topproject_revision(d):
|
||||
topdir = d.getVar('TOPDIR')
|
||||
bspdir = d.getVar('BSPDIR')
|
||||
|
||||
if bspdir is None :
|
||||
bb.warn("BSPDIR is not set. Unknown build configuration.")
|
||||
|
||||
git_description = oe.buildcfg.get_metadata_git_revision(topdir)
|
||||
if git_description != '<unknown>':
|
||||
git_description = oe.buildcfg.get_metadata_git_describe(topdir)
|
||||
|
||||
return git_description
|
||||
|
||||
# set variable to the SCM revision information of our build space repository
|
||||
TOPPROJECT_REVISION = "${@topproject_revision(d)}"
|
||||
|
||||
# we want this information in our /etc/buildinfo
|
||||
IMAGE_BUILDINFO_VARS += "TOPPROJECT_REVISION"
|
||||
|
||||
# Extend the image-buildinfo class to store the information in ${DEPLOY_DIR_IMAGE},
|
||||
# too
|
||||
TQ_IMAGE_BUILDINFO_FILE = "${IMAGE_NAME}.buildinfo"
|
||||
TQ_IMAGE_BUILDINFO_LINK = "${IMAGE_LINK_NAME}.buildinfo"
|
||||
|
||||
python tq_buildinfo_build () {
|
||||
deploy_dir = d.getVar("DEPLOY_DIR_IMAGE")
|
||||
|
||||
d.setVar("BUILDINFODEST", deploy_dir)
|
||||
d.setVar("IMAGE_BUILDINFO_FILE", "/" + d.getVar("TQ_IMAGE_BUILDINFO_FILE"))
|
||||
|
||||
bb.build.exec_func("buildinfo", d)
|
||||
|
||||
dst = os.path.join(deploy_dir, d.getVar("TQ_IMAGE_BUILDINFO_LINK"))
|
||||
src = d.getVar("TQ_IMAGE_BUILDINFO_FILE")
|
||||
if os.path.exists(os.path.join(deploy_dir, d.getVar("TQ_IMAGE_BUILDINFO_FILE"))):
|
||||
bb.note("Creating symlink: %s -> %s" % (dst, src))
|
||||
if os.path.islink(dst):
|
||||
os.remove(dst)
|
||||
os.symlink(src, dst)
|
||||
else:
|
||||
bb.note("Skipping symlink, source does not exist: %s -> %s" % (dst, src))
|
||||
}
|
||||
|
||||
# add trigger to generate ${DEPLOY_DIR_IMAGE}/${MACHINE}-buildinfo-${SOURCE_DATE_EPOCH}
|
||||
IMAGE_POSTPROCESS_COMMAND += "tq_buildinfo_build"
|
||||
Reference in New Issue
Block a user