mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
bitbake/utils.py: Only try and add read access to a file if we don't have it
A file we're copying might be on a readonly filesystem so if we can already read it, don't try and add read permission. Fixes BUGID #771 in Yocto. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -773,16 +773,23 @@ def copyfile(src, dest, newmtime = None, sstat = None):
|
||||
return False
|
||||
|
||||
if stat.S_ISREG(sstat[stat.ST_MODE]):
|
||||
os.chmod(src, stat.S_IRUSR) # Make sure we can read it
|
||||
try: # For safety copy then move it over.
|
||||
try:
|
||||
srcchown = False
|
||||
if not os.access(src, os.R_OK):
|
||||
# Make sure we can read it
|
||||
srcchown = True
|
||||
os.chmod(src, sstat[stat.ST_MODE] | stat.S_IRUSR)
|
||||
|
||||
# For safety copy then move it over.
|
||||
shutil.copyfile(src, dest + "#new")
|
||||
os.rename(dest + "#new", dest)
|
||||
except Exception as e:
|
||||
print('copyfile: copy', src, '->', dest, 'failed.', e)
|
||||
return False
|
||||
finally:
|
||||
os.chmod(src, sstat[stat.ST_MODE])
|
||||
os.utime(src, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
|
||||
if srcchown:
|
||||
os.chmod(src, sstat[stat.ST_MODE])
|
||||
os.utime(src, (sstat[stat.ST_ATIME], sstat[stat.ST_MTIME]))
|
||||
|
||||
else:
|
||||
#we don't yet handle special, so we need to fall back to /bin/mv
|
||||
|
||||
Reference in New Issue
Block a user