[5/5] image-buildinfo: Improve and extend to SDK coverage too

Message ID 20220609113732.43566-5-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 38b9525f1d5377288922e7cbac3f30afe6046242
Headers show
Series [1/5] classes/buildcfg: Move git/layer revision code into new OE module buildcfg | expand

Commit Message

Richard Purdie June 9, 2022, 11:37 a.m. UTC
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/classes/image-buildinfo.bbclass | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

Patch

diff --git a/meta/classes/image-buildinfo.bbclass b/meta/classes/image-buildinfo.bbclass
index d4a12b5e102..ef790bb73b4 100644
--- a/meta/classes/image-buildinfo.bbclass
+++ b/meta/classes/image-buildinfo.bbclass
@@ -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;"
+