]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
uboot-sign.bbclass: Refactor condition checks to use && and || instead of -a and -o
authorJamin Lin <jamin_lin@aspeedtech.com>
Tue, 17 Jun 2025 08:10:51 +0000 (16:10 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 19 Jun 2025 10:05:42 +0000 (11:05 +0100)
This commit cleans up and modernizes the shell condition expressions in
`uboot-sign.bbclass` to follow best practices for portable and reliable shell usage.

Key changes:
- Replace legacy `[ -a ]` and `[ -o ]` with explicit `[ ] && [ ]` and `[ ] || [ ]`.
  Modern POSIX and busybox sh recommend using `&&` and `||` instead of `-a` and `-o`
  because `-a` and `-o` are less robust and can cause parsing ambiguities in some shells.
- Simplify `concat_dtb()` by moving the DTB existence check to the top and using
  early `return` to avoid deep nesting.
- Remove redundant fallback `else` blocks; use clearer control flow with direct checks.

This improves maintainability, reduces shell syntax pitfalls, and aligns with
current shell scripting best practices.

References:
- POSIX recommends avoiding `-a` and `-o` in `[ ]` and using explicit `&&` and `||`:
  https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/uboot-sign.bbclass

index 01c53c74482f0eef6a69f0df5858485bb8dbc408..0f387a3a3efa21af73254042348da01c03fa5e17 100644 (file)
@@ -198,21 +198,23 @@ concat_dtb() {
        # If we're not using a signed u-boot fit, concatenate SPL w/o DTB & U-Boot DTB
        # with public key (otherwise U-Boot will be packaged by uboot_fitimage_assemble)
        if [ "${SPL_SIGN_ENABLE}" != "1" ] ; then
-               if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \
-                       [ -e "${UBOOT_DTB_BINARY}" ]; then
+               if [ ! -e "${UBOOT_DTB_BINARY}" ]; then
+                       bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
+                       return
+               fi
+
+               if [ "x${UBOOT_SUFFIX}" = "ximg" ] || [ "x${UBOOT_SUFFIX}" = "xrom" ]; then
                        oe_runmake EXT_DTB="${UBOOT_DTB_SIGNED}" ${UBOOT_MAKE_TARGET}
                        if [ -n "${binary}" ]; then
                                cp ${binary} ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX}
                        fi
-               elif [ -e "${UBOOT_NODTB_BINARY}" -a -e "${UBOOT_DTB_BINARY}" ]; then
+               elif [ -e "${UBOOT_NODTB_BINARY}" ]; then
                        if [ -n "${binary}" ]; then
                                cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} | tee ${binary} > \
                                        ${UBOOT_BINARYNAME}-${type}.${UBOOT_SUFFIX}
                        else
                                cat ${UBOOT_NODTB_BINARY} ${UBOOT_DTB_SIGNED} > ${UBOOT_BINARY}
                        fi
-               else
-                       bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
                fi
        fi
 }
@@ -244,7 +246,7 @@ deploy_dtb() {
 }
 
 concat_spl_dtb() {
-       if [ -e "${SPL_DIR}/${SPL_NODTB_BINARY}" -a -e "${SPL_DIR}/${SPL_DTB_BINARY}" ] ; then
+       if [ -e "${SPL_DIR}/${SPL_NODTB_BINARY}" ] && [ -e "${SPL_DIR}/${SPL_DTB_BINARY}" ] ; then
                cat ${SPL_DIR}/${SPL_NODTB_BINARY} ${SPL_DIR}/${SPL_DTB_SIGNED} > "${SPL_BINARY}"
        else
                bbwarn "Failure while adding public key to spl binary. Verified U-Boot boot won't be available."
@@ -500,7 +502,7 @@ uboot_assemble_fitimage_helper() {
        type="$1"
        binary="$2"
 
-       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then
+       if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_BINARY}" ] ; then
                concat_dtb "$type" "$binary"
        fi
 
@@ -508,7 +510,7 @@ uboot_assemble_fitimage_helper() {
                uboot_fitimage_assemble
        fi
 
-       if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ] ; then
+       if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
                concat_spl_dtb
        fi
 }
@@ -547,7 +549,7 @@ addtask uboot_assemble_fitimage before do_install do_deploy after do_compile
 deploy_helper() {
        type="$1"
 
-       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_SIGNED}" ] ; then
+       if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_SIGNED}" ] ; then
                deploy_dtb $type
        fi
 
@@ -569,7 +571,7 @@ deploy_helper() {
                fi
        fi
 
-       if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ] ; then
+       if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
                deploy_spl_dtb $type
        fi
 }
@@ -594,7 +596,7 @@ do_deploy:prepend() {
                deploy_helper ""
        fi
 
-       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ] ; then
+       if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ -n "${UBOOT_DTB_BINARY}" ] ; then
                ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_BINARY}
                ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_SYMLINK}
                ln -sf ${UBOOT_NODTB_IMAGE} ${DEPLOYDIR}/${UBOOT_NODTB_SYMLINK}
@@ -608,7 +610,7 @@ do_deploy:prepend() {
                ln -sf ${UBOOT_FITIMAGE_IMAGE} ${DEPLOYDIR}/${UBOOT_FITIMAGE_SYMLINK}
        fi
 
-       if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ] ; then
+       if [ "${SPL_SIGN_ENABLE}" = "1" ] && [ -n "${SPL_DTB_BINARY}" ] ; then
                ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_SYMLINK}
                ln -sf ${SPL_DTB_IMAGE} ${DEPLOYDIR}/${SPL_DTB_BINARY}
                ln -sf ${SPL_NODTB_IMAGE} ${DEPLOYDIR}/${SPL_NODTB_SYMLINK}