[ELDK] [PATCH 3/5] META-ELDK: Use regular test command

Lothar Rubusch L.Rubusch at gmx.ch
Thu Sep 26 22:31:56 CEST 2013


Hi Marek & list,

> Gesendet: Donnerstag, 19. September 2013 um 14:27 Uhr
> Von: "Marek Vasut" <marex at denx.de>
> An: eldk at lists.denx.de
> Cc: wd at denx.de, l.rubusch at gmx.ch, "Marek Vasut" <marex at denx.de>
> Betreff: [PATCH 3/5] META-ELDK: Use regular test command
>
> Instead of using [[ ... ]] command as a 'test', which is unportable
> BASH-specific thing, use the regular 'test' command. The former breaks
> on Debian Jessie, since the default /bin/sh shell on Debian is DASH.
> The later works as expected.

Great news, to have some feedback! Sry for the delay in my answers, since I'm currently quite busy. Generally I hope that the patches still were somehow helpful. About the [[ ]] (we already talked about it, and Marek is right), I based my approach on the following facts

1) I also use debian, but I configured Bash instead of Dash, thus I did not experience any effect

2) [Spoiler:] by the Advanced Bash Scripting Guide [http://tldp.org/LDP/abs/html/abs-guide.html#LEFTBRACKET]:
"Note that [ is part of the shell builtin test (and a synonym for it), not a link to the external command /usr/bin/test."
So I read it as "test" still being an external tool. Anyway in Bash you also have the "Test expression between [[ ]]" which is "more flexible than the single-bracket [ ] test". And less compatible, though. Interesting for me, since I was quite used to the convenience of [[ ]], especially when you do more scripting, and probably thus forgot about incompatibilities.

Thank you for fixing.
Best,
L

> Signed-off-by: Marek Vasut <marex at denx.de>
> ---
>  meta-eldk/classes/image_types_m28evk.bbclass     | 8 ++++----
>  meta-eldk/classes/image_types_m53evk.bbclass     | 8 ++++----
>  meta-eldk/recipes-kernel/linux/linux-eldk_3.8.bb | 2 +-
>  meta-eldk/recipes-kernel/linux/linux-eldk_3.9.bb | 4 ++--
>  4 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/meta-eldk/classes/image_types_m28evk.bbclass b/meta-eldk/classes/image_types_m28evk.bbclass
> index 2f8d0f6..7643ab1 100644
> --- a/meta-eldk/classes/image_types_m28evk.bbclass
> +++ b/meta-eldk/classes/image_types_m28evk.bbclass
> @@ -30,7 +30,7 @@ IMAGE_CMD_uboot.mxsboot-sdcard = "mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHIN
>  ## .sdcard image with one bootpartition for uImage and FDT, and one rootfs partition
>  IMAGE_DEPENDS_sdcard = "parted-native dosfstools-native mtools-native virtual/kernel ${IMAGE_BOOTLOADER}"
>  IMAGE_CMD_sdcard(){
> -    if [[ -z "${SDCARD_ROOTFS}" ]]; then
> +    if test -z "${SDCARD_ROOTFS}" ; then
>  	bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
>  	exit 1
>      fi
> @@ -74,7 +74,7 @@ IMAGE_CMD_sdcard(){
>  
>      ## boot image
>      IMAGE_BOOTFS="${WORKDIR}/boot-$(date +%Y%m%d%H%M%S)"
> -    [[ ! -e "${IMAGE_BOOTFS}" ]] && mkdir -p "${IMAGE_BOOTFS}"
> +    test ! -e "${IMAGE_BOOTFS}" && mkdir -p "${IMAGE_BOOTFS}"
>  
>      ## uImage
>      cp "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" "${IMAGE_BOOTFS}/${KERNEL_IMAGETYPE}"
> @@ -82,10 +82,10 @@ IMAGE_CMD_sdcard(){
>      ## uImage, dtb
>      for dts in ${KERNEL_DEVICETREE}; do
>          local dts_basename=$(basename ${dts} | awk -F "." '{print $1}')
> -        if [[ -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]]; then
> +        if test -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ; then
>              local kernel_bin="$(readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin)"
>              local kernel_dtb="$(readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb)"
> -            if [[ "${kernel_bin%-${MACHINE}*.bin}" == "${kernel_dtb%-${MACHINE}*.dtb}" ]]; then
> +            if test "${kernel_bin%-${MACHINE}*.bin}" == "${kernel_dtb%-${MACHINE}*.dtb}" ; then
>                  cp "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" "${IMAGE_BOOTFS}/${dts_basename}.dtb"
>              fi
>          else
> diff --git a/meta-eldk/classes/image_types_m53evk.bbclass b/meta-eldk/classes/image_types_m53evk.bbclass
> index 946dc77..d78d670 100644
> --- a/meta-eldk/classes/image_types_m53evk.bbclass
> +++ b/meta-eldk/classes/image_types_m53evk.bbclass
> @@ -23,7 +23,7 @@ IMAGE_DEPENDS_sdcard = "parted-native dosfstools-native mtools-native \
>                          virtual/kernel u-boot"
>  
>  IMAGE_CMD_sdcard(){
> -    if [[ -z "${SDCARD_ROOTFS}" ]]; then
> +    if test -z "${SDCARD_ROOTFS}" ; then
>  	bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
>  	exit 1
>      fi
> @@ -75,7 +75,7 @@ IMAGE_CMD_sdcard(){
>      local boot_blocks=$(LC_ALL=C parted -s ${SDCARD} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
>  
>      IMAGE_BOOTFS="${WORKDIR}/boot-$(date +%Y%m%d%H%M%S)"
> -    [[ ! -e "${IMAGE_BOOTFS}" ]] && mkdir -p "${IMAGE_BOOTFS}"
> +    test ! -e "${IMAGE_BOOTFS}"  && mkdir -p "${IMAGE_BOOTFS}"
>  
>      ## uImage
>      cp "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" "${IMAGE_BOOTFS}/${KERNEL_IMAGETYPE}"
> @@ -83,10 +83,10 @@ IMAGE_CMD_sdcard(){
>      ## uImage, dtb
>      for dts in ${KERNEL_DEVICETREE}; do
>          local dts_basename=$(basename ${dts} | awk -F "." '{print $1}')
> -        if [[ -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]]; then
> +        if test -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ; then
>              local kernel_bin="$(readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin)"
>              local kernel_dtb="$(readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb)"
> -            if [[ "${kernel_bin%-${MACHINE}*.bin}" == "${kernel_dtb%-${MACHINE}*.dtb}" ]]; then
> +            if test "${kernel_bin%-${MACHINE}*.bin}" == "${kernel_dtb%-${MACHINE}*.dtb}" ; then
>                  cp "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb" "${IMAGE_BOOTFS}/${dts_basename}.dtb"
>              fi
>          else
> diff --git a/meta-eldk/recipes-kernel/linux/linux-eldk_3.8.bb b/meta-eldk/recipes-kernel/linux/linux-eldk_3.8.bb
> index d454c6c..6ac2041 100644
> --- a/meta-eldk/recipes-kernel/linux/linux-eldk_3.8.bb
> +++ b/meta-eldk/recipes-kernel/linux/linux-eldk_3.8.bb
> @@ -48,5 +48,5 @@ SRC_URI_m28evk = "git://kernel.ubuntu.com/ubuntu/linux.git;protocol=git   \
>  
>  do_compile_append_m28evk(){
>      ## linux.inc copies Image to uImage if it is present, this may be a bug in linux.inc
> -    [[ -e ${WORKDIR}/git/arch/arm/boot/Image ]] && rm ${WORKDIR}/git/arch/arm/boot/Image
> +    test -e ${WORKDIR}/git/arch/arm/boot/Image && rm ${WORKDIR}/git/arch/arm/boot/Image
>  }
> diff --git a/meta-eldk/recipes-kernel/linux/linux-eldk_3.9.bb b/meta-eldk/recipes-kernel/linux/linux-eldk_3.9.bb
> index b2db136..2714cf2 100644
> --- a/meta-eldk/recipes-kernel/linux/linux-eldk_3.9.bb
> +++ b/meta-eldk/recipes-kernel/linux/linux-eldk_3.9.bb
> @@ -37,7 +37,7 @@ SRCREV_m28evk = "c1be5a5b1b355d40e6cf79cc979eb66dafa24ad1"
>  LOCALVERSION_m28evk = "-denx"
>  
>  do_compile_append_m28evk(){
> -    [[ -e ${WORKDIR}/git/arch/arm/boot/Image ]] && rm ${WORKDIR}/git/arch/arm/boot/Image
> +    test -e ${WORKDIR}/git/arch/arm/boot/Image && rm ${WORKDIR}/git/arch/arm/boot/Image
>  }
>  
>  
> @@ -59,7 +59,7 @@ do_configure_prepend_m53evk(){
>  
>  do_compile_append_m53evk(){
>      ## linux.inc would overwrite uImage with Image
> -    [[ -e ${WORKDIR}/git/arch/arm/boot/Image ]] && rm ${WORKDIR}/git/arch/arm/boot/Image
> +    test -e ${WORKDIR}/git/arch/arm/boot/Image && rm ${WORKDIR}/git/arch/arm/boot/Image
>  }
>  
>  
> -- 
> 1.8.4.rc3
> 
> 


More information about the eldk mailing list