From 7d023f3b5fd2b562fcdde3c991cf49f35263d1ff Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Tue, 12 Feb 2013 05:08:22 -0600 Subject: populate_sdk_base.bbclass: Improve debugging capabilities for SDK installer After having to debug the SDK installer a few times in addition to the relocation code the following patch was created to improve the capabilities around debugging the SDK installer. 1) Add a verbose mode -D which set a set -x to see what the SDK installer is doing. 2) Add a mode -S to save the relocation scripts for the purpose of debugging them in conjunction with -D 3) Add a mode -R to not execute the relocation scripts for the purpose of debugging the relocations. (From OE-Core rev: 0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06) Signed-off-by: Jason Wessel Signed-off-by: Richard Purdie --- meta/classes/populate_sdk_base.bbclass | 48 +++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index c025d4083c..923f9257a6 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -136,7 +136,10 @@ DEFAULT_INSTALL_DIR="${SDKPATH}" SUDO_EXEC="" target_sdk_dir="" answer="" -while getopts ":yd:" OPT; do +relocate=1 +savescripts=0 +verbose=0 +while getopts ":yd:DRS" OPT; do case $OPT in y) answer="Y" @@ -145,15 +148,33 @@ while getopts ":yd:" OPT; do d) target_sdk_dir=$OPTARG ;; + D) + verbose=1 + ;; + R) + relocate=0 + savescripts=1 + ;; + S) + savescripts=1 + ;; *) echo "Usage: $(basename $0) [-y] [-d ]" echo " -y Automatic yes to all prompts" echo " -d Install the SDK to " + echo "======== Advanced DEBUGGING ONLY OPTIONS ========" + echo " -S Save relocation scripts" + echo " -R Do not relocate executables" + echo " -D use set -x to see what is going on" exit 1 ;; esac done +if [ $verbose = 1 ] ; then + set -x +fi + printf "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): " if [ "$target_sdk_dir" = "" ]; then read target_sdk_dir @@ -231,10 +252,23 @@ if [ "$dl_path" = "" ] ; then exit 1 fi executable_files=$($SUDO_EXEC find $native_sysroot -type f -perm +111) -$SUDO_EXEC ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files -if [ $? -ne 0 ]; then - echo "SDK could not be set up. Relocate script failed. Abort!" - exit 1 + +tdir=`mktemp -d` +if [ x$tdir = x ] ; then + echo "SDK relocate failed, could not create a temporary directory" + exit 1 +fi +echo "#!/bin/bash" > $tdir/relocate_sdk.sh +echo exec ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files >> $tdir/relocate_sdk.sh +$SUDO_EXEC mv $tdir/relocate_sdk.sh ${env_setup_script%/*}/relocate_sdk.sh +$SUDO_EXEC chmod 755 ${env_setup_script%/*}/relocate_sdk.sh +rm -rf $tdir +if [ $relocate = 1 ] ; then + $SUDO_EXEC ${env_setup_script%/*}/relocate_sdk.sh + if [ $? -ne 0 ]; then + echo "SDK could not be set up. Relocate script failed. Abort!" + exit 1 + fi fi # replace ${SDKPATH} with the new prefix in all text files: configs/scripts/etc @@ -249,7 +283,9 @@ echo done # delete the relocating script, so that user is forced to re-run the installer # if he/she wants another location for the sdk -$SUDO_EXEC rm ${env_setup_script%/*}/relocate_sdk.py +if [ $savescripts = 0 ] ; then + $SUDO_EXEC rm ${env_setup_script%/*}/relocate_sdk.py ${env_setup_script%/*}/relocate_sdk.sh +fi echo "SDK has been successfully set up and is ready to be used." -- cgit v1.2.3-54-g00ecf