[OE-core] [PATCH v4] externalsrc: Handle .git not being a directory
Joshua Watt
jpewhacker at gmail.com
Thu Aug 10 02:18:32 UTC 2017
Use git rev-parse to determine the location of the .git directory, in
case it is not an immediate child of EXTERNALSRC (e.g. when using
submodules). In the event git can't resolve the .git directory, fall
back to the non-git method for hashing.
Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
---
meta/classes/externalsrc.bbclass | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
index 9aabb426d9e..8141f25e041 100644
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -184,11 +184,19 @@ def srctree_hash_files(d, srcdir=None):
import tempfile
s_dir = srcdir or d.getVar('EXTERNALSRC')
- git_dir = os.path.join(s_dir, '.git')
- oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1')
+ git_dir = None
+
+ try:
+ # git rev-parse returns the path relative to the current working
+ # directory
+ git_dir = os.path.join(s_dir,
+ subprocess.check_output(['git', 'rev-parse', '--git-dir'], cwd=s_dir).decode("utf-8").rstrip())
+ except subprocess.CalledProcessError:
+ pass
ret = " "
- if os.path.exists(git_dir):
+ if git_dir is not None:
+ oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1')
with tempfile.NamedTemporaryFile(prefix='oe-devtool-index') as tmp_index:
# Clone index
shutil.copyfile(os.path.join(git_dir, 'index'), tmp_index.name)
--
2.13.3
More information about the Openembedded-core
mailing list