summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-12-09 19:55:36 -0800
committerZac Medico <zmedico@gentoo.org>2011-12-09 19:55:36 -0800
commit7c0ba941760c32d123dc225fe797f509195831cb (patch)
treefb6367769b570cc57b6f29de092a42002608f0c2
parentd4b19ee8e8f7039d146ed85af2f264cf9b93dae1 (diff)
downloadportage-7c0ba941760c32d123dc225fe797f509195831cb.tar.gz
portage-7c0ba941760c32d123dc225fe797f509195831cb.tar.bz2
portage-7c0ba941760c32d123dc225fe797f509195831cb.zip
Binpkg: handle missing dir after chpathtool
-rw-r--r--pym/_emerge/Binpkg.py16
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()