[OE-core] [PATCH] relocate_sdk.py: remove hardcoded SDK path

Ruslan Bilovol rbilovol at cisco.com
Tue Jul 17 14:59:22 UTC 2018


Hi all,

Any comments on this patch?

Thanks
Ruslan

On 11/22/2017 01:20 PM, Ruslan Bilovol wrote:
> This patch removes hardcodes added to relocate_sdk.py
> during SDK build, making it flexible and reusable.
> Now default SDK path is passed to the script as
> parameter rather then harcoded inside it.
> 
> This allows to reuse this script for multiple
> relocations, and adds possibility to relocate
> SDK multiple times
> 
> Signed-off-by: Ruslan Bilovol <rbilovol at cisco.com>
> ---
>   meta/classes/populate_sdk_base.bbclass |  5 -----
>   meta/files/toolchain-shar-relocate.sh  |  2 +-
>   scripts/relocate_sdk.py                | 17 +++++++++--------
>   3 files changed, 10 insertions(+), 14 deletions(-)
> 
> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
> index 424c63c..e7aa5a8 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -152,11 +152,6 @@ do_populate_sdk[stamp-extra-info] = "${MACHINE}${SDKMACHINE}"
>   
>   fakeroot create_sdk_files() {
>   	cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
> -
> -	# Replace the ##DEFAULT_INSTALL_DIR## with the correct pattern.
> -	# Escape special characters like '+' and '.' in the SDKPATH
> -	escaped_sdkpath=$(echo ${SDKPATH} |sed -e "s:[\+\.]:\\\\\\\\\0:g")
> -	sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py
>   }
>   
>   python check_sdk_sysroots() {
> diff --git a/meta/files/toolchain-shar-relocate.sh b/meta/files/toolchain-shar-relocate.sh
> index e3c1001..f82ff2b 100644
> --- a/meta/files/toolchain-shar-relocate.sh
> +++ b/meta/files/toolchain-shar-relocate.sh
> @@ -36,7 +36,7 @@ if [ x\${PYTHON} = "x"  ]; then
>   	echo "SDK could not be relocated.  No python found."
>   	exit 1
>   fi
> -\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $target_sdk_dir $dl_path $executable_files
> +\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $DEFAULT_INSTALL_DIR $target_sdk_dir $dl_path $executable_files
>   EOF
>   
>   $SUDO_EXEC mv $tdir/relocate_sdk.sh ${env_setup_script%/*}/relocate_sdk.sh
> diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py
> index c752fa2..0d5a6f5 100755
> --- a/scripts/relocate_sdk.py
> +++ b/scripts/relocate_sdk.py
> @@ -38,8 +38,6 @@ else:
>       def b(x):
>           return x.encode(sys.getfilesystemencoding())
>   
> -old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##"))
> -
>   def get_arch():
>       f.seek(0)
>       e_ident =f.read(16)
> @@ -212,19 +210,22 @@ def change_dl_sysdirs(elf_file_name):
>           f.write(sysdirslen)
>   
>   # MAIN
> -if len(sys.argv) < 4:
> +if len(sys.argv) < 5:
>       sys.exit(-1)
>   
>   # In python > 3, strings may also contain Unicode characters. So, convert
>   # them to bytes
>   if sys.version_info < (3,):
> -    new_prefix = sys.argv[1]
> -    new_dl_path = sys.argv[2]
> +    new_prefix = sys.argv[2]
> +    new_dl_path = sys.argv[3]
>   else:
> -    new_prefix = sys.argv[1].encode()
> -    new_dl_path = sys.argv[2].encode()
> +    new_prefix = sys.argv[2].encode()
> +    new_dl_path = sys.argv[3].encode()
> +
> +executables_list = sys.argv[4:]
>   
> -executables_list = sys.argv[3:]
> +old_prefix_ne = b(sys.argv[1])
> +old_prefix = re.compile(re.escape(old_prefix_ne));
>   
>   for e in executables_list:
>       perms = os.stat(e)[stat.ST_MODE]
> 



More information about the Openembedded-core mailing list