summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py10
-rw-r--r--bitbake/lib/bb/fetch2/git.py7
2 files changed, 16 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 8504678dff..0ad987c596 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -1117,7 +1117,10 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
1117 origud.method.build_mirror_data(origud, ld) 1117 origud.method.build_mirror_data(origud, ld)
1118 return origud.localpath 1118 return origud.localpath
1119 # Otherwise the result is a local file:// and we symlink to it 1119 # Otherwise the result is a local file:// and we symlink to it
1120 ensure_symlink(ud.localpath, origud.localpath) 1120 # This may also be a link to a shallow archive
1121 # When using shallow mode, add a symlink to the original fullshallow
1122 # path to ensure a valid symlink even in the `PREMIRRORS` case
1123 origud.method.update_mirror_links(ud, origud)
1121 update_stamp(origud, ld) 1124 update_stamp(origud, ld)
1122 return ud.localpath 1125 return ud.localpath
1123 1126
@@ -1653,6 +1656,11 @@ class FetchMethod(object):
1653 except FileExistsError: 1656 except FileExistsError:
1654 pass 1657 pass
1655 1658
1659 def update_mirror_links(self, ud, origud):
1660 # For local file:// results, create a symlink to them
1661 # This may also be a link to a shallow archive
1662 self.ensure_symlink(ud.localpath, origud.localpath)
1663
1656 def try_premirror(self, urldata, d): 1664 def try_premirror(self, urldata, d):
1657 """ 1665 """
1658 Should premirrors be used? 1666 Should premirrors be used?
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 784a45bda2..55dd084abc 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -348,6 +348,13 @@ class Git(FetchMethod):
348 def tarball_need_update(self, ud): 348 def tarball_need_update(self, ud):
349 return ud.write_tarballs and not os.path.exists(ud.fullmirror) 349 return ud.write_tarballs and not os.path.exists(ud.fullmirror)
350 350
351 def update_mirror_links(self, ud, origud):
352 super().update_mirror_links(ud, origud)
353 # When using shallow mode, add a symlink to the original fullshallow
354 # path to ensure a valid symlink even in the `PREMIRRORS` case
355 if ud.shallow and not os.path.exists(origud.fullshallow):
356 self.ensure_symlink(ud.localpath, origud.fullshallow)
357
351 def try_premirror(self, ud, d): 358 def try_premirror(self, ud, d):
352 # If we don't do this, updating an existing checkout with only premirrors 359 # If we don't do this, updating an existing checkout with only premirrors
353 # is not possible 360 # is not possible