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; \ |