@@ -16,6 +16,9 @@ IMAGE_BUILDINFO_VARS ?= "DISTRO DISTRO_VERSION"
IMAGE_BUILDINFO_FILE ??= "${sysconfdir}/buildinfo"
SDK_BUILDINFO_FILE ??= "/buildinfo"
+# Deploy the file alongside the images.
+IMAGE_BUILDINFO_DEPLOY ??= "0"
+
# From buildhistory.bbclass
def image_buildinfo_outputvars(vars, d):
vars = vars.split()
@@ -70,12 +73,20 @@ python buildinfo_image () {
bb.build.exec_func("buildinfo", d)
}
+python buildinfo_deploy() {
+ d.setVar("BUILDINFODEST", "${IMGDEPLOYDIR}/")
+ d.setVar("IMAGE_BUILDINFO_FILE", "${IMAGE_NAME}.buildinfo")
+ bb.build.exec_func("buildinfo", d)
+}
+do_image[postfuncs] += "create_symlinks"
+do_image[subimages] += "buildinfo"
+
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"
+IMAGE_PREPROCESS_COMMAND += "buildinfo_image ${@oe.utils.vartrue('IMAGE_BUILDINFO_DEPLOY', 'buildinfo_deploy', '', d)}"
POPULATE_SDK_PRE_TARGET_COMMAND += "buildinfo_sdk"
The `buildinfo` file generated by the `image-buildinfo` class contains useful information to identify an image. Having it in the rootfs of the image as well as deployed alongside the image artifact can be useful. Allow to deploy it alongside the image by setting 'IMAGE_BUILDINFO_DEPLOY' to '1'. I use this in an automated testing workflow with unreliable deploy step to ensure the deployment succeeded. With IMAGE_BUILDINFO_VARS += "IMAGE_NAME" IMAGE_BUILDINFO_DEPLOY = "1" the generated buidinfo file is unique and the deploy step can be verified by comparing (the hash of) the file on the booted system and in `IMAGE_DEPLOY_DIR`. Signed-off-by: Daniel Wagenknecht <dwagenknecht@emlix.com> --- I have prepared a patch for yocto-docs to add the variable to the glossary. I did not find guidance on how to do simultanious changes to OE-Core and yocto-docs so I'll send them once this has been merged. meta/classes/image-buildinfo.bbclass | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)