[bitbake-devel] [PATCH] bitbake: fetch2: try_mirror_url(): Replace old git with mirror

Ernst Sjöstrand ernst.sjostrand at verisure.com
Fri Aug 16 08:48:08 UTC 2019


fre 2019-05-10 klockan 12:30 +0000 skrev Ernst Sjöstrand:
> If we're trying to fetch a git, we're in try_mirror_url and
> origud.localpath is a directory, that means the original clone is
> broken
> for some reason but we found a mirror that works.
> Remove the original clone and replace it with a symlink, like what
> would
> hopefully be done on a fresh fetch.
> 
> [ Yocto # 13278 ]
> 
> Signed-off-by: Ernst Sjöstrand <ernst.sjostrand at verisure.com>
> ---
>  bitbake/lib/bb/fetch2/__init__.py | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/bitbake/lib/bb/fetch2/__init__.py
> b/bitbake/lib/bb/fetch2/__init__.py
> index 72d6092deb..be1228d6d5 100644
> --- a/bitbake/lib/bb/fetch2/__init__.py
> +++ b/bitbake/lib/bb/fetch2/__init__.py
> @@ -33,6 +33,7 @@ if 'git' not in urllib.parse.uses_netloc:
>      urllib.parse.uses_netloc.append('git')
>  import operator
>  import collections
> +import shutil
>  import subprocess
>  import pickle
>  import errno
> @@ -1015,6 +1016,11 @@ def try_mirror_url(fetch, origud, ud, ld,
> check = False):
>                  if hasattr(origud.method, "build_mirror_data"):
>                      origud.method.build_mirror_data(origud, ld)
>              return origud.localpath
> +        if isinstance(ud.method, git.Git) and
> os.path.isdir(origud.localpath) and origud.localpath != ud.localpath:
> +            logger.warning("Replacing %s with link to %s",
> origud.localpath, ud.localpath)
> +            # We have an old git clone here which is broken for some
> reason,
> +            # remove it and replace is with a symlink.
> +            shutil.rmtree(origud.localpath)
>          # Otherwise the result is a local file:// and we symlink to
> it
>          if not os.path.exists(origud.localpath):
>              if os.path.islink(origud.localpath):
> -- 
> 2.17.1
> 

Ping. I could write a longer explanation for why you might end up in
this situation in the commit message, though that's available in the
bug report.

Regards
//Ernst



More information about the bitbake-devel mailing list