mirror of
https://git.yoctoproject.org/poky
synced 2026-09-14 03:49:32 +02: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
@@ -184,7 +184,7 @@ python apply_update_alternative_renames () {
|
||||
link_rename.append((alt_target, alt_target_rename))
|
||||
else:
|
||||
bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename))
|
||||
os.rename(src, dest)
|
||||
bb.utils.rename(src, dest)
|
||||
update_files(alt_target, alt_target_rename, pkg, d)
|
||||
else:
|
||||
bb.warn("%s: alternative target (%s or %s) does not exist, skipping..." % (pn, alt_target, alt_target_rename))
|
||||
@@ -201,7 +201,7 @@ python apply_update_alternative_renames () {
|
||||
if os.path.lexists(link_target):
|
||||
# Ok, the link_target exists, we can rename
|
||||
bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, alt_target_rename))
|
||||
os.rename(src, dest)
|
||||
bb.utils.rename(src, dest)
|
||||
else:
|
||||
# Try to resolve the broken link to link.${BPN}
|
||||
link_maybe = '%s.%s' % (os.readlink(src), pn)
|
||||
|
||||
Reference in New Issue
Block a user