summaryrefslogtreecommitdiffstats
path: root/meta/classes/image_types.bbclass
diff options
context:
space:
mode:
authorChristopher Larson <chris_larson@mentor.com>2015-11-10 14:18:20 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-11 10:57:03 +0000
commit9991263ffe6ac11493333a76213850517760e50a (patch)
tree53508b33cf1c05ffe04b8dff5af0ecf3b2629502 /meta/classes/image_types.bbclass
parentb15baaee6f7a58abcbdfdfc0e4486644bb5d0de8 (diff)
downloadpoky-9991263ffe6ac11493333a76213850517760e50a.tar.gz
image_types: improve wks path specification
Hardcoding a full input path with zero flexibility goes against everything the Yocto Project is about. Rework it to let the user specify the wks base filename with WKS_FILE and it'll search the layers for the wks file and use it. (From OE-Core rev: cb5c5d950a83b85881eeadc0362230fa2720962f) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> (From OE-Core master rev: 8cc7f5229f5447c2183ac319dd52c7ed737ec89b) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/image_types.bbclass')
-rw-r--r--meta/classes/image_types.bbclass36
1 files changed, 29 insertions, 7 deletions
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 50369197c5..afe8d0cd8f 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -170,15 +170,37 @@ IMAGE_CMD_ubi () {
170 170
171IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}" 171IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}"
172 172
173WKS_FILE ?= "${IMAGE_BASENAME}.${MACHINE}.wks"
174WKS_FILES ?= "${WKS_FILE} ${IMAGE_BASENAME}.wks"
175WKS_SEARCH_PATH ?= "${THISDIR}:${@':'.join('%s/scripts/lib/wic/canned-wks' % l for l in '${BBPATH}:${COREBASE}'.split(':'))}"
176WKS_FULL_PATH = "${@wks_search('${WKS_FILES}'.split(), '${WKS_SEARCH_PATH}') or ''}"
177
178def wks_search(files, search_path):
179 for f in files:
180 if os.path.isabs(f):
181 if os.path.exists(f):
182 return f
183 else:
184 searched = bb.utils.which(search_path, f)
185 if searched:
186 return searched
187
173IMAGE_CMD_wic () { 188IMAGE_CMD_wic () {
174 out=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME} 189 out="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}"
175 wks=${FILE_DIRNAME}/${IMAGE_BASENAME}.${MACHINE}.wks 190 wks="${WKS_FULL_PATH}"
176 [ -e $wks ] || wks=${FILE_DIRNAME}/${IMAGE_BASENAME}.wks 191 if [ -z "$wks" ]; then
177 [ -e $wks ] || bbfatal "Kiskstart file $wks doesn't exist" 192 bbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately."
178 BUILDDIR=${TOPDIR} wic create $wks --vars ${STAGING_DIR_TARGET}/imgdata/ -e ${IMAGE_BASENAME} -o $out/ 193 fi
179 mv $out/build/${IMAGE_BASENAME}*.direct $out.rootfs.wic 194
180 rm -rf $out/ 195 BUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR_TARGET}/imgdata/" -e "${IMAGE_BASENAME}" -o "$out/"
196 mv "$out/build/$(basename "${wks%.wks}")"*.direct "$out.rootfs.wic"
197 rm -rf "$out/"
181} 198}
199IMAGE_CMD_wic[vardepsexclude] = "WKS_FULL_PATH WKS_FILES"
200
201# Rebuild when the wks file changes
202USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${COMPRESSIONTYPES}'.split()), '1', '', d)}"
203do_rootfs[file-checksums] += "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
182 204
183EXTRA_IMAGECMD = "" 205EXTRA_IMAGECMD = ""
184 206