diff options
Diffstat (limited to 'meta/lib/oe/package_manager/deb/__init__.py')
-rw-r--r-- | meta/lib/oe/package_manager/deb/__init__.py | 18 |
1 files changed, 15 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..8edc653dff 100644 --- a/meta/lib/oe/package_manager/deb/__init__.py +++ b/meta/lib/oe/package_manager/deb/__init__.py @@ -5,6 +5,7 @@ import re import subprocess from oe.package_manager import * +import shutil class DpkgIndexer(Indexer): def _create_configs(self): @@ -214,7 +215,10 @@ class DpkgPM(OpkgDpkgPM): tmp_sf.write(status) - os.rename(status_file + ".tmp", status_file) + try: + os.rename(status_file + ".tmp", status_file) + except OSError: + shutil.move(status_file + ".tmp", status_file) def run_pre_post_installs(self, package_name=None): """ @@ -299,13 +303,21 @@ class DpkgPM(OpkgDpkgPM): for dir in dirs: new_dir = re.sub(r"\.dpkg-new", "", dir) if dir != new_dir: - os.rename(os.path.join(root, dir), + try: + os.rename(os.path.join(root, dir), + os.path.join(root, new_dir)) + except OSError: + shutil.move(os.path.join(root, dir), os.path.join(root, new_dir)) for file in files: new_file = re.sub(r"\.dpkg-new", "", file) if file != new_file: - os.rename(os.path.join(root, file), + try: + os.rename(os.path.join(root, file), + os.path.join(root, new_file)) + except OSError: + shutil.move(os.path.join(root, file), os.path.join(root, new_file)) |