From patchwork Mon Nov 26 09:31:40 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: populate_sdk_base: tarball installer: SDK overwrite warning Date: Mon, 26 Nov 2012 09:31:40 -0000 From: Laurentiu Palcu X-Patchwork-Id: 39563 Message-Id: <1353922300-22538-1-git-send-email-laurentiu.palcu@intel.com> To: openembedded-core@lists.openembedded.org This patch contains two fixes: * if the user wants to install the SDK in a directory that already contains a SDK for the same architecture, a warning will be shown; * when the symbolic links are relocated use -n option. Otherwise, symbolic links to existing directories will be created in the directory itself; [YOCTO #3401] Signed-off-by: Laurentiu Palcu --- meta/classes/populate_sdk_base.bbclass | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index ac34c32..f1fcde6 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -143,11 +143,20 @@ else target_sdk_dir=$(readlink -m $target_sdk_dir) fi -printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed[Y/n]?" +if [ -e "$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}" ]; then + echo "The directory \"$target_sdk_dir\" already contains a SDK for this architecture." + printf "If you continue, existing files will be overwritten! Proceed[y/N]?" + + default_answer="n" +else + printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed[Y/n]?" + + default_answer="y" +fi read answer if [ "$answer" = "" ]; then - answer="y" + answer="$default_answer" fi if [ "$answer" != "Y" -a "$answer" != "y" ]; then @@ -188,7 +197,7 @@ find $native_sysroot -type f -exec file '{}' \;|grep ":.*ASCII.*text"|cut -d':' # change all symlinks pointing to ${SDKPATH} for l in $(find $native_sysroot -type l); do - ln -sf $(readlink $l|sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l + ln -sfn $(readlink $l|sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l done echo done