@@ -270,13 +270,6 @@ class Git(FetchMethod):
ud.setup_revisions(d)
- for name in ud.names:
- # Ensure any revision that doesn't look like a SHA-1 is translated into one
- if not sha1_re.match(ud.revisions[name] or ''):
- if ud.revisions[name]:
- 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('*', '.').replace(' ','_').replace('(', '_').replace(')', '_'))
if gitsrcname.startswith('.'):
gitsrcname = gitsrcname[1:]
@@ -294,6 +287,13 @@ class Git(FetchMethod):
ud.clonedir = os.path.join(gitdir, gitsrcname)
ud.localfile = ud.clonedir
+ for name in ud.names:
+ # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one
+ if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]):
+ if ud.revisions[name]:
+ ud.unresolvedrev[name] = ud.revisions[name]
+ ud.revisions[name] = self.latest_revision(ud, d, name)
+
mirrortarball = 'git2_%s.tar.gz' % gitsrcname
ud.fullmirror = os.path.join(dl_dir, mirrortarball)
ud.mirrortarballs = [mirrortarball]
@@ -909,7 +909,11 @@ class Git(FetchMethod):
repourl = self._get_repo_url(ud)
cmd = "%s ls-remote %s %s" % \
(ud.basecmd, shlex.quote(repourl), search)
- if ud.proto.lower() != 'file':
+
+ if bb.utils.to_boolean(d.getVar("BB_NO_NETWORK")):
+ cmd = "%s ls-remote file://%s %s" % \
+ (ud.basecmd, shlex.quote(ud.clonedir), search)
+ elif ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, cmd, repourl)
output = runfetchcmd(cmd, d, True)
if not output:
This adds support for offline builds when tags are used within `SRCREV`. Offline building is enabled when `BB_NO_NETWORK = "1"` is set. Signed-off-by: Stefan Koch <stefan-koch@siemens.com> --- lib/bb/fetch2/git.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)