[OE-core] [PATCH 2/2] populate_sdk_base: ensure that filenames with empty space character are handled

Saul Wold sgw at linux.intel.com
Wed Jul 9 00:19:02 UTC 2014


On 07/01/2014 06:58 PM, João Henrique Ferreira de Freitas wrote:
> When extracting toolchain, if the list $executable_files has filenames
> with empty space character, the list will created but relocate_sdk.sh
> will not handle it well. This will lead to the below erro:
>
>      ./tmp/deploy/sdk/buildtools-mytools-x86_64-nativesdk-standalone-1.6.1.0.sh
>      Enter target directory for SDK (default: /opt/mydistro/mytoolset/1.6.1.0):
>      You are about to install the SDK to "/opt/mydistro/mytoolset/1.6.1.0". Proceed[Y/n]?
>      Extracting SDK...done
>      Setting it up.../opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: sintaxe error `token'  `('
>      /opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: `e
>
> The same occurs with replacement of ${SDKPATH} in configs/scripts/etc files.
>
> We should ensure that full path is protected before relocate_sdk.sh
> and ${SDKPATH} replacement calls.
>

I am not sure about this one, there are other cases where spaces in 
filenames/directory pathes just don't work, so fixing one place may not 
address all issues, I thought this was documented someplace, but I can't 
seem to find the associated bug or wiki entries.

Maybe someone else can remind me also where we talk about whitespace in 
pathe, obviously my search-fu is off right now.

Sau!

> Signed-off-by: João Henrique Ferreira de Freitas <joaohf at gmail.com>
> ---
>   meta/classes/populate_sdk_base.bbclass | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
> index a12bf11..5311271 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -252,7 +252,7 @@ if [ "$dl_path" = "" ] ; then
>   	echo "SDK could not be set up. Relocate script unable to find ld-linux.so. Abort!"
>   	exit 1
>   fi
> -executable_files=$($SUDO_EXEC find $native_sysroot -type f -perm /111)
> +executable_files=$($SUDO_EXEC find $native_sysroot -type f -perm /111 -exec echo \'{}\' \;)
>
>   tdir=`mktemp -d`
>   if [ x$tdir = x ] ; then
> @@ -273,7 +273,7 @@ if [ $relocate = 1 ] ; then
>   fi
>
>   # replace ${SDKPATH} with the new prefix in all text files: configs/scripts/etc
> -$SUDO_EXEC find $native_sysroot -type f -exec file '{}' \;|grep ":.*\(ASCII\|script\|source\).*text"|cut -d':' -f1|$SUDO_EXEC xargs sed -i -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:g"
> +$SUDO_EXEC find $native_sysroot -type f -exec file '{}' \;|grep ":.*\(ASCII\|script\|source\).*text"|cut -d':' -f1|tr "\n" "\0"|$SUDO_EXEC xargs -0 sed -i -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:g"
>
>   # change all symlinks pointing to ${SDKPATH}
>   for l in $($SUDO_EXEC find $native_sysroot -type l); do
>



More information about the Openembedded-core mailing list