diff options
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 10 | ||||
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 7 |
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 |