SDK: trap any IO errors in the relocate script
If the files being relocated are already used by other processes the relocate script will fail with a traceback. This patch will trap any IO errors when opening such a file and gracefully report them to the user. Also change the exit code from 1 to -1 for a better adt-installer user experience (like pointing the user to the adt_installer.log). [YOCTO #3164] (From OE-Core rev: 26daec758b2eaeb208356d5aa8a9a191bd366751) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
04ced3d738
commit
6bc5925ea9
|
@ -29,6 +29,7 @@ import sys
|
|||
import stat
|
||||
import os
|
||||
import re
|
||||
import errno
|
||||
|
||||
old_prefix = re.compile("##DEFAULT_INSTALL_DIR##")
|
||||
|
||||
|
@ -171,7 +172,7 @@ def change_dl_sysdirs():
|
|||
|
||||
# MAIN
|
||||
if len(sys.argv) < 4:
|
||||
exit(1)
|
||||
exit(-1)
|
||||
|
||||
new_prefix = sys.argv[1]
|
||||
new_dl_path = sys.argv[2]
|
||||
|
@ -184,7 +185,16 @@ for e in executables_list:
|
|||
else:
|
||||
os.chmod(e, perms|stat.S_IRWXU)
|
||||
|
||||
try:
|
||||
f = open(e, "r+b")
|
||||
except IOError as ioex:
|
||||
if ioex.errno == errno.ETXTBSY:
|
||||
print("Could not open %s. File used by another process.\nPlease "\
|
||||
"make sure you exit all processes that might use any SDK "\
|
||||
"binaries." % e)
|
||||
else:
|
||||
print("Could not open %s: %s(%d)" % (e, ioex.strerror, ioex.errno))
|
||||
exit(-1)
|
||||
|
||||
arch = get_arch()
|
||||
if arch:
|
||||
|
|
Loading…
Reference in New Issue