summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2019-08-08 13:23:57 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-08-12 16:23:57 +0100
commitb209d4117d3bf016c9681aa2312259ce3b572cbf (patch)
treee85dae2b0e17da7fbf5f2d550bd746ea433400db /meta/classes
parent359d61067a85044fd74b4afc8e440ebe5d6979fc (diff)
downloadpoky-b209d4117d3bf016c9681aa2312259ce3b572cbf.tar.gz
image_types_wic.bbclass: Copy the .wks and .env files to deploy image dir
When using a .wks.in file, the only place that the generated .wks file exists in the tmp/work area. A copy should be left behind in the deploy directory so that you can easily run the wic tool to re-generate or modify a new image without running bitbake. Custom .wks.in files can reference any number of bitbake variables, so it is important to save the result. below is an example of using the generated .wks file in the deploy area. The full name of my generated .wks file was core-image-minimal-ostree-uboot-ab.wks, but since you usually only have a single .wks file per image you can use a wild card like: cd tmp*/deploy/images/* wic create --vars . -e core-image-minimal -s -m core-image-minimal-*.wks (From OE-Core rev: 42293d75404486e20db9f7a80d0d1756887b576d) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/image_types_wic.bbclass11
1 files changed, 10 insertions, 1 deletions
diff --git a/meta/classes/image_types_wic.bbclass b/meta/classes/image_types_wic.bbclass
index 519aeb1b04..f350dc2723 100644
--- a/meta/classes/image_types_wic.bbclass
+++ b/meta/classes/image_types_wic.bbclass
@@ -77,6 +77,11 @@ python do_write_wks_template () {
77 wks_file = d.getVar('WKS_FULL_PATH') 77 wks_file = d.getVar('WKS_FULL_PATH')
78 with open(wks_file, 'w') as f: 78 with open(wks_file, 'w') as f:
79 f.write(template_body) 79 f.write(template_body)
80 f.close()
81 # Copy the finalized wks file to the deploy directory for later use
82 depdir = d.getVar('IMGDEPLOYDIR')
83 basename = d.getVar('IMAGE_BASENAME')
84 bb.utils.copyfile(wks_file, "%s/%s" % (depdir, basename + '-' + os.path.basename(wks_file)))
80} 85}
81 86
82python () { 87python () {
@@ -105,7 +110,7 @@ python () {
105 # file in process_wks_template as well, so just put it in 110 # file in process_wks_template as well, so just put it in
106 # a variable and let the metadata deal with the deps. 111 # a variable and let the metadata deal with the deps.
107 d.setVar('_WKS_TEMPLATE', body) 112 d.setVar('_WKS_TEMPLATE', body)
108 bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d) 113 bb.build.addtask('do_write_wks_template', 'do_image_wic', 'do_image', d)
109 bb.build.addtask('do_image_wic', 'do_image_complete', None, d) 114 bb.build.addtask('do_image_wic', 'do_image_complete', None, d)
110} 115}
111 116
@@ -127,6 +132,10 @@ python do_rootfs_wicenv () {
127 value = d.getVar(var) 132 value = d.getVar(var)
128 if value: 133 if value:
129 envf.write('%s="%s"\n' % (var, value.strip())) 134 envf.write('%s="%s"\n' % (var, value.strip()))
135 envf.close()
136 # Copy .env file to deploy directory for later use with stand alone wic
137 depdir = d.getVar('IMGDEPLOYDIR')
138 bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env')
130} 139}
131addtask do_rootfs_wicenv after do_image before do_image_wic 140addtask do_rootfs_wicenv after do_image before do_image_wic
132do_rootfs_wicenv[vardeps] += "${WICVARS}" 141do_rootfs_wicenv[vardeps] += "${WICVARS}"