Replace build date with Git hash and commit date

The usage of a build date prevents reproducible builds.
This commit is contained in:
Sebastian Huber
2019-01-04 11:02:45 +01:00
parent c1d296ae96
commit 3202e319a1
3 changed files with 39 additions and 47 deletions

39
wscript
View File

@@ -9,8 +9,6 @@ path.append(abspath('common'))
import waflib
import waf as docs_waf
version = '5.0.0 (master)'
build_all = ['user',
'rsb',
'c-user',
@@ -31,7 +29,6 @@ def options(opt):
docs_waf.cmd_options(opt)
def configure(conf):
conf.env.VERSION = version
for b in building:
conf.recurse(b)
conf.env['BUILD_FROM_TOP'] = 'yes'
@@ -53,7 +50,43 @@ def coverpage_js(ctx):
with open(ctx.outputs[0].abspath(), 'w') as o:
o.write(js.replace('@CATALOGUE', xml))
def pretty_day(day):
if day == 3:
s = 'rd'
elif day == 11:
s = 'th'
elif day == 12:
s = 'th'
elif day == 13:
s = 'th'
elif day % 10 == 1:
s = 'st'
elif day % 10 == 2:
s = 'nd'
else:
s = 'th'
return str(day) + s
def build(ctx):
#
# Get date and version from Git
#
version = '5.0.0'
if ctx.exec_command(['git', 'diff-index', '--quiet', 'HEAD']) == 0:
modified = ''
else:
modified = '-modified'
try:
out = ctx.cmd_and_log(['git', 'log', '-1', '--format=%H,%cd', '--date=format:%e,%B,%Y'])
f = out.strip('\n').split(',')
version = version + '.' + f[0] + modified
date = pretty_day(int(f[1])) + ' ' + f[2] + ' ' + f[3]
except waflib.Build.Errors.WafError:
date = 'unknown date'
ctx.env.DATE = date
ctx.env.RELEASE = version + ' (' + date + ')'
ctx.env.VERSION = version
#
# Generate any PlantUML images if enabled.
#