diff options
author | Devendra Tewari <devendra.tewari@gmail.com> | 2021-04-19 11:23:58 -0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-05-06 11:16:23 +0100 |
commit | b71375304f393db62e0894af66e9a60bb9a5c8cc (patch) | |
tree | ac14a351c1c6cd0ba2679c18a4de92c71dee0e7f /meta/lib/oe/package_manager/deb/__init__.py | |
parent | 974441aeda1a2e601865743e945e0332c115ef76 (diff) | |
download | poky-b71375304f393db62e0894af66e9a60bb9a5c8cc.tar.gz |
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>
Diffstat (limited to 'meta/lib/oe/package_manager/deb/__init__.py')
-rw-r--r-- | meta/lib/oe/package_manager/deb/__init__.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/meta/lib/oe/package_manager/deb/__init__.py b/meta/lib/oe/package_manager/deb/__init__.py index 2ee68fefb1..a4b6b6f647 100644 --- a/meta/lib/oe/package_manager/deb/__init__.py +++ b/meta/lib/oe/package_manager/deb/__init__.py | |||
@@ -214,7 +214,7 @@ class DpkgPM(OpkgDpkgPM): | |||
214 | 214 | ||
215 | tmp_sf.write(status) | 215 | tmp_sf.write(status) |
216 | 216 | ||
217 | os.rename(status_file + ".tmp", status_file) | 217 | bb.utils.rename(status_file + ".tmp", status_file) |
218 | 218 | ||
219 | def run_pre_post_installs(self, package_name=None): | 219 | def run_pre_post_installs(self, package_name=None): |
220 | """ | 220 | """ |
@@ -299,13 +299,13 @@ class DpkgPM(OpkgDpkgPM): | |||
299 | for dir in dirs: | 299 | for dir in dirs: |
300 | new_dir = re.sub(r"\.dpkg-new", "", dir) | 300 | new_dir = re.sub(r"\.dpkg-new", "", dir) |
301 | if dir != new_dir: | 301 | if dir != new_dir: |
302 | os.rename(os.path.join(root, dir), | 302 | bb.utils.rename(os.path.join(root, dir), |
303 | os.path.join(root, new_dir)) | 303 | os.path.join(root, new_dir)) |
304 | 304 | ||
305 | for file in files: | 305 | for file in files: |
306 | new_file = re.sub(r"\.dpkg-new", "", file) | 306 | new_file = re.sub(r"\.dpkg-new", "", file) |
307 | if file != new_file: | 307 | if file != new_file: |
308 | os.rename(os.path.join(root, file), | 308 | bb.utils.rename(os.path.join(root, file), |
309 | os.path.join(root, new_file)) | 309 | os.path.join(root, new_file)) |
310 | 310 | ||
311 | 311 | ||