From 80fd6c2400868a24ffd104babd2ddf35c3ff9f0e Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Wed, 29 Jun 2016 18:52:49 +0000 Subject: [PATCH] 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 --- build.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build.go b/build.go index 6e7a9017a..6a633800c 100644 --- a/build.go +++ b/build.go @@ -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 }