aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-14 13:20:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-15 12:21:51 +0100
commiteff16e474ee7dc49ae433420a4c8d15d3314a618 (patch)
tree11153c3def241447eca474cc4ad6565a5ed7d93d
parent5e3b2ad90d9cd0f248b1cb740637caa24442d101 (diff)
downloadbitbake-eff16e474ee7dc49ae433420a4c8d15d3314a618.tar.gz
fetch2: Ensure directory exists before creating symlink
If the mirrors code is trying to create a symlink and the parent directory doesn't exist, as might be the case for sstate mirrors where the fetch is into a subdir, it can silently fail. Ensure the directory exists in this case to avoid issues. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/__init__.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index cd7dc4f13..c1523fc1c 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1097,6 +1097,8 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
def ensure_symlink(target, link_name):
if not os.path.exists(link_name):
+ dirname = os.path.dirname(link_name)
+ bb.utils.mkdirhier(dirname)
if os.path.islink(link_name):
# Broken symbolic link
os.unlink(link_name)