diff --git a/.gitignore b/.gitignore index 49fa58a946..69ad05694c 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ docs/GIT_BRANCH docs/VERSION docs/GITCOMMIT docs/changed-files +autogen/ diff --git a/api/client/commands.go b/api/client/commands.go index ed3b4fca93..1668e6dde3 100644 --- a/api/client/commands.go +++ b/api/client/commands.go @@ -27,7 +27,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/docker/api" "github.com/docker/docker/api/stats" - "github.com/docker/docker/dockerversion" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/graph" "github.com/docker/docker/nat" diff --git a/api/client/hijack.go b/api/client/hijack.go index bb902405c0..4f89c3a76c 100644 --- a/api/client/hijack.go +++ b/api/client/hijack.go @@ -15,7 +15,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/docker/api" - "github.com/docker/docker/dockerversion" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/pkg/promise" "github.com/docker/docker/pkg/stdcopy" "github.com/docker/docker/pkg/term" diff --git a/api/client/utils.go b/api/client/utils.go index 86e221ebf4..103bfdec3a 100644 --- a/api/client/utils.go +++ b/api/client/utils.go @@ -17,7 +17,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/docker/api" - "github.com/docker/docker/dockerversion" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/pkg/signal" "github.com/docker/docker/pkg/stdcopy" diff --git a/builtins/builtins.go b/builtins/builtins.go index 41bb249286..1bd9362c09 100644 --- a/builtins/builtins.go +++ b/builtins/builtins.go @@ -5,8 +5,8 @@ import ( "github.com/docker/docker/api" apiserver "github.com/docker/docker/api/server" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/networkdriver/bridge" - "github.com/docker/docker/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/events" "github.com/docker/docker/pkg/parsers/kernel" diff --git a/daemon/daemon.go b/daemon/daemon.go index e23193e2b8..5213e17093 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -18,6 +18,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/docker/api" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/execdriver" "github.com/docker/docker/daemon/execdriver/execdrivers" "github.com/docker/docker/daemon/execdriver/lxc" @@ -25,7 +26,6 @@ import ( _ "github.com/docker/docker/daemon/graphdriver/vfs" _ "github.com/docker/docker/daemon/networkdriver/bridge" "github.com/docker/docker/daemon/networkdriver/portallocator" - "github.com/docker/docker/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/graph" "github.com/docker/docker/image" diff --git a/daemon/info.go b/daemon/info.go index 8eb4358f4a..f0fc1241b5 100644 --- a/daemon/info.go +++ b/daemon/info.go @@ -5,7 +5,7 @@ import ( "runtime" log "github.com/Sirupsen/logrus" - "github.com/docker/docker/dockerversion" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/pkg/parsers/kernel" "github.com/docker/docker/pkg/parsers/operatingsystem" diff --git a/docker/daemon.go b/docker/daemon.go index 5e0365f787..b130f8b485 100644 --- a/docker/daemon.go +++ b/docker/daemon.go @@ -9,12 +9,12 @@ import ( "path/filepath" log "github.com/Sirupsen/logrus" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/builder" "github.com/docker/docker/builtins" "github.com/docker/docker/daemon" _ "github.com/docker/docker/daemon/execdriver/lxc" _ "github.com/docker/docker/daemon/execdriver/native" - "github.com/docker/docker/dockerversion" "github.com/docker/docker/engine" "github.com/docker/docker/pkg/homedir" flag "github.com/docker/docker/pkg/mflag" diff --git a/docker/docker.go b/docker/docker.go index 80d5e13f10..a9b31564b8 100644 --- a/docker/docker.go +++ b/docker/docker.go @@ -11,7 +11,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/docker/docker/api" "github.com/docker/docker/api/client" - "github.com/docker/docker/dockerversion" + "github.com/docker/docker/autogen/dockerversion" flag "github.com/docker/docker/pkg/mflag" "github.com/docker/docker/pkg/reexec" "github.com/docker/docker/utils" diff --git a/dockerversion/dockerversion.go b/dockerversion/dockerversion.go deleted file mode 100644 index 1898d5c61f..0000000000 --- a/dockerversion/dockerversion.go +++ /dev/null @@ -1,15 +0,0 @@ -package dockerversion - -// FIXME: this should be embedded in the docker/docker.go, -// but we can't because distro policy requires us to -// package a separate dockerinit binary, and that binary needs -// to know its version too. - -var ( - GITCOMMIT string - VERSION string - - IAMSTATIC string // whether or not Docker itself was compiled statically via ./hack/make.sh binary ("true" or not "true") - INITSHA1 string // sha1sum of separate static dockerinit, if Docker itself was compiled dynamically via ./hack/make.sh dynbinary - INITPATH string // custom location to search for a valid dockerinit binary (available for packagers as a last resort escape hatch) -) diff --git a/graph/graph.go b/graph/graph.go index f7b9fc4f10..e05a11f644 100644 --- a/graph/graph.go +++ b/graph/graph.go @@ -13,8 +13,8 @@ import ( "time" log "github.com/Sirupsen/logrus" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/graphdriver" - "github.com/docker/docker/dockerversion" "github.com/docker/docker/image" "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/truncindex" diff --git a/integration/graph_test.go b/integration/graph_test.go index 56e5a90642..3c4ce0457d 100644 --- a/integration/graph_test.go +++ b/integration/graph_test.go @@ -2,8 +2,8 @@ package docker import ( "errors" + "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/graphdriver" - "github.com/docker/docker/dockerversion" "github.com/docker/docker/graph" "github.com/docker/docker/image" "github.com/docker/docker/pkg/archive" diff --git a/project/make.sh b/project/make.sh index 264ed37dd2..a7f04cd90c 100755 --- a/project/make.sh +++ b/project/make.sh @@ -99,14 +99,10 @@ if [ "$DOCKER_EXECDRIVER" = 'lxc' ]; then fi # Use these flags when compiling the tests and final binary -LDFLAGS=' - -X '$DOCKER_PKG'/dockerversion.GITCOMMIT "'$GITCOMMIT'" - -X '$DOCKER_PKG'/dockerversion.VERSION "'$VERSION'" -' -if [ -z "$DEBUG" ]; then - LDFLAGS="-w $LDFLAGS" -fi +IAMSTATIC='true' +source "$(dirname "$BASH_SOURCE")/make/.dockerversion" +LDFLAGS='-w' LDFLAGS_STATIC='-linkmode external' # Cgo -H windows is incompatible with -linkmode external. @@ -128,7 +124,6 @@ TESTFLAGS+=" -test.timeout=${TIMEOUT}" EXTLDFLAGS_STATIC_DOCKER="$EXTLDFLAGS_STATIC -lpthread -Wl,--unresolved-symbols=ignore-in-object-files" LDFLAGS_STATIC_DOCKER=" $LDFLAGS_STATIC - -X $DOCKER_PKG/dockerversion.IAMSTATIC true -extldflags \"$EXTLDFLAGS_STATIC_DOCKER\" " diff --git a/project/make/.dockerinit b/project/make/.dockerinit index 73df8fce01..0f51fce0ac 100644 --- a/project/make/.dockerinit +++ b/project/make/.dockerinit @@ -1,6 +1,9 @@ #!/bin/bash set -e +IAMSTATIC="true" +source "$(dirname "$BASH_SOURCE")/.dockerversion" + # dockerinit still needs to be a static binary, even if docker is dynamic go build \ -o "$DEST/dockerinit-$VERSION" \ diff --git a/project/make/.dockerversion b/project/make/.dockerversion new file mode 100644 index 0000000000..c96ff065bd --- /dev/null +++ b/project/make/.dockerversion @@ -0,0 +1,24 @@ +#!/bin/bash + +rm -rf autogen +mkdir -p autogen/dockerversion +cat > autogen/dockerversion/dockerversion.go < autogen/dockerversion/static.go <