diff options
| -rw-r--r-- | meta/classes/uninative.bbclass | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass index a410647328..670efa9f05 100644 --- a/meta/classes/uninative.bbclass +++ b/meta/classes/uninative.bbclass | |||
| @@ -63,7 +63,19 @@ python uninative_event_fetchloader() { | |||
| 63 | fetcher.download() | 63 | fetcher.download() |
| 64 | localpath = fetcher.localpath(srcuri) | 64 | localpath = fetcher.localpath(srcuri) |
| 65 | if localpath != tarballpath and os.path.exists(localpath) and not os.path.exists(tarballpath): | 65 | if localpath != tarballpath and os.path.exists(localpath) and not os.path.exists(tarballpath): |
| 66 | # Follow the symlink behavior from the bitbake fetch2. | ||
| 67 | # This will cover the case where an existing symlink is broken | ||
| 68 | # as well as if there are two processes trying to create it | ||
| 69 | # at the same time. | ||
| 70 | if os.path.islink(tarballpath): | ||
| 71 | # Broken symbolic link | ||
| 72 | os.unlink(tarballpath) | ||
| 73 | |||
| 74 | # Deal with two processes trying to make symlink at once | ||
| 75 | try: | ||
| 66 | os.symlink(localpath, tarballpath) | 76 | os.symlink(localpath, tarballpath) |
| 77 | except FileExistsError: | ||
| 78 | pass | ||
| 67 | 79 | ||
| 68 | cmd = d.expand("\ | 80 | cmd = d.expand("\ |
| 69 | mkdir -p ${UNINATIVE_STAGING_DIR}-uninative; \ | 81 | mkdir -p ${UNINATIVE_STAGING_DIR}-uninative; \ |
