Skip to contentSkip to conversation

image_types_wic: fix scheduling of prepare_wic_build

PATCH In review Ed Bartosh 2 participants 3 messages May 26, 2017

lore
Share & tools
lore

Ed Bartosh

author
#0 lore raw

cover image_types_wic: fix scheduling of prepare_wic_build

Hi,

This patch fixes wic build on machines that don't support EFI.

It also fixes build on intel-meta layer for intel-corei7-64 machine that was broken by previous patches due to the wrong assumption that EFI_PROVIDER recipe must be present if layer provides EFI functionality.

This patch obsoletes 2 previous patches:
image_types_wic: schedule prepare_wic_build correctly
image_types_wic: reschedule do_prepare_wic_build

The following changes since commit 1b131061ebe121f554b931f50ee9ff934f61b762:

runqemu: output qemu-system errors (2017-05-26 16:37:23 +0300)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ed/wic/wip
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/wic/wip

Ed Bartosh (1):
image_types_wic: schedule prepare_wic_build correctly

 meta/classes/image_types_wic.bbclass | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

--
Regards,
Ed

author
#1 lore raw

PATCH 1/1 image_types_wic: schedule prepare_wic_build correctly

When EFI is enabled we need to ensure that kernel and bootloader artifacts are fully deployed before running prepare_wic_build. This is done by scheduling this task after do_bootimg and by adding dependencty to virtual/kernel:do_deploy task.

Scheduled prepare_wic_build only if wic build is enabled to avoid running it when it's not needed.

---
 meta/classes/image_types_wic.bbclass | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)
meta/classes/image_types_wic.bbclass +15 -13
index d8430e4..baf375b 100644
@@ -69,6 +69,12 @@ python () {
                 # file in process_wks_template as well, so just put it in
                 # a variable and let the metadata deal with the deps.
                 d.setVar('_WKS_TEMPLATE', body)
+
+        if d.getVar('EFI_CLASS'):
+            bb.build.addtask('do_prepare_wic_build', 'do_image_wic', 'do_bootimg', d)
+            d.appendVarFlag('do_prepare_wic_build', 'depends', 'virtual/kernel:do_deploy')
+        else:
+            bb.build.addtask('do_prepare_wic_build', 'do_image_wic', None, d)
 }
 
 #
@@ -139,19 +145,15 @@ python do_prepare_wic_build() {
         with open(wks_file, 'w') as f:
             f.write(template_body)
 
-    if d.getVar('USING_WIC'):
-        # Generate parition UUID
-        from uuid import uuid4
-        partuuid = str(uuid4())
-        d.setVar("ROOTFS_PARTUUID", partuuid)
+    # Generate parition UUID
+    from uuid import uuid4
+    partuuid = str(uuid4())
+    d.setVar("ROOTFS_PARTUUID", partuuid)
 
-        if d.getVar("EFI_CLASS"):
-            populate_bootfs(partuuid)
+    if d.getVar("EFI_CLASS"):
+        populate_bootfs(partuuid)
 
-        template = d.getVar("_WKS_TEMPLATE")
-        if template:
-            write_wks_template(template, d.getVar('WKS_FULL_PATH'))
+    template = d.getVar("_WKS_TEMPLATE")
+    if template:
+        write_wks_template(template, d.getVar('WKS_FULL_PATH'))
 }
-
-addtask do_prepare_wic_build before do_image_wic
-do_prepare_wic_build[depends] = "${MLPREFIX}${EFI_PROVIDER}:do_deploy virtual/kernel:do_deploy"
Signature · 1 line
2.1.4
#2 lore raw

✗ patchtest: failure for image_types_wic: fix scheduling of prepare_wic_build

In reply to Ed Bartosh

== Series Details ==

Series: image_types_wic: fix scheduling of prepare_wic_build
Revision: 1
URL : https://patchwork.openembedded.org/series/6934/
State : failure

== Summary ==

Thank you for submitting this patch series to OpenEmbedded Core. This is an automated response. Several tests have been executed on the proposed series by patchtest resulting in the following failures:

* Issue Series does not apply on top of target branch [test_series_merge_on_head]
Suggested fix Rebase your series on top of targeted branch
Targeted branch master (currently at 12373003cc)

If you believe any of these test results are incorrect, please reply to the mailing list ([email protected]) raising your concerns. Otherwise we would appreciate you correcting the issues and submitting a new version of the patchset if applicable. Please ensure you add/increment the version number when sending the new version (i.e. [PATCH] -> [PATCH v2] -> [PATCH v3] -> ...).

---

Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe