build: Use SOURCE_DATE_EPOCH for build time stamp when available

Apparently common practice for reproducible builds:

   https://reproducible-builds.org/specs/source-date-epoch/

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3364
This commit is contained in:
Jakob Borg 2016-06-29 18:52:49 +00:00 committed by Audrius Butkevicius
parent 3cbe7d40d1
commit 80fd6c2400
1 changed files with 8 additions and 0 deletions

View File

@ -717,10 +717,18 @@ func getBranchSuffix() string {
}
func buildStamp() int64 {
// If SOURCE_DATE_EPOCH is set, use that.
if s, _ := strconv.ParseInt(os.Getenv("SOURCE_DATE_EPOCH"), 10, 64); s > 0 {
return s
}
// Try to get the timestamp of the latest commit.
bs, err := runError("git", "show", "-s", "--format=%ct")
if err != nil {
// Fall back to "now".
return time.Now().Unix()
}
s, _ := strconv.ParseInt(string(bs), 10, 64)
return s
}