mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +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
@@ -1049,7 +1049,7 @@ python fixup_perms () {
|
||||
# Create path to move directory to, move it, and then setup the symlink
|
||||
bb.utils.mkdirhier(os.path.dirname(target))
|
||||
#bb.note("Fixup Perms: Rename %s -> %s" % (dir, ptarget))
|
||||
os.rename(origin, target)
|
||||
bb.utils.rename(origin, target)
|
||||
#bb.note("Fixup Perms: Link %s -> %s" % (dir, link))
|
||||
os.symlink(link, origin)
|
||||
|
||||
@@ -1967,7 +1967,7 @@ python package_do_shlibs() {
|
||||
|
||||
for (old, new) in renames:
|
||||
bb.note("Renaming %s to %s" % (old, new))
|
||||
os.rename(old, new)
|
||||
bb.utils.rename(old, new)
|
||||
pkgfiles[pkg].remove(old)
|
||||
|
||||
shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
|
||||
|
||||
Reference in New Issue
Block a user