diff options
Diffstat (limited to 'meta/lib/oe/reproducible.py')
-rw-r--r-- | meta/lib/oe/reproducible.py | 25 |
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 | ||
49 | def get_source_date_epoch_from_git(d, sourcedir): | 49 | def 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 | ||
59 | def get_source_date_epoch_from_youngest_file(d, sourcedir): | 68 | def get_source_date_epoch_from_youngest_file(d, sourcedir): |
60 | if sourcedir == d.getVar('WORKDIR'): | 69 | if sourcedir == d.getVar('WORKDIR'): |