toolchain-shar-relocate.sh: Add error-handling
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 toolchain-shar-relocate.sh: Add error-handling
From: Mariano Lopez <[email protected]>
The relocation script of the SDK doesn't have enough error handling when replacing host perl with SDK perl or changing the symlinks. This will add those checks along with a sanity check of xargs.
[YOCTO #10114]
--- meta/files/toolchain-shar-relocate.sh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)
meta/files/toolchain-shar-relocate.sh +19 -1
@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script, please install it firts. Abort!" + exit 1 +fi + # fix dynamic loader paths in all ELF SDK binaries native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"') dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
@@ -7,6 +12,10 @@ if [ "$dl_path" = "" ] ; then fi executable_files=$($SUDO_EXEC find $native_sysroot -type f \ \( -perm -0100 -o -perm -0010 -o -perm -0001 \) -printf "'%h/%f' ") +if [ "x$executable_files" = "x" ]; then + echo "SDK relocate failed, could not get executalbe files" + exit 1 +fi tdir=`mktemp -d` if [ x$tdir = x ] ; then
@@ -14,7 +23,7 @@ if [ x$tdir = x ] ; then exit 1 fi cat <<EOF >> $tdir/relocate_sdk.sh -#!/bin/bash +#!/bin/sh for py in python python2 python3 do PYTHON=\`which \${py} 2>/dev/null\`
@@ -53,9 +62,18 @@ done | xargs -n100 file | grep ":.*\(ASCII\|script\|source\).*text" | \ -e "s:^#! */usr/bin/perl.*:#! /usr/bin/env perl:g" \ -e "s: /usr/bin/perl: /usr/bin/env perl:g" +if [ $? -ne 0 ]; then + echo "Failed to replace perl. Relocate script failed. Abort!" + exit 1 +fi + # change all symlinks pointing to @SDKPATH@ for l in $($SUDO_EXEC find $native_sysroot -type l); do $SUDO_EXEC ln -sfn $(readlink $l|$SUDO_EXEC sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l + if [ $? -ne 0 ]; then + echo "Failed to setup symlinks. Relocate script failed. Abort!" + exit 1 + fi done echo done
Signature · 1 line
2.6.6
meta/files/toolchain-shar-relocate.sh
Quoted 12 lines · On Wed, Sep 21, 2016 at 12:54 AM, <[email protected]> wrote:
meta/files/toolchain-shar-relocate.sh +2
-0@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script, please installit firts. Abort!"
meta/files/toolchain-shar-relocate.sh +2
-0+ exit 1 +fi
This is pointless, xargs is mandated by posix/sus.
Signature · 5 lines
Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
Quoted 16 lines · Christopher Larson
Quoted 8 lines · On Wed, Sep 21, 2016 at 12:54 AM, <[email protected]> wrote:
meta/files/toolchain-shar-relocate.sh +2
-0@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script, pleaseQuoted 4 lines
install it firts. Abort!"
+ exit 1
+fiThis is pointless, xargs is mandated by posix/sus.
It appears we have some users with stripped down containers where it hasn't been installed though and having a user readable message is better than the rather obtuse one reported into the bugzilla...
Cheers,
Richard
Quoted 18 lines · Richard Purdie
Quoted 16 lines · Christopher Larson
meta/files/toolchain-shar-relocate.sh
Quoted 12 lines · On Wed, Sep 21, 2016 at 12:54 AM, <[email protected]> wrote:
meta/files/toolchain-shar-relocate.sh +2
-0@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script, pleaseinstall it firts. Abort!"
meta/files/toolchain-shar-relocate.sh +2
-0+ exit 1 +fiThis is pointless, xargs is mandated by posix/sus.
Quoted 3 lines
It appears we have some users with stripped down containers where it hasn't been installed though and having a user readable message is better
... and even better is one without typos ;-}
s/firts/first/
Signature · 6 lines
Best Regards, Patrick Ohly The content of this message is my personal opinion only and although I am an employee of Intel, the statements I make here in no way represent Intel's position on the issue, nor am I authorized to speak on behalf of Intel on this matter.
Quoted 22 lines · Patrick Ohly
Quoted 21 lines · Richard Purdie
Quoted 19 lines · Christopher Larson
Quoted 9 lines · On Wed, Sep 21, 2016 at 12:54 AM, <[email protected]> wrote:
meta/files/toolchain-shar-relocate.sh +2
-0@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script,Quoted 5 lines
please
install it firts. Abort!"
+ exit 1
+fiThis is pointless, xargs is mandated by posix/sus.
Quoted 7 lines
Quoted 4 lines
It appears we have some users with stripped down containers where it
hasn't been installed though and having a user readable message is better... and even better is one without typos ;-}
s/firts/first/
Indeed. Fix queued in -next.
Cheers,
Richard
From: Mariano Lopez <[email protected]>
The relocation script of the SDK doesn't have enough error handling when replacing host perl with SDK perl or changing the symlinks. This will add those checks along with a sanity check of xargs.
[YOCTO #10114]
--- meta/files/toolchain-shar-relocate.sh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)
meta/files/toolchain-shar-relocate.sh +19 -1
@@ -1,3 +1,8 @@ +if ! xargs --version > /dev/null 2>&1; then + echo "xargs is required by the relocation script, please install it first. Abort!" + exit 1 +fi + # fix dynamic loader paths in all ELF SDK binaries native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"') dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
@@ -7,6 +12,10 @@ if [ "$dl_path" = "" ] ; then fi executable_files=$($SUDO_EXEC find $native_sysroot -type f \ \( -perm -0100 -o -perm -0010 -o -perm -0001 \) -printf "'%h/%f' ") +if [ "x$executable_files" = "x" ]; then + echo "SDK relocate failed, could not get executalbe files" + exit 1 +fi tdir=`mktemp -d` if [ x$tdir = x ] ; then
@@ -14,7 +23,7 @@ if [ x$tdir = x ] ; then exit 1 fi cat <<EOF >> $tdir/relocate_sdk.sh -#!/bin/bash +#!/bin/sh for py in python python2 python3 do PYTHON=\`which \${py} 2>/dev/null\`
@@ -53,9 +62,18 @@ done | xargs -n100 file | grep ":.*\(ASCII\|script\|source\).*text" | \ -e "s:^#! */usr/bin/perl.*:#! /usr/bin/env perl:g" \ -e "s: /usr/bin/perl: /usr/bin/env perl:g" +if [ $? -ne 0 ]; then + echo "Failed to replace perl. Relocate script failed. Abort!" + exit 1 +fi + # change all symlinks pointing to @SDKPATH@ for l in $($SUDO_EXEC find $native_sysroot -type l); do $SUDO_EXEC ln -sfn $(readlink $l|$SUDO_EXEC sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l + if [ $? -ne 0 ]; then + echo "Failed to setup symlinks. Relocate script failed. Abort!" + exit 1 + fi done echo done
Signature · 1 line
2.6.6