mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 21:32:12 +02:00
lib/oe/reproducible: Fix error when no git HEAD
Fixes an error that occurs when attempting to get the timestamp of the latest commit when there is no HEAD in the git repository. The easiest way to trigger this condition is to use the 'subdir=' option when specifying a 'git://' SRC_URI. (From OE-Core rev: 02e42107e1c6145c215bfd74fe17fd8abc2db04f) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit a64caca5b5dbe4a76acd0b5709b2c3e75b245863) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9f46c1a1ad
commit
0d4dea0189
@@ -47,14 +47,23 @@ def find_git_folder(d, sourcedir):
|
||||
return None
|
||||
|
||||
def get_source_date_epoch_from_git(d, sourcedir):
|
||||
source_date_epoch = None
|
||||
if "git://" in d.getVar('SRC_URI'):
|
||||
gitpath = find_git_folder(d, sourcedir)
|
||||
if gitpath:
|
||||
import subprocess
|
||||
source_date_epoch = int(subprocess.check_output(['git','log','-1','--pretty=%ct'], cwd=gitpath))
|
||||
bb.debug(1, "git repository: %s" % gitpath)
|
||||
return source_date_epoch
|
||||
if not "git://" in d.getVar('SRC_URI'):
|
||||
return None
|
||||
|
||||
gitpath = find_git_folder(d, sourcedir)
|
||||
if not gitpath:
|
||||
return None
|
||||
|
||||
# Check that the repository has a valid HEAD; it may not if subdir is used
|
||||
# in SRC_URI
|
||||
p = subprocess.run(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=gitpath)
|
||||
if p.returncode != 0:
|
||||
bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8')))
|
||||
return None
|
||||
|
||||
bb.debug(1, "git repository: %s" % gitpath)
|
||||
p = subprocess.run(['git','log','-1','--pretty=%ct'], check=True, stdout=subprocess.PIPE, cwd=gitpath)
|
||||
return int(p.stdout.decode('utf-8'))
|
||||
|
||||
def get_source_date_epoch_from_youngest_file(d, sourcedir):
|
||||
if sourcedir == d.getVar('WORKDIR'):
|
||||
|
||||
Reference in New Issue
Block a user