diff options
| -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'): |
