]> code.ossystems Code Review - meta-freescale.git/commitdiff
libubootenv.inc: Allow build after bootloader rework
authorOtavio Salvador <otavio@ossystems.com.br>
Tue, 13 Apr 2021 00:29:13 +0000 (21:29 -0300)
committerOtavio Salvador <otavio@ossystems.com.br>
Tue, 13 Apr 2021 20:29:25 +0000 (17:29 -0300)
The libubootenv requires the UBOOT_MACHINE or UBOOT_CONFIG to allow
libubootenv to build. This is caused by the commit below:

,----[ libubootenv change ]
| commit 10aa1291979fb90bed1beb49be4d406ed0e1e4d5 ┃
| ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━
| Author: Ming Liu <liu.ming50@gmail.com>
| Date:   Tue Aug 25 20:08:01 2020 +0200
|
|     libubootenv: inherit uboot-config
|
|     This mainly aims to involve in the sanity check of UBOOT_CONFIG and
|     UBOOT_MACHINE, it will throw a error message at recipe parsing time if
|     neither of them is set, and libubootenv would be skipped.
|
|     Signed-off-by: Ming Liu <liu.ming50@gmail.com>
|     Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
`----

This an error on libubootenv recipe, in my point of view, either way we
can override it based on the selected bootloader thus fixing the build
failure.

Fixes: 776932e1 ("Rework the u-boot-fslc and u-boot-imx settings logic")
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
recipes-bsp/u-boot/libubootenv_%.bbappend [new file with mode: 0644]

diff --git a/recipes-bsp/u-boot/libubootenv_%.bbappend b/recipes-bsp/u-boot/libubootenv_%.bbappend
new file mode 100644 (file)
index 0000000..2633c34
--- /dev/null
@@ -0,0 +1,43 @@
+# Fixup for the libubootenv which rely on uboot-config class for no good reason.
+#
+# This is not intended to be permanent but we need to get the integration
+# working and there is no good solution for now so we are adding this in a
+# non-intrusive way and using the `IMX_DEFAULT_BOOTLOADER` as a guard to do any
+# code execution.
+
+def fixup_uboot_config_dependency(d):
+    ubootmachine = d.getVar("UBOOT_MACHINE")
+    ubootconfig = (d.getVar('UBOOT_CONFIG') or "").split()
+    imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER')
+
+    if not ubootmachine and not ubootconfig and imx_default_bootloader:
+       # FIXME: We need to provide the UBOOT_MACHINE or UBOOT_CONFIG to allow libubootenv to
+       # build. This is caused by the commit below:
+       #
+       # ,----[ libubootenv change ]
+       # | commit 10aa1291979fb90bed1beb49be4d406ed0e1e4d5 ┃
+       # | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━
+       # | Author: Ming Liu <liu.ming50@gmail.com>
+       # | Date:   Tue Aug 25 20:08:01 2020 +0200
+       # |
+       # |     libubootenv: inherit uboot-config
+       # |
+       # |     This mainly aims to involve in the sanity check of UBOOT_CONFIG and
+       # |     UBOOT_MACHINE, it will throw a error message at recipe parsing time if
+       # |     neither of them is set, and libubootenv would be skipped.
+       # |
+       # |     Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+       # |     Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+       # `----
+       ubootmachine = d.getVar("UBOOT_MACHINE_pn-%s" % imx_default_bootloader)
+       ubootconfig = (d.getVar("UBOOT_CONFIG_pn-%s" % imx_default_bootloader) or "").split()
+
+       d.setVar("UBOOT_CONFIG", ubootconfig)
+       d.setVar("UBOOT_MACHINE", ubootmachine)
+
+python fixup_uboot_config_dependency_handler() {
+    fixup_uboot_config_dependency(d)
+}
+
+fixup_uboot_config_dependency_handler[eventmask] = "bb.event.RecipePreFinalise"
+addhandler fixup_uboot_config_dependency_handler