mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 03:47:03 +00:00
classes/lib/scripts: Use bb.utils.rename() instead of os.rename()
Incremental build in Docker fails with: OSError: [Errno 18] Invalid cross-device link when source and destination are on different overlay filesystems. Rather than adding fallback code to every call site, use a new wrapper in bitbake which detects this case and falls back to shutil.move which is slower but will handtle the overlay docker filesystems correctly. [YOCTO #14301] (From OE-Core rev: 656a65b2b84e7d529b89cf5de7eb838f902d84a2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
974441aeda
commit
b71375304f
@@ -746,7 +746,7 @@ def _check_preserve(config, recipename):
|
||||
os.remove(removefile)
|
||||
else:
|
||||
tf.write(line)
|
||||
os.rename(newfile, origfile)
|
||||
bb.utils.rename(newfile, origfile)
|
||||
|
||||
def get_staging_kver(srcdir):
|
||||
# Kernel version from work-shared
|
||||
@@ -1094,10 +1094,10 @@ def rename(args, config, basepath, workspace):
|
||||
|
||||
# Rename bbappend
|
||||
logger.info('Renaming %s to %s' % (append, newappend))
|
||||
os.rename(append, newappend)
|
||||
bb.utils.rename(append, newappend)
|
||||
# Rename recipe file
|
||||
logger.info('Renaming %s to %s' % (recipefile, newfile))
|
||||
os.rename(recipefile, newfile)
|
||||
bb.utils.rename(recipefile, newfile)
|
||||
|
||||
# Rename source tree if it's the default path
|
||||
appendmd5 = None
|
||||
@@ -1333,7 +1333,7 @@ def _export_patches(srctree, rd, start_rev, destdir, changed_revs=None):
|
||||
if match_name:
|
||||
# Rename patch files
|
||||
if new_patch != match_name:
|
||||
os.rename(os.path.join(destdir, new_patch),
|
||||
bb.utils.rename(os.path.join(destdir, new_patch),
|
||||
os.path.join(destdir, match_name))
|
||||
# Need to pop it off the list now before checking changed_revs
|
||||
oldpath = existing_patches.pop(old_patch)
|
||||
|
||||
Reference in New Issue
Block a user