aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2019-10-28 17:56:47 -0700
committerZac Medico <zmedico@gentoo.org>2019-10-28 18:07:45 -0700
commit1ca5b822133171b131cef3dc15dc43583893ad6b (patch)
treeb4efb8af7052c0424102cedafc9f1531184f9695
parentemerge: fix error message for unknown options (bug 673400) (diff)
downloadportage-1ca5b822133171b131cef3dc15dc43583893ad6b.tar.gz
portage-1ca5b822133171b131cef3dc15dc43583893ad6b.tar.bz2
portage-1ca5b822133171b131cef3dc15dc43583893ad6b.zip
fetch: remove symlink created by FETCHCOMMAND_RSYNC (bug 698046)
This avoids confusing "No such file or directory" errors as demonstrated by the following test case: $ ln -s /foo/bar /tmp/sudo-1.8.29rc1.tar.gz $ wget http://distfiles.gentoo.org/distfiles/sudo-1.8.29rc1.tar.gz -O /tmp/sudo-1.8.29rc1.tar.gz /tmp/sudo-1.8.29rc1.tar.gz: No such file or directory Bug: https://bugs.gentoo.org/698046 Signed-off-by: Zac Medico <zmedico@gentoo.org>
-rw-r--r--lib/portage/package/ebuild/fetch.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/portage/package/ebuild/fetch.py b/lib/portage/package/ebuild/fetch.py
index 58718b568..4612532c5 100644
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@ -1283,7 +1283,8 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0,
# trust the return value from the fetcher. Remove the
# empty file and try to download again.
try:
- if os.stat(download_path).st_size == 0:
+ mystat = os.lstat(download_path)
+ if mystat.st_size == 0 or (stat.S_ISLNK(mystat.st_mode) and not os.path.exists(download_path)):
os.unlink(download_path)
fetched = 0
continue