diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-25 16:45:23 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-25 16:46:47 +0100 |
commit | b247392b4ced57cfe694656032f6a6723740a9e8 (patch) | |
tree | 04c955fb568206ab7411190ea15d34cade000e02 | |
parent | 39c1719a32ed5567e3bf2df5c4f9068d0f5a9400 (diff) | |
download | openembedded-core-b247392b4ced57cfe694656032f6a6723740a9e8.tar.gz openembedded-core-b247392b4ced57cfe694656032f6a6723740a9e8.tar.bz2 openembedded-core-b247392b4ced57cfe694656032f6a6723740a9e8.zip |
Revert "relocate_sdk.py: remove hardcoded SDK path"
This reverts commit 6671a4d980c8bef8f402780a308f6c43a25044aa.
This breaks uninative tarball since the call of relocate_sdk.py from uninative.bbclass
wasn't updated to account for this change. It isn't clear what value that code could
pass in and this isn't simple to fix so revert until a better fix can be found
that doesn't break uninative.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/populate_sdk_base.bbclass | 5 | ||||
-rw-r--r-- | meta/files/toolchain-shar-relocate.sh | 2 | ||||
-rwxr-xr-x | scripts/relocate_sdk.py | 17 |
3 files changed, 14 insertions, 10 deletions
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass index e27ee036a2..7ffaf84a45 100644 --- a/meta/classes/populate_sdk_base.bbclass +++ b/meta/classes/populate_sdk_base.bbclass @@ -161,6 +161,11 @@ do_populate_sdk[stamp-extra-info] = "${MACHINE_ARCH}${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 f82ff2be48..e3c10018ef 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 $DEFAULT_INSTALL_DIR $target_sdk_dir $dl_path $executable_files +\${PYTHON} ${env_setup_script%/*}/relocate_sdk.py $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 0d5a6f5161..c752fa2c61 100755 --- a/scripts/relocate_sdk.py +++ b/scripts/relocate_sdk.py @@ -38,6 +38,8 @@ 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) @@ -210,22 +212,19 @@ def change_dl_sysdirs(elf_file_name): f.write(sysdirslen) # MAIN -if len(sys.argv) < 5: +if len(sys.argv) < 4: 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[2] - new_dl_path = sys.argv[3] + new_prefix = sys.argv[1] + new_dl_path = sys.argv[2] else: - new_prefix = sys.argv[2].encode() - new_dl_path = sys.argv[3].encode() - -executables_list = sys.argv[4:] + new_prefix = sys.argv[1].encode() + new_dl_path = sys.argv[2].encode() -old_prefix_ne = b(sys.argv[1]) -old_prefix = re.compile(re.escape(old_prefix_ne)); +executables_list = sys.argv[3:] for e in executables_list: perms = os.stat(e)[stat.ST_MODE] |