From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6498671579909586944 X-Received: by 10.28.190.7 with SMTP id o7mr233939wmf.2.1513089886770; Tue, 12 Dec 2017 06:44:46 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.125.198 with SMTP id y189ls2236044wmc.8.canary-gmail; Tue, 12 Dec 2017 06:44:46 -0800 (PST) X-Google-Smtp-Source: ACJfBovP/fHwKuZUNuUp025coUPm9SHYDE6fSnsFzlr4irQ3FDMa/uBOYF4zLtwHyW1JEPqFtCwV X-Received: by 10.28.210.149 with SMTP id j143mr251920wmg.2.1513089886222; Tue, 12 Dec 2017 06:44:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513089886; cv=none; d=google.com; s=arc-20160816; b=yxRxpmiuJ1LDVdGj17O0NK4UhPwQnp+VkpVkujgEOwkReqE07DygxiOba+kE3tlxHC HW7mIlCJ6NfMdPW+0Mh7QyPfvZ93RuAV77h5ktbrNPOLGaM5bKo0PvO7XEF2ri5Po20E +b2p9LhPz4/ROCOamJlzAe0s9njOcWlMiPQsx+GSZgEph80ZG0+RaDxd03ntKNdzpy9z jOYs71E444ufim3Dejo2QueTjV0c8PBO/AP8UvwapmjIk+t92mekhzyf+aol4iJEihvq nsJ7cj8C84bvkU0K++WPs+Dn0g592yg+sLczNLbUGZJ6lJdOxfEyKnCJAVxYr9cfNdQO +T2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=3vED1pJ6Zst3sCfCOOeP47vlT2H3nBfvKZSBYI8obgY=; b=XxEBTiQr4VDBugcvULxHcSbqjOv2B+yg5BHtd7o8O+onxDyqzwZRrSdLN8dyHI00zM gl8/wr9F8/+BpvAcR+INX3iuYFfsWa85n5/uKNYkKkIkrcRdcYkNIMblB3SjX8rVzKmw FZnu+umi4TPAdcBa2EYdQHrizOyQ9kxj89Q077wj+2lL3jYILjUmnMWSjoD/YjfE2GaG pSmnZd6OLyn1Dl5rfIh1bI5yGiwYNfwxobtI5dNpOy7ESaUDQv6yVeKszJRvf4mHVZ7q u2CWUZUPOyz3RI3RGgSHMx5KswD5EZ8W+e9zQ9pk4t3e8fqXhZPdDgCmqPd6RJYtR80F ThoA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id q72si9799wme.2.2017.12.12.06.44.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Dec 2017 06:44:46 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id vBCEijQG025162 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 Dec 2017 15:44:45 +0100 Received: from md1pvb1c.ad001.siemens.net (md1pvb1c.ad001.siemens.net [139.25.68.40] (may be forged)) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id vBCEij6e019369; Tue, 12 Dec 2017 15:44:45 +0100 From: Henning Schild To: bitbake-devel@lists.openembedded.org Cc: isar-users@googlegroups.com, Henning Schild Subject: [PATCH] fetch/git: add support for disabling shared clones on unpack Date: Tue, 12 Dec 2017 15:44:43 +0100 Message-Id: <20171212144443.30618-1-henning.schild@siemens.com> X-Mailer: git-send-email 2.13.6 X-TUID: 7nDcQngXeTbt 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. Probably something that hardly anyone would want to do. 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. Signed-off-by: Henning Schild --- lib/bb/fetch2/git.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index 5ef8cd69..30b88c83 100644 --- a/lib/bb/fetch2/git.py +++ b/lib/bb/fetch2/git.py @@ -53,6 +53,13 @@ Supported SRC_URI options are: For local git:// urls to use the current branch HEAD as the revision for use with AUTOREV. Implies nobranch. +- noshared + When unpacking do not clone with the parameter "--shared". This option will + allow the unpacked copy to work stand-alone i.e. if your recipe runs in a + chroot where the "alternate" can not be found. Setting this will increase + the unpack-time and the disk-usage. + The default is "0", set noshared=1 if needed. + """ #Copyright (C) 2005 Richard Purdie @@ -159,6 +166,8 @@ class Git(FetchMethod): ud.nobranch = ud.parm.get("nobranch","0") == "1" + ud.noshared = ud.parm.get("noshared","0") == "1" + # usehead implies nobranch ud.usehead = ud.parm.get("usehead","0") == "1" if ud.usehead: @@ -176,7 +185,9 @@ 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" + cloneflags = "-n" + if not ud.noshared: + cloneflags += " -s" if ud.bareclone: ud.cloneflags += " --mirror" -- 2.13.6