image-buildinfo: Improve and extend to SDK coverage too

Rename the default file from "build" to "buildinfo" since this is more
obvious to anyone looking in an image.

Add SDK_BUILDINFO_FILE and allow the same information to be written into
SDK images. This will be useful for buildtools-tarball and uninative-tarball.

(From OE-Core rev: 38b9525f1d5377288922e7cbac3f30afe6046242)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2022-06-09 12:32:36 +01:00
parent 38a9622ba3
commit 99f1425340

View File

@@ -1,5 +1,5 @@
#
# Writes build information to target filesystem on /etc/build
# Writes build information to target filesystem on /etc/buildinfo
#
# Copyright (C) 2014 Intel Corporation
# Author: Alejandro Enedino Hernandez Samaniego <alejandro.hernandez@intel.com>
@@ -13,7 +13,8 @@
IMAGE_BUILDINFO_VARS ?= "DISTRO DISTRO_VERSION"
# Desired location of the output file in the image.
IMAGE_BUILDINFO_FILE ??= "${sysconfdir}/build"
IMAGE_BUILDINFO_FILE ??= "${sysconfdir}/buildinfo"
SDK_BUILDINFO_FILE ??= "/buildinfo"
# From buildhistory.bbclass
def image_buildinfo_outputvars(vars, d):
@@ -40,11 +41,12 @@ def buildinfo_target(d):
vars = (d.getVar("IMAGE_BUILDINFO_VARS") or "")
return image_buildinfo_outputvars(vars, d)
# Write build information to target filesystem
python buildinfo () {
python buildinfo() {
if not d.getVar('IMAGE_BUILDINFO_FILE'):
return
with open(d.expand('${IMAGE_ROOTFS}${IMAGE_BUILDINFO_FILE}'), 'w') as build:
destfile = d.expand('${BUILDINFODEST}${IMAGE_BUILDINFO_FILE}')
bb.utils.mkdirhier(os.path.dirname(destfile))
with open(destfile, 'w') as build:
build.writelines((
'''-----------------------
Build Configuration: |
@@ -62,4 +64,18 @@ Layer Revisions: |
))
}
IMAGE_PREPROCESS_COMMAND += "buildinfo;"
# Write build information to target filesystem
python buildinfo_image () {
d.setVar("BUILDINFODEST", "${IMAGE_ROOTFS}")
bb.build.exec_func("buildinfo", d)
}
python buildinfo_sdk () {
d.setVar("BUILDINFODEST", "${SDK_OUTPUT}/${SDKPATH}")
d.setVar("IMAGE_BUILDINFO_FILE", d.getVar("SDK_BUILDINFO_FILE"))
bb.build.exec_func("buildinfo", d)
}
IMAGE_PREPROCESS_COMMAND += "buildinfo_image;"
POPULATE_SDK_PRE_TARGET_COMMAND += "buildinfo_sdk;"