diff options
author | Zac Medico <zmedico@gentoo.org> | 2019-10-28 17:56:47 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2019-10-28 18:07:45 -0700 |
commit | 1ca5b822133171b131cef3dc15dc43583893ad6b (patch) | |
tree | b4efb8af7052c0424102cedafc9f1531184f9695 | |
parent | emerge: fix error message for unknown options (bug 673400) (diff) | |
download | portage-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.py | 3 |
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 |