Bug 15033

Summary: wic: uefi-kernel loader breaks usage of IMAGE_EFI_BOOT_FILES
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Pavel Zhukov <pavel>
Component: Scripts and ToolsAssignee: Pavel Zhukov <pavel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: randy.macleod, ross.burton
Version: unspecified   
Target Milestone: 4.2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Pavel Zhukov 2023-02-16 11:33:12 UTC
b18025fc8a2dad963b6f4b697e24455f2511b279 introduces possibility to have uefi-kernel loader in wic however it returns from  do_configure_partition() to early which causes AttributeError due to undefined 'install_task' attribute [1]
Reproducer is: 
part /boot --source bootimg-efi --sourceparams="loader=uefi-kernel" --ondisk=sda --fstype=vfat --label boot --active --align 1024 --use-uuid 
and:
IMAGE_EFI_BOOT_FILES += "mydtb.dtb;EFI/BOOT/"

[1]
| DEBUG: Executing shell function do_image_wic
| INFO: Creating image(s)...
| 
| Traceback (most recent call last):
|   File "/mnt/builds/yocto/sources/scripts/wic", line 547, in <module>
|     sys.exit(main(sys.argv[1:]))
|              ^^^^^^^^^^^^^^^^^^
|   File "/mnt/builds/yocto/sources/scripts/wic", line 542, in main
|     return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/help.py", line 83, in invoke_subcommand
|     subcmd[0](args, usage)
|   File "/mnt/builds/yocto/sources/scripts/wic", line 222, in wic_create_subcommand
|     engine.wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/engine.py", line 190, in wic_create
|     plugin.do_create()
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 98, in do_create
|     self.create()
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 186, in create
|     self._image.prepare(self)
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/imager/direct.py", line 367, in prepare
|     part.prepare(imager, imager.workdir, imager.oe_builddir,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/partition.py", line 186, in prepare
|     plugin.do_prepare_partition(self, srcparams_dict, creator,
|   File "/mnt/builds/yocto/sources/scripts/lib/wic/plugins/source/bootimg-efi.py", line 371, in do_prepare_partition
|     for src_path, dst_path in cls.install_task:
|                               ^^^^^^^^^^^^^^^^
| AttributeError: type object 'BootimgEFIPlugin' has no attribute 'install_task'. Did you mean: 'do_install_disk'?
Comment 2 Pavel Zhukov 2023-02-16 15:33:14 UTC
Nice to have test