mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
bitbake: fetch2: extract the function which ensures that a valid symlink exists
For better readability and future use, we extract the function which ensures that a given symlink exists. (Bitbake rev: 5e69ca56533666a097bb23d09ab673e5c862051c) Signed-off-by: Urs Fässler <urs.fassler@bbv.ch> Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9a058e4421
commit
49f25eceeb
@@ -1018,16 +1018,7 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
|
|||||||
origud.method.build_mirror_data(origud, ld)
|
origud.method.build_mirror_data(origud, ld)
|
||||||
return origud.localpath
|
return origud.localpath
|
||||||
# Otherwise the result is a local file:// and we symlink to it
|
# Otherwise the result is a local file:// and we symlink to it
|
||||||
if not os.path.exists(origud.localpath):
|
ensure_symlink(ud.localpath, origud.localpath)
|
||||||
if os.path.islink(origud.localpath):
|
|
||||||
# Broken symbolic link
|
|
||||||
os.unlink(origud.localpath)
|
|
||||||
|
|
||||||
# As per above, in case two tasks end up here simultaneously.
|
|
||||||
try:
|
|
||||||
os.symlink(ud.localpath, origud.localpath)
|
|
||||||
except FileExistsError:
|
|
||||||
pass
|
|
||||||
update_stamp(origud, ld)
|
update_stamp(origud, ld)
|
||||||
return ud.localpath
|
return ud.localpath
|
||||||
|
|
||||||
@@ -1061,6 +1052,22 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
|
|||||||
bb.utils.unlockfile(lf)
|
bb.utils.unlockfile(lf)
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_symlink(target, link_name):
|
||||||
|
if not os.path.exists(link_name):
|
||||||
|
if os.path.islink(link_name):
|
||||||
|
# Broken symbolic link
|
||||||
|
os.unlink(link_name)
|
||||||
|
|
||||||
|
# In case this is executing without any file locks held (as is
|
||||||
|
# the case for file:// URLs), two tasks may end up here at the
|
||||||
|
# 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:
|
||||||
|
os.symlink(target, link_name)
|
||||||
|
except FileExistsError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def try_mirrors(fetch, d, origud, mirrors, check = False):
|
def try_mirrors(fetch, d, origud, mirrors, check = False):
|
||||||
"""
|
"""
|
||||||
Try to use a mirrored version of the sources.
|
Try to use a mirrored version of the sources.
|
||||||
|
|||||||
Reference in New Issue
Block a user