summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-05-14 21:39:26 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-14 21:39:26 -0700
commit5fc6f2b77d853eec51d6dbdfbfecc5dd7c5b5648 (patch)
tree61a9a2ce71fc6f9605fa2e33107b742a112bf56d
parent521f0739caae714edaebede89b7143c26330804b (diff)
downloadportage-5fc6f2b77d853eec51d6dbdfbfecc5dd7c5b5648.tar.gz
portage-5fc6f2b77d853eec51d6dbdfbfecc5dd7c5b5648.tar.bz2
portage-5fc6f2b77d853eec51d6dbdfbfecc5dd7c5b5648.zip
movefile: handle EEXIST when os.symlink fails
-rw-r--r--pym/portage/util/movefile.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/pym/portage/util/movefile.py b/pym/portage/util/movefile.py
index f8cc695fb..e07e8ca4f 100644
--- a/pym/portage/util/movefile.py
+++ b/pym/portage/util/movefile.py
@@ -90,7 +90,8 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
# to tolerate these links being recreated during the merge
# process. In any case, if the link is pointing at the right
# place, we're in good shape.
- if e.errno != errno.ENOENT or target != os.readlink(dest):
+ if e.errno not in (errno.ENOENT, errno.EEXIST) or \
+ target != os.readlink(dest):
raise
lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
# utime() only works on the target of a symlink, so it's not