<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 12, 2015 at 4:40 PM, Christopher Larson <span dir="ltr"><<a href="mailto:kergoth@gmail.com" target="_blank">kergoth@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":2d1" class="a3s" style="overflow:hidden">From: Christopher Larson <<a href="mailto:chris_larson@mentor.com">chris_larson@mentor.com</a>><br>
<br>
Hardcoding a full input path with zero flexibility goes against everything the<br>
Yocto Project is about. Rework it to let the user specify the wks base<br>
filename with WKS_FILE and it'll search the layers for the wks file and use<br>
it.<br>
<br>
Signed-off-by: Christopher Larson <<a href="mailto:chris_larson@mentor.com">chris_larson@mentor.com</a>><br>
---<br>
meta/classes/image_types.bbclass | 22 +++++++++++++++-------<br>
1 file changed, 15 insertions(+), 7 deletions(-)<br>
<br>
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass<br>
index 5036919..431df3a 100644<br>
--- a/meta/classes/image_types.bbclass<br>
+++ b/meta/classes/image_types.bbclass<br>
@@ -170,15 +170,23 @@ IMAGE_CMD_ubi () {<br>
<br>
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}"<br>
<br>
+WKS_FILE ?= "${FILE_DIRNAME}/${IMAGE_BASENAME}.${MACHINE}.wks"<br>
+WKS_FULL_PATH = "${@bb.utils.which('${WKS_SEARCH_PATH}', '${WKS_FILE}') if not os.path.isabs('${WKS_FILE}') else '${WKS_FILE}'}"<br>
+WKS_FULL_PATH[vardepvalue] = "${WKS_FULL_PATH}"<br>
+WKS_SEARCH_PATH ?= "${@':'.join('%s/scripts/lib/wic/canned-wks' % l for l in '${BBLAYERS}'.split())}"<br>
+<br>
IMAGE_CMD_wic () {<br>
- out=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}<br>
- wks=${FILE_DIRNAME}/${IMAGE_BASENAME}.${MACHINE}.wks<br>
- [ -e $wks ] || wks=${FILE_DIRNAME}/${IMAGE_BASENAME}.wks<br>
- [ -e $wks ] || bbfatal "Kiskstart file $wks doesn't exist"<br>
- BUILDDIR=${TOPDIR} wic create $wks --vars ${STAGING_DIR_TARGET}/imgdata/ -e ${IMAGE_BASENAME} -o $out/<br>
- mv $out/build/${IMAGE_BASENAME}*.direct $out.rootfs.wic<br>
- rm -rf $out/<br>
+ out="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}"<br>
+ wks="${WKS_FULL_PATH}"<br>
+ if [ ! -e "$wks" ]; then<br>
+ bbfatal "Kickstart file $wks doesn't exist"<br>
+ fi<br>
+<br>
+ BUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR_TARGET}/imgdata/" -e "${IMAGE_BASENAME}" -o "$out/"<br>
+ mv "$out/build/$(basename "${wks%.wks}")"*.direct "$out.rootfs.wic"<br>
+ rm -rf "$out/"<br>
}<br>
+IMAGE_CMD_wic[file-checksums] += "${WKS_FULLPATH}"</div></blockquote></div><br>Gah, I'll have to fix this and re-submit if needed, the varname is typoed, missing _. Also, it might be worth excluding WKS_FULL_PATH from vardeps entirely -- having to rerun the image build if a layer is moved isn't ideal, and we already have it in file-checksums. <br>-- <br><div class="gmail_signature"><div dir="ltr">Christopher Larson<br>kergoth at gmail dot com<br>Founder - BitBake, OpenEmbedded, OpenZaurus<br>Maintainer - Tslib<br>Senior Software Engineer, Mentor Graphics</div></div>
</div></div>