aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Schild <henning.schild@siemens.com>2021-04-14 08:32:39 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-04-18 11:38:18 +0100
commit6ae6f1865d5e666ebc670f70b7401a7b41648102 (patch)
tree201d7ba4c16414ada83a9099b30765734889a23c
parent7729ef2983c72867e99fad82d671069ba5cb32b2 (diff)
downloadbitbake-contrib-6ae6f1865d5e666ebc670f70b7401a7b41648102.tar.gz
fetch/git: add support for disabling shared clones on unpack
By default the unpacker will create a "shared" clone when cloning from the DL_DIR to the WORKDIR. This patch introduces an option to control that behaviour. Imagine some recipe steps are executed in a namespace that is different from the one your downloader and unpacker ran in. (chroot) Because a "shared" clone has an absolute reference to its "alternate" you now have to make that "alternate" visible in that new namespace (chroot) at the exact place. With this patch you can unpack "noshared" and get a stand-alone copy. This copy will also work if the "alternate" is not visible or existant. The switch is a global bitbake switch and will affect all git urls. Build systems that need "noshared" most likely need it for everything they do with git. Signed-off-by: Henning Schild <henning.schild@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/git.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index e3ba80a3f..3e25b4b60 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -168,7 +168,11 @@ class Git(FetchMethod):
if len(branches) != len(ud.names):
raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
- ud.cloneflags = "-s -n"
+ ud.noshared = d.getVar("BB_GIT_NOSHARED") == "1"
+
+ ud.cloneflags = "-n"
+ if not ud.noshared:
+ ud.cloneflags += " -s"
if ud.bareclone:
ud.cloneflags += " --mirror"