[bitbake-devel] [PATCH 2/5] fetch2: Add get_mirrorname()

Richard Purdie richard.purdie at linuxfoundation.org
Thu Mar 21 23:42:04 UTC 2019


On Thu, 2019-03-14 at 17:28 +0800, Robert Yang wrote:
> It can be used by both __init__.py and git.py.
> 
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  bitbake/lib/bb/fetch2/__init__.py | 5 ++++-
>  bitbake/lib/bb/fetch2/git.py      | 2 +-
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
> index f112067..5062bb2 100644
> --- a/bitbake/lib/bb/fetch2/__init__.py
> +++ b/bitbake/lib/bb/fetch2/__init__.py
> @@ -889,6 +889,9 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
>  
>      return output
>  
> +def get_mirrorname(ud):
> +    return ud.host.replace(':','.') + ud.path.replace('/', '.').replace('*', '.')
> +
>  def check_network_access(d, info, url):
>      """
>      log remote network access, and error if BB_NO_NETWORK is set or the given
> @@ -910,7 +913,7 @@ def build_mirroruris(origud, mirrors, ld):
>      replacements["HOST"] = origud.host
>      replacements["PATH"] = origud.path
>      replacements["BASENAME"] = origud.path.split("/")[-1]
> -    replacements["MIRRORNAME"] = origud.host.replace(':','.') + origud.path.replace('/', '.').replace('*', '.')
> +    replacements["MIRRORNAME"] = get_mirrorname(origud)
>  
>      def adduri(ud, uris, uds, mirrors, tarballs):
>          for line in mirrors:
> diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
> index cf8bee7..45d7303 100644
> --- a/bitbake/lib/bb/fetch2/git.py
> +++ b/bitbake/lib/bb/fetch2/git.py
> @@ -248,7 +248,7 @@ class Git(FetchMethod):
>                      ud.unresolvedrev[name] = ud.revisions[name]
>                  ud.revisions[name] = self.latest_revision(ud, d, name)
>  
> -        gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.'))
> +        gitsrcname = bb.fetch2.get_mirrorname(ud)
>          if gitsrcname.startswith('.'):
>              gitsrcname = gitsrcname[1:]
>  

I think your patch is highlighting a deeper problem here. The mirror
name is something which the given fetcher module should be decoding and
this shouldn't handled in __init__.py unless its some kind of default.

We probably need to look more deeply about why git fetcher knowledge is
being used in the general case and fix that instead...

Cheers,

Richard



More information about the bitbake-devel mailing list