summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-09-18 17:59:32 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-19 20:30:35 +0100
commite35be7aa7dc73e1f686c8e0d229b3d20f1891853 (patch)
treea7bfd03b76ec322ee316a991046b67e5f74df622 /bitbake/lib/bb/fetch2
parent0a46b9dd9ca4069c3975215f2257632e492350a0 (diff)
downloadpoky-e35be7aa7dc73e1f686c8e0d229b3d20f1891853.tar.gz
bitbake: fetch2/git: add git-lfs toggle option
Add a new 'lfs' option to the git fetcher so that we can optionally not fetch git-lfs content, for repositories that contain LFS data that we don't actually need for building. By default lfs is set to 1, so if the repository has LFS content then git-lfs is required. Setting lfs to 0 will mean that git-lfs won't be required to fetch, and some files will be missing. (Bitbake rev: be0b78ccfc5ede98041bc0545a15092494b12b26) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2')
-rw-r--r--bitbake/lib/bb/fetch2/git.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index e171aa7eb1..5fd63b4e33 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -464,6 +464,8 @@ class Git(FetchMethod):
464 if os.path.exists(destdir): 464 if os.path.exists(destdir):
465 bb.utils.prunedir(destdir) 465 bb.utils.prunedir(destdir)
466 466
467 need_lfs = ud.parm.get("lfs", "1") == "1"
468
467 source_found = False 469 source_found = False
468 source_error = [] 470 source_error = []
469 471
@@ -493,14 +495,16 @@ class Git(FetchMethod):
493 runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) 495 runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
494 496
495 if self._contains_lfs(ud, d, destdir): 497 if self._contains_lfs(ud, d, destdir):
496 path = d.getVar('PATH') 498 if need_lfs:
497 if path: 499 path = d.getVar('PATH')
498 gitlfstool = bb.utils.which(path, "git-lfs", executable=True) 500 if path:
499 if not gitlfstool: 501 gitlfstool = bb.utils.which(path, "git-lfs", executable=True)
500 raise bb.fetch2.FetchError("Repository %s has lfs content, install git-lfs plugin on host to download" % (repourl)) 502 if not gitlfstool:
503 raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
504 else:
505 bb.note("Could not find 'PATH'")
501 else: 506 else:
502 bb.note("Could not find 'PATH'") 507 bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
503
504 508
505 if not ud.nocheckout: 509 if not ud.nocheckout:
506 if subdir != "": 510 if subdir != "":