From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6498671579909586944 X-Received: by 2002:a5d:564a:: with SMTP id j10mr1985654wrw.108.1618381967164; Tue, 13 Apr 2021 23:32:47 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4101:: with SMTP id j1ls465549wmi.2.canary-gmail; Tue, 13 Apr 2021 23:32:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwnSAsWV81iIZyFUzFQC0jhnUiKcFDK9dkv18OY5EveXDcPuZvY7cxXymXReYq9t/23LLCD X-Received: by 2002:a1c:f614:: with SMTP id w20mr1327117wmc.70.1618381966421; Tue, 13 Apr 2021 23:32:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618381966; cv=none; d=google.com; s=arc-20160816; b=yKdF03yws3vV8VC7uVtGSLCfPVo+4+DASIAZqFhd36VhgoK2hJiDsrCvPUzidpomX3 yyNpFUM9jQ4rZK/RgVVsyoOONo1aT1XIm3rmFTtcZauRXPwT7QZNg4tEEv+Z0lpthprS +dqVtrfmWEtRPMLGnxiKQeH6pQGiDufs1WU0ONdanfXaW1FCa3F8+tq6pwoRevrW3YK+ OCYKpcm0Z5WUyULdWdS4/EVM8rt1llYMZVZHeJxGvj83xEI6BmDRcSVzXwQdp96yAgmB ZmKkfcN0eYM8eWctBMgq5lJIU8WN9d3TlXM+54m90szZxcCGK0JltAF95qA8HcGkI3jK wxjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=+E0ub95PikeB1KBRtBC9+Zi9X5EY14N0l/v4OP73gSo=; b=Yr3QC54JjyF3YZfKKq9oac2CoBxIArcGvfoutlVfoZKqYQK33x+W/QGhOORuvM6URm M8ZcTTdLrpZdl/vaus2bm5QGv0foGEhZSLIlMUoNk8d7vDT42kaCZ6iOo2GMaUSe5fM5 lhL+YiN/KtC1XoMJBShgdd5T0I8ClaWzx1ELY3UdINr5GJkOIngDKzd6N7g6XMvWSIim 5kjxROj5IeZkU173130b6K7dmzTCqjoBO528nk/2jQ/V3iSIMs5ZFlKOAmd2mwONxihx 7K2sysuOwx4+9eRGFBf5grlKejfBztPJMBWGVc31gLptC8J6Of9WtfLTzYKuHzazuD55 4Qqw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id f8si264988wmj.1.2021.04.13.23.32.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Apr 2021 23:32:46 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 13E6WjY9018014 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 14 Apr 2021 08:32:45 +0200 Received: from localhost.localdomain ([167.87.7.134]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 13E6WjJu020955; Wed, 14 Apr 2021 08:32:45 +0200 From: Henning Schild To: bitbake-devel@lists.openembedded.org Cc: isar-users@googlegroups.com, Richard Purdie , Cedric Hombourger , Chris Larson , Henning Schild Subject: [PATCH v3 1/3] fetch/git: add support for disabling shared clones on unpack Date: Wed, 14 Apr 2021 08:32:39 +0200 Message-Id: <20210414063241.18528-1-henning.schild@siemens.com> X-Mailer: git-send-email 2.26.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: JGRO3P+bivJD 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 --- lib/bb/fetch2/git.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index e3ba80a3f52a..3e25b4b6047c 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" -- 2.26.3