]> code.ossystems Code Review - openembedded-core.git/commitdiff
uboot-sign: Fix build when UBOOT_DTB_BINARY is empty
authorAlex Kiernan <alex.kiernan@gmail.com>
Wed, 17 Apr 2019 18:31:16 +0000 (18:31 +0000)
committerArmin Kuster <akuster808@gmail.com>
Sat, 11 May 2019 14:45:49 +0000 (07:45 -0700)
When UBOOT_DTB_BINARY is empty and because the code now changes
directory into ${B}, the test for the existence becomes `[ -f ]` which
succeeds and subsequently the install fails.

Reorder the code so it's clear that UBOOT_DTB_BINARY empty is an
expected configuration and then quote UBOOT_DTB_BINARY everywhere so
no one trips over this again.

Fixes: bacb59079eb6 ("uboot-sign: add support for different u-boot configurations")
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/classes/uboot-sign.bbclass

index 2da43655aabb5dba8cad542f11b264decc25ac9b..6385a06c13ef2bda5ced2e2d6676372c2e36965e 100644 (file)
@@ -46,12 +46,12 @@ UBOOT_NODTB_SYMLINK ?= "u-boot-nodtb-${MACHINE}.${UBOOT_SUFFIX}"
 UBOOT_PN = "${@d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot'}"
 
 concat_dtb_helper() {
-       if [ -e ${UBOOT_DTB_BINARY} ]; then
+       if [ -e "${UBOOT_DTB_BINARY}" ]; then
                ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_BINARY}
                ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_SYMLINK}
        fi
 
-       if [ -f ${UBOOT_NODTB_BINARY} ]; then
+       if [ -f "${UBOOT_NODTB_BINARY}" ]; then
                install ${UBOOT_NODTB_BINARY} ${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}
                ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_SYMLINK}
                ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_BINARY}
@@ -67,13 +67,13 @@ concat_dtb_helper() {
        elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "$deployed_uboot_dtb_binary" ]; then
                cd ${DEPLOYDIR}
                cat ${UBOOT_NODTB_IMAGE} $deployed_uboot_dtb_binary | tee ${UBOOT_BINARY} > ${UBOOT_IMAGE}
-       elif [ -n "${UBOOT_DTB_BINARY}" ]; then
+       else
                bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
        fi
 }
 
 concat_dtb() {
-       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" ]; then
+       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" -a -n "${UBOOT_DTB_BINARY}" ]; then
                mkdir -p ${DEPLOYDIR}
                if [ -n "${UBOOT_CONFIG}" ]; then
                        for config in ${UBOOT_MACHINE}; do
@@ -90,19 +90,19 @@ concat_dtb() {
 # Install UBOOT_DTB_BINARY to datadir, so that kernel can use it for
 # signing, and kernel will deploy UBOOT_DTB_BINARY after signs it.
 install_helper() {
-       if [ -f ${UBOOT_DTB_BINARY} ]; then
+       if [ -f "${UBOOT_DTB_BINARY}" ]; then
                install -d ${D}${datadir}
                # UBOOT_DTB_BINARY is a symlink to UBOOT_DTB_IMAGE, so we
                # need both of them.
                install ${UBOOT_DTB_BINARY} ${D}${datadir}/${UBOOT_DTB_IMAGE}
                ln -sf ${UBOOT_DTB_IMAGE} ${D}${datadir}/${UBOOT_DTB_BINARY}
-       elif [ -n "${UBOOT_DTB_BINARY}" ]; then
+       else
                bbwarn "${UBOOT_DTB_BINARY} not found"
        fi
 }
 
 do_install_append() {
-       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" ]; then
+       if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" -a -n "${UBOOT_DTB_BINARY}" ]; then
                if [ -n "${UBOOT_CONFIG}" ]; then
                        for config in ${UBOOT_MACHINE}; do
                                cd ${B}/${config}