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

2014-07-15 Thread Otavio Salvador
On Mon, Jul 14, 2014 at 7:55 PM, João Henrique Ferreira de Freitas
joa...@gmail.com 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.

 Signed-off-by: João Henrique Ferreira de Freitas joa...@gmail.com

I am wondering if we cannot get rid of the 'tr' command that converts
newlines to '\0'. This would avoid a new fork of command. Did you
think about it?

-- 
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://code.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2014-07-15 Thread João Henrique Ferreira de Freitas


Em 15-07-2014 10:33, Otavio Salvador escreveu:

On Mon, Jul 14, 2014 at 7:55 PM, João Henrique Ferreira de Freitas
joa...@gmail.com 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.

Signed-off-by: João Henrique Ferreira de Freitas joa...@gmail.com

I am wondering if we cannot get rid of the 'tr' command that converts
newlines to '\0'. This would avoid a new fork of command. Did you
think about it?

I think it's possible. Maybe  using: awk -F':' '{printf %s\0, $1}' 
like this:


$SUDO_EXEC find $native_sysroot -type f -exec file '{}' \;|grep 
:.*\(ASCII\|script\|source\).*text|awk -F':' '{printf %s\0, 
$1}'|$SUDO_EXEC xargs -0 sed -i -e 
s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:g


I will finish my tests before send a v3.

Thanks.

--
João Henrique Ferreira de Freitas - joaohf_at_gmail.com
Campinas-SP-Brasil

--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2014-07-14 Thread João Henrique Ferreira de Freitas
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.

Signed-off-by: João Henrique Ferreira de Freitas joa...@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..a6e23a1 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 -printf 
'%h/%f' )
 
 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
-- 
1.9.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core