<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 11, 2017 at 9:55 PM, Alejandro Hernandez <span dir="ltr"><<a href="mailto:alejandro.hernandez@linux.intel.com" target="_blank">alejandro.hernandez@linux.intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Tom Zanussi <<a href="mailto:tom.zanussi@linux.intel.com">tom.zanussi@linux.intel.com</a>><br>
<br>
Rather than create an actual image, just put the image artifacts in an<br>
'artifacts' directory that can then be picked up by wic.<br>
<br></blockquote><div><br></div><div>This is a desired goal now that wic is more widely used. However, any particular</div><div>reason why the implementation talks about "live" and copies what the live image</div><div>do_bootimg gives? </div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Signed-off-by: Alejandro Hernandez <<a href="mailto:alejandro.hernandez@linux.intel.com">alejandro.hernandez@linux.<wbr>intel.com</a>><br>
Signed-off-by: Tom Zanussi <<a href="mailto:tom.zanussi@linux.intel.com">tom.zanussi@linux.intel.com</a>><br>
---<br>
meta/classes/image-live-<wbr>artifacts.bbclass | 40 ++++++++++++++++++++++++++++++<wbr>+<br>
meta/classes/image.bbclass | 3 +++<br>
meta/classes/image_types.<wbr>bbclass | 2 ++<br>
3 files changed, 45 insertions(+)<br>
create mode 100644 meta/classes/image-live-<wbr>artifacts.bbclass<br>
<br>
diff --git a/meta/classes/image-live-<wbr>artifacts.bbclass b/meta/classes/image-live-<wbr>artifacts.bbclass<br>
new file mode 100644<br>
index 0000000..1501a9b<br>
--- /dev/null<br>
+++ b/meta/classes/image-live-<wbr>artifacts.bbclass<br>
@@ -0,0 +1,40 @@<br>
+# Create the artifacts only on an ARTIFACTS_DIR,<br>
+# which can be later picked up by wic<br>
+<br>
+inherit live-vm-common<br>
+<br>
+do_bootimg[depends] += "dosfstools-native:do_<wbr>populate_sysroot \<br></blockquote><div><br></div><div>perhaps have 'do_image_artifacts' and let users/other classes set additional dependencies.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+ mtools-native:do_populate_<wbr>sysroot \<br>
+ cdrtools-native:do_populate_<wbr>sysroot \<br>
+ virtual/kernel:do_deploy \<br>
+ ${MLPREFIX}syslinux:do_<wbr>populate_sysroot \<br>
+ syslinux-native:do_populate_<wbr>sysroot \<br></blockquote><div><br></div><div>For example, if I use systemd-boot I don't need syslinux built at all. The EFI_CLASS/PCBIOS_CLASS</div><div>could define the additional depends here (like they are currently doing for bootimg/bootdirectdisk).</div><div><br></div><div>The defaults should be just kernel and initrd(s) (if defined).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+ ${@oe.utils.ifelse(d.getVar('<wbr>COMPRESSISO', False),'zisofs-tools-native:<wbr>do_populate_sysroot','')} \<br>
+ "<br>
+<br>
+<br>
+LABELS_LIVE ?= "boot install"<br>
+<br>
+ARTIFACTS_DIR = "${DEPLOY_DIR_IMAGE}/<wbr>artifacts"<br>
+<br>
+populate_bootloader() {<br>
+ populate_kernel ${ARTIFACTS_DIR}<br>
+<br>
+ if [ "${PCBIOS}" = "1" ]; then<br>
+ syslinux_hddimg_populate ${ARTIFACTS_DIR}<br>
+ fi<br>
+ if [ "${EFI}" = "1" ]; then<br>
+ efi_hddimg_populate ${ARTIFACTS_DIR}<br>
+ fi<br>
+}<br>
+<br>
+python do_bootimg() {<br>
+ set_live_vm_vars(d, 'LIVE')<br>
+ if d.getVar("PCBIOS", True) == "1":<br>
+ bb.build.exec_func('build_<wbr>syslinux_cfg', d)<br>
+ if d.getVar("EFI", True) == "1":<br>
+ bb.build.exec_func('build_efi_<wbr>cfg', d)<br>
+ bb.build.exec_func('populate_<wbr>bootloader', d)<br>
+}<br>
+<br>
+addtask bootimg before do_image_complete<br>
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass<br>
index 04fd5f9..fd249c8 100644<br>
--- a/meta/classes/image.bbclass<br>
+++ b/meta/classes/image.bbclass<br>
@@ -130,6 +130,9 @@ do_rootfs[vardeps] += "${@rootfs_variables(d)}"<br>
do_build[depends] += "virtual/kernel:do_deploy"<br>
<br>
def build_live(d):<br>
+ if bb.utils.contains("IMAGE_<wbr>FSTYPES", "live-artifacts-only", "live-artifacts-only", "0", d) == "live-artifacts-only":<br>
+ return "image-live-artifacts"<br></blockquote><div><br></div><div>Is there a need for the image artifacts for other than wic? It could be made so that if wic is in IMAGE_FSTYPES,</div><div>image-artifacts are built by default. This means the logic of inheriting image-artifacts has a better place, e.g.,</div><div>in it's own build_wic() check.</div><div><br></div><div>-- Mikko</div></div></div></div>