diff options
author | Jakob Unterwurzacher | 2017-09-06 21:41:22 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2017-09-06 21:41:22 +0200 |
commit | 830cbb7218d61467c011fd5e9d4751e1529677e4 (patch) | |
tree | 72bd7cfc2a3c9ab4ddb0554006f666b0caaa7a8e | |
parent | 512be8f081d2cc2afc778a2dcf5447647de2bbea (diff) |
build.bash: make reproduceable builds easier
* Reduce the build time precision from seconds to days
* Allow to specify an arbitrary build date through an
env variable
-rwxr-xr-x | build.bash | 15 | ||||
-rw-r--r-- | main.go | 12 |
2 files changed, 15 insertions, 12 deletions
@@ -1,4 +1,11 @@ #!/bin/bash +# +# Compile gocryptfs and bake the git version string of itself and the go-fuse +# library into the binary. +# +# If you want to fake a build date to reproduce a specific build, +# you can use: +# BUILDDATE=2017-02-03 ./build.bash set -eu @@ -24,13 +31,15 @@ fi GITVERSIONFUSE=$OUT cd "$MYDIR" -# Build Unix timestamp, something like 1467554204. -BUILDTIME=$(date +%s) +# Build date, something like "2017-09-06" +if [[ -z ${BUILDDATE:-} ]] ; then + BUILDDATE=$(date +%Y-%m-%d) +fi # Make sure we have the go binary go version > /dev/null -LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildTime=$BUILDTIME" +LDFLAGS="-X main.GitVersion=$GITVERSION -X main.GitVersionFuse=$GITVERSIONFUSE -X main.BuildDate=$BUILDDATE" go build "-ldflags=$LDFLAGS" $@ (cd gocryptfs-xray; go build $@) @@ -7,7 +7,6 @@ import ( "runtime" "strconv" "strings" - "time" "github.com/hanwen/go-fuse/fuse" @@ -26,8 +25,8 @@ var GitVersion = "[GitVersion not set - please compile using ./build.bash]" // GitVersionFuse is the go-fuse library version, set by build.bash var GitVersionFuse = "[GitVersionFuse not set - please compile using ./build.bash]" -// BuildTime is the Unix timestamp, set by build.bash -var BuildTime = "0" +// BuildDate is a date string like "2017-09-06", set by build.bash +var BuildDate = "0000-00-00" // raceDetector is set to true by race.go if we are compiled with "go build -race" var raceDetector bool @@ -92,16 +91,11 @@ func changePassword(args *argContainer) { // printVersion prints a version string like this: // gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2 func printVersion() { - humanTime := "0000-00-00" - if i, _ := strconv.ParseInt(BuildTime, 10, 64); i > 0 { - t := time.Unix(i, 0).UTC() - humanTime = fmt.Sprintf("%d-%02d-%02d", t.Year(), t.Month(), t.Day()) - } buildFlags := "" if stupidgcm.BuiltWithoutOpenssl { buildFlags = " without_openssl" } - built := fmt.Sprintf("%s %s", humanTime, runtime.Version()) + built := fmt.Sprintf("%s %s", BuildDate, runtime.Version()) if raceDetector { built += " -race" } |