summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2025-06-23 15:23:51 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-06-24 13:53:23 +0100
commit838d7a5013136a4e056330b4a9f74c130340d084 (patch)
treef065ae467a4c12631848f19d2e6f334bd279dce2 /meta
parent0d201a6fd7c5398b54b7aefd2e2113c7a291fbe9 (diff)
downloadpoky-838d7a5013136a4e056330b4a9f74c130340d084.tar.gz
image_types_wic: Fix file-checksums for missing files in search path
When we tell bitbake about file-checksums, we need to tell it both the files we look at that exist, but also the ones we looked for but aren't present. This means that if files appear earlier in the search path, bitbake can then do the correct things like updating the taskhash and re-running the recipe/task. In this case, wic was only signalling file presence. This patch adds in the files it looked at but didn't find too. (From OE-Core rev: ef96e2efcd95785e29ff7c62b2cb76e26f46f5ec) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes-recipe/image_types_wic.bbclass12
1 files changed, 11 insertions, 1 deletions
diff --git a/meta/classes-recipe/image_types_wic.bbclass b/meta/classes-recipe/image_types_wic.bbclass
index 740ed946f8..6180874a4c 100644
--- a/meta/classes-recipe/image_types_wic.bbclass
+++ b/meta/classes-recipe/image_types_wic.bbclass
@@ -57,6 +57,16 @@ def wks_search(files, search_path):
57 if searched: 57 if searched:
58 return searched 58 return searched
59 59
60def wks_checksums(files, search_path):
61 ret = ""
62 for f in files:
63 found, hist = bb.utils.which(search_path, f, history=True)
64 ret = ret + " " + " ".join(h + ":False" for h in hist[:-1])
65 if found:
66 ret = ret + " " + found + ":True"
67 return ret
68
69
60WIC_CREATE_EXTRA_ARGS ?= "" 70WIC_CREATE_EXTRA_ARGS ?= ""
61 71
62IMAGE_CMD:wic () { 72IMAGE_CMD:wic () {
@@ -98,7 +108,7 @@ do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
98 108
99# Rebuild when the wks file or vars in WICVARS change 109# Rebuild when the wks file or vars in WICVARS change
100USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}" 110USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
101WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}" 111WKS_FILE_CHECKSUM = "${@wks_checksums(d.getVar('WKS_FILES').split(), d.getVar('WKS_SEARCH_PATH')) if '${USING_WIC}' else ''}"
102do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}" 112do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}"
103do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r in ('parted', 'gptfdisk', 'dosfstools', 'mtools'))}" 113do_image_wic[depends] += "${@' '.join('%s-native:do_populate_sysroot' % r for r in ('parted', 'gptfdisk', 'dosfstools', 'mtools'))}"
104 114