build: Generate "reproducible" version strings on "clean" builds
If the build environment looks "clean" then don't add the build
hostname or build time to the version string. This makes the default
build string reproducible across builds.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
diff --git a/scripts/buildversion.py b/scripts/buildversion.py
index 56bfcfa..c3a83b0 100755
--- a/scripts/buildversion.py
+++ b/scripts/buildversion.py
@@ -92,14 +92,16 @@
cleanbuild, toolstr = tool_versions(options.tools)
ver = git_version()
+ cleanbuild = cleanbuild and ver and 'dirty' not in ver
if not ver:
ver = file_version()
if not ver:
ver = "?"
- btime = time.strftime("%Y%m%d_%H%M%S")
- hostname = socket.gethostname()
- ver = "%s-%s-%s%s" % (ver, btime, hostname, options.extra)
- write_version(outfile, ver, toolstr)
+ if not cleanbuild:
+ btime = time.strftime("%Y%m%d_%H%M%S")
+ hostname = socket.gethostname()
+ ver = "%s-%s-%s" % (ver, btime, hostname)
+ write_version(outfile, ver + options.extra, toolstr)
if __name__ == '__main__':
main()