summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 07b7ae41b4..290773072f 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1021,7 +1021,8 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
origud.method.build_mirror_data(origud, ld)
return origud.localpath
# Otherwise the result is a local file:// and we symlink to it
- ensure_symlink(ud.localpath, origud.localpath)
+ ensure_symlink(ud.localpath, origud.localpath, relative=True)
+
update_stamp(origud, ld)
return ud.localpath
@@ -1055,7 +1056,7 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
bb.utils.unlockfile(lf)
-def ensure_symlink(target, link_name):
+def ensure_symlink(target, link_name, relative=False):
if not os.path.exists(link_name):
if os.path.islink(link_name):
# Broken symbolic link
@@ -1066,6 +1067,8 @@ def ensure_symlink(target, link_name):
# same time, in which case we do not want the second task to
# fail when the link has already been created by the first task.
try:
+ if relative is True:
+ target = os.path.relpath(target, os.path.dirname(link_name))
os.symlink(target, link_name)
except FileExistsError:
pass