diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-12-09 19:55:36 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-12-09 19:55:36 -0800 |
commit | 7c0ba941760c32d123dc225fe797f509195831cb (patch) | |
tree | fb6367769b570cc57b6f29de092a42002608f0c2 | |
parent | d4b19ee8e8f7039d146ed85af2f264cf9b93dae1 (diff) | |
download | portage-7c0ba941760c32d123dc225fe797f509195831cb.tar.gz portage-7c0ba941760c32d123dc225fe797f509195831cb.tar.bz2 portage-7c0ba941760c32d123dc225fe797f509195831cb.zip |
Binpkg: handle missing dir after chpathtool
-rw-r--r-- | pym/_emerge/Binpkg.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py index 57b170f53..49368780c 100644 --- a/pym/_emerge/Binpkg.py +++ b/pym/_emerge/Binpkg.py @@ -351,11 +351,17 @@ class Binpkg(CompositeTask): # Move the files to the correct location for merge. image_tmp_dir = os.path.join( self.settings["PORTAGE_BUILDDIR"], "image_tmp") - os.rename(os.path.join(self.settings["D"], - self._build_prefix.lstrip(os.sep)), image_tmp_dir) - shutil.rmtree(self._image_dir) - ensure_dirs(os.path.dirname(self.settings["ED"].rstrip(os.sep))) - os.rename(image_tmp_dir, self.settings["ED"]) + build_d = os.path.join(self.settings["D"], + self._build_prefix.lstrip(os.sep)) + if not os.path.isdir(build_d): + # Assume this is a virtual package or something. + shutil.rmtree(self._image_dir) + ensure_dirs(self.settings["ED"]) + else: + os.rename(build_d, image_tmp_dir) + shutil.rmtree(self._image_dir) + ensure_dirs(os.path.dirname(self.settings["ED"].rstrip(os.sep))) + os.rename(image_tmp_dir, self.settings["ED"]) self.wait() |