All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scripts: wic plugin bootimg-biosxen drop helper to reuse bootimg-pcbios
@ 2025-05-04 20:31 Anibal Limon
  0 siblings, 0 replies; only message in thread
From: Anibal Limon @ 2025-05-04 20:31 UTC (permalink / raw)
  To: meta-virtualization; +Cc: bruce.ashfield, christopher.clark6, Anibal Limon

With wic plugins source rename on OE-Core now can be imported.

Drop the custom helper to find BootimgPcbiosPlugin plus adapt the code
removing all custom calls and references.
Finally rename bootimg-biosxen to allow be imported.

Tested with xen-image-minimal and testimage.

Signed-off-by: Anibal Limon <anibal@limonsoftware.com>
---
 ...{bootimg-biosxen.py => bootimg_biosxen.py} | 71 ++++---------------
 1 file changed, 12 insertions(+), 59 deletions(-)
 rename scripts/lib/wic/plugins/source/{bootimg-biosxen.py => bootimg_biosxen.py} (69%)

diff --git a/scripts/lib/wic/plugins/source/bootimg-biosxen.py b/scripts/lib/wic/plugins/source/bootimg_biosxen.py
similarity index 69%
rename from scripts/lib/wic/plugins/source/bootimg-biosxen.py
rename to scripts/lib/wic/plugins/source/bootimg_biosxen.py
index f00747db..5242ee4f 100644
--- a/scripts/lib/wic/plugins/source/bootimg-biosxen.py
+++ b/scripts/lib/wic/plugins/source/bootimg_biosxen.py
@@ -34,59 +34,18 @@ import os
 import types
 
 from wic import WicError
-import wic.pluginbase
-from importlib.machinery import SourceFileLoader
 from wic.misc import (exec_cmd, get_bitbake_var)
+from wic.plugins.source.bootimg_pcbios import BootimgPcbiosPlugin
 
 logger = logging.getLogger('wic')
 
-class BootimgBiosXenPlugin(wic.pluginbase.SourcePlugin):
+class BootimgBiosXenPlugin(BootimgPcbiosPlugin):
     """
     Create MBR boot partition including files for Xen
 
     """
 
     name = 'bootimg-biosxen'
-    __PCBIOS_MODULE_NAME = "bootimg-pcbios"
-    __imgBiosObj = None
-
-    @classmethod
-    def __init__(cls):
-        """
-        Constructor (init)
-        """
-        # original comment from bootimg-biosplusefi.py :
-        # "XXX For some reasons, __init__ constructor is never called.
-        #  Something to do with how pluginbase works?"
-        cls.__instanciateBIOSClass()
-
-    @classmethod
-    def __instanciateBIOSClass(cls):
-        """
-
-        """
-        # Import bootimg-pcbios (class name "BootimgPcbiosPlugin")
-        modulePath = os.path.join(os.path.dirname(wic.pluginbase.__file__),
-                                  "plugins", "source",
-                                  cls.__PCBIOS_MODULE_NAME + ".py")
-        loader = SourceFileLoader(cls.__PCBIOS_MODULE_NAME, modulePath)
-        mod = types.ModuleType(loader.name)
-        loader.exec_module(mod)
-        cls.__imgBiosObj = mod.BootimgPcbiosPlugin()
-
-    @classmethod
-    def do_install_disk(cls, disk, disk_name, creator, workdir, oe_builddir,
-                        bootimg_dir, kernel_dir, native_sysroot):
-        """
-        Called after all partitions have been prepared and assembled into a
-        disk image.
-        """
-        if not cls.__imgBiosObj:
-            cls.__instanciateBIOSClass()
-
-        cls.__imgBiosObj.do_install_disk(disk, disk_name, creator, workdir,
-                                         oe_builddir, bootimg_dir, kernel_dir,
-                                         native_sysroot)
 
     @classmethod
     def do_configure_partition(cls, part, source_params, creator, cr_workdir,
@@ -95,9 +54,6 @@ class BootimgBiosXenPlugin(wic.pluginbase.SourcePlugin):
         """
         Called before do_prepare_partition(), creates syslinux config
         """
-        if not cls.__imgBiosObj:
-            cls.__instanciateBIOSClass()
-
         bootloader = creator.ks.bootloader
 
         if not bootloader.configfile:
@@ -158,10 +114,10 @@ class BootimgBiosXenPlugin(wic.pluginbase.SourcePlugin):
             cfg.close()
 
         else:
-            cls.__imgBiosObj.do_configure_partition(part, source_params,
-                                                    creator, cr_workdir,
-                                                    oe_builddir, bootimg_dir,
-                                                    kernel_dir, native_sysroot)
+            super().do_configure_partition(part, source_params,
+                                           creator, cr_workdir,
+                                           oe_builddir, bootimg_dir,
+                                           kernel_dir, native_sysroot)
 
     @classmethod
     def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
@@ -171,10 +127,7 @@ class BootimgBiosXenPlugin(wic.pluginbase.SourcePlugin):
         Called to do the actual content population for a partition i.e. it
         'prepares' the partition to be incorporated into the image.
         """
-        if not cls.__imgBiosObj:
-            cls.__instanciateBIOSClass()
-
-        bootimg_dir = cls.__imgBiosObj._get_bootimg_dir(bootimg_dir, 'syslinux')
+        bootimg_dir = super()._get_bootimg_dir(bootimg_dir, 'syslinux')
         hdddir = "%s/hdd/boot" % cr_workdir
 
         # machine-deduction logic originally from isoimage-isohybrid.py
@@ -205,8 +158,8 @@ class BootimgBiosXenPlugin(wic.pluginbase.SourcePlugin):
         for install_cmd in cmds:
             exec_cmd(install_cmd)
 
-        cls.__imgBiosObj.do_prepare_partition(part, source_params,
-                                              creator, cr_workdir,
-                                              oe_builddir, bootimg_dir,
-                                              kernel_dir, rootfs_dir,
-                                              native_sysroot)
+        super().do_prepare_partition(part, source_params,
+                                     creator, cr_workdir,
+                                     oe_builddir, bootimg_dir,
+                                     kernel_dir, rootfs_dir,
+                                     native_sysroot)
-- 
2.47.2



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-05-04 20:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-04 20:31 [PATCH] scripts: wic plugin bootimg-biosxen drop helper to reuse bootimg-pcbios Anibal Limon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.