[bitbake-devel] [PATCH 1/1] fetch2/git.py: fix _latest_revision for local PREMIRROR

Richard Purdie richard.purdie at linuxfoundation.org
Mon Aug 17 07:46:28 UTC 2015


On Thu, 2015-08-13 at 00:08 -0700, Robert Yang wrote:
> - Fixed when SRCREV = "${AUTOREV}", and set BB_NO_NETWORK = "1":
> $ bitbake <recipe> -ccleanall
> | DEBUG: Executing python function do_cleanall
> | DEBUG: Python function do_cleanall finished
> | ERROR: Function failed: Network access disabled through BB_NO_NETWORK ...
> 
> - Fixed when SRCREV = "${AUTOREV}", set BB_NO_NETWORK = "1"  and use
>   local PREMIRROR:
> $ bitbake <recipe> -cfetchall
> | DEBUG: Python function do_fetch finished
> | ERROR: Function failed: Network access disabled through BB_NO_NETWORK ...
> 
> Stop running "git ls-remote" when BB_NO_NETWORK would fix the problem.
> 
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  bitbake/lib/bb/fetch2/git.py |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
> index 374d846..67ee107 100644
> --- a/bitbake/lib/bb/fetch2/git.py
> +++ b/bitbake/lib/bb/fetch2/git.py
> @@ -350,7 +350,6 @@ class Git(FetchMethod):
>          """
>          Compute the HEAD revision for the url
>          """
> -        output = self._lsremote(ud, d, "")
>          # Tags of the form ^{} may not work, need to fallback to other form
>          if ud.unresolvedrev[name][:5] == "refs/":
>              head = ud.unresolvedrev[name]
> @@ -358,6 +357,12 @@ class Git(FetchMethod):
>          else:
>              head = "refs/heads/%s" % ud.unresolvedrev[name]
>              tag = "refs/tags/%s" % ud.unresolvedrev[name]
> +        # Only ls-remote when url is "file://" or BB_NO_NETWORK != "1",
> +        # this makes local mirror works.
> +        if ud.proto.lower() == 'file' or d.getVar("BB_NO_NETWORK", True) != "1":
> +            output = self._lsremote(ud, d, "")
> +        else:
> +            output = "%s %s" % (name, head)
>          for s in [head, tag + "^{}", tag]:
>              for l in output.split('\n'):
>                  if s in l:

The idea is that when BB_NO_NETWORK is set, network accesses show
errors. This would stop that happening in all cases and lead to silent
failures which would be bad for user experience.

So no, this isn't an acceptable way to fix this, sorry.

Cheers,

Richard











More information about the bitbake-devel mailing list