summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/reproducible.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe/reproducible.py')
-rw-r--r--meta/lib/oe/reproducible.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py
index f80a85ddef..f4f58dd952 100644
--- a/meta/lib/oe/reproducible.py
+++ b/meta/lib/oe/reproducible.py
@@ -47,14 +47,23 @@ def find_git_folder(d, sourcedir):
47 return None 47 return None
48 48
49def get_source_date_epoch_from_git(d, sourcedir): 49def get_source_date_epoch_from_git(d, sourcedir):
50 source_date_epoch = None 50 if not "git://" in d.getVar('SRC_URI'):
51 if "git://" in d.getVar('SRC_URI'): 51 return None
52 gitpath = find_git_folder(d, sourcedir) 52
53 if gitpath: 53 gitpath = find_git_folder(d, sourcedir)
54 import subprocess 54 if not gitpath:
55 source_date_epoch = int(subprocess.check_output(['git','log','-1','--pretty=%ct'], cwd=gitpath)) 55 return None
56 bb.debug(1, "git repository: %s" % gitpath) 56
57 return source_date_epoch 57 # Check that the repository has a valid HEAD; it may not if subdir is used
58 # in SRC_URI
59 p = subprocess.run(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=gitpath)
60 if p.returncode != 0:
61 bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8')))
62 return None
63
64 bb.debug(1, "git repository: %s" % gitpath)
65 p = subprocess.run(['git','log','-1','--pretty=%ct'], check=True, stdout=subprocess.PIPE, cwd=gitpath)
66 return int(p.stdout.decode('utf-8'))
58 67
59def get_source_date_epoch_from_youngest_file(d, sourcedir): 68def get_source_date_epoch_from_youngest_file(d, sourcedir):
60 if sourcedir == d.getVar('WORKDIR'): 69 if sourcedir == d.getVar('WORKDIR'):