From 48001c30bb15f575152f078dc9906788ce2e23f7 Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Mon, 9 Nov 2015 19:32:46 +0100 Subject: [PATCH] dockerversion placeholder for library import - Add a *version* file placeholder. - Update autogen and builds to use it and an autogen build flag Signed-off-by: Vincent Demeester Upstream-commit: 8054a303870b81eebe05e38261c1b68197b68558 Component: engine --- components/engine/.gitignore | 1 + components/engine/api/client/hijack.go | 4 ++-- components/engine/api/client/utils.go | 4 ++-- components/engine/api/client/version.go | 8 +++---- components/engine/api/server/middleware.go | 4 ++-- .../engine/api/server/router/local/info.go | 8 +++---- components/engine/daemon/daemon_unix.go | 4 ++-- .../daemon/execdriver/windows/windows.go | 4 ++-- .../daemon/graphdriver/windows/windows.go | 4 ++-- components/engine/daemon/info.go | 6 ++--- .../daemon/logger/awslogs/cloudwatchlogs.go | 4 ++-- .../logger/awslogs/cloudwatchlogs_test.go | 4 ++-- components/engine/docker/daemon.go | 8 +++---- components/engine/docker/docker.go | 6 ++--- .../engine/dockerversion/version_lib.go | 16 +++++++++++++ components/engine/graph/graph.go | 4 ++-- components/engine/graph/graph_test.go | 6 ++--- components/engine/hack/make.sh | 2 +- components/engine/hack/make/.go-autogen | 23 +++++++++++-------- .../docker_api_version_test.go | 4 ++-- .../integration-cli/docker_cli_config_test.go | 4 ++-- components/engine/registry/registry.go | 6 ++--- components/engine/utils/utils.go | 8 +++---- 23 files changed, 81 insertions(+), 61 deletions(-) create mode 100644 components/engine/dockerversion/version_lib.go diff --git a/components/engine/.gitignore b/components/engine/.gitignore index 017d50aef3..fd91afdf76 100644 --- a/components/engine/.gitignore +++ b/components/engine/.gitignore @@ -22,6 +22,7 @@ bin build_src bundles/ docker/docker +dockerversion/version_autogen.go docs/AWS_S3_BUCKET docs/GITCOMMIT docs/GIT_BRANCH diff --git a/components/engine/api/client/hijack.go b/components/engine/api/client/hijack.go index 5b8a23c7ac..bf152c6a9e 100644 --- a/components/engine/api/client/hijack.go +++ b/components/engine/api/client/hijack.go @@ -15,7 +15,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/api" - "github.com/docker/docker/autogen/dockerversion" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/pkg/stdcopy" "github.com/docker/docker/pkg/term" ) @@ -152,7 +152,7 @@ func (cli *DockerCli) hijackWithContentType(method, path, contentType string, se req.Header.Set(k, v) } - req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")") + req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.Version+" ("+runtime.GOOS+")") req.Header.Set("Content-Type", contentType) req.Header.Set("Connection", "Upgrade") req.Header.Set("Upgrade", "tcp") diff --git a/components/engine/api/client/utils.go b/components/engine/api/client/utils.go index 9eeb0eb045..7a8a785844 100644 --- a/components/engine/api/client/utils.go +++ b/components/engine/api/client/utils.go @@ -20,8 +20,8 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/api" "github.com/docker/docker/api/types" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/cliconfig" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/pkg/jsonmessage" "github.com/docker/docker/pkg/signal" "github.com/docker/docker/pkg/stdcopy" @@ -77,7 +77,7 @@ func (cli *DockerCli) clientRequest(method, path string, in io.Reader, headers m req.Header.Set(k, v) } - req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")") + req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.Version+" ("+runtime.GOOS+")") req.URL.Host = cli.addr req.URL.Scheme = cli.scheme diff --git a/components/engine/api/client/version.go b/components/engine/api/client/version.go index 43cde71ec4..e14e0cab87 100644 --- a/components/engine/api/client/version.go +++ b/components/engine/api/client/version.go @@ -7,8 +7,8 @@ import ( "github.com/docker/docker/api" "github.com/docker/docker/api/types" - "github.com/docker/docker/autogen/dockerversion" Cli "github.com/docker/docker/cli" + "github.com/docker/docker/dockerversion" flag "github.com/docker/docker/pkg/mflag" "github.com/docker/docker/utils" ) @@ -60,11 +60,11 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) { vd := versionData{ Client: types.Version{ - Version: dockerversion.VERSION, + Version: dockerversion.Version, APIVersion: api.Version, GoVersion: runtime.Version(), - GitCommit: dockerversion.GITCOMMIT, - BuildTime: dockerversion.BUILDTIME, + GitCommit: dockerversion.GitCommit, + BuildTime: dockerversion.BuildTime, Os: runtime.GOOS, Arch: runtime.GOARCH, Experimental: utils.ExperimentalBuild(), diff --git a/components/engine/api/server/middleware.go b/components/engine/api/server/middleware.go index 7581adee58..628d0a3bef 100644 --- a/components/engine/api/server/middleware.go +++ b/components/engine/api/server/middleware.go @@ -11,7 +11,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/api" "github.com/docker/docker/api/server/httputils" - "github.com/docker/docker/autogen/dockerversion" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/errors" "github.com/docker/docker/pkg/version" "golang.org/x/net/context" @@ -111,7 +111,7 @@ func versionMiddleware(handler httputils.APIFunc) httputils.APIFunc { return errors.ErrorCodeOldClientVersion.WithArgs(apiVersion, api.Version) } - w.Header().Set("Server", "Docker/"+dockerversion.VERSION+" ("+runtime.GOOS+")") + w.Header().Set("Server", "Docker/"+dockerversion.Version+" ("+runtime.GOOS+")") ctx = context.WithValue(ctx, httputils.APIVersionKey, apiVersion) return handler(ctx, w, r, vars) } diff --git a/components/engine/api/server/router/local/info.go b/components/engine/api/server/router/local/info.go index e1349c504f..06228a5009 100644 --- a/components/engine/api/server/router/local/info.go +++ b/components/engine/api/server/router/local/info.go @@ -10,7 +10,7 @@ import ( "github.com/docker/docker/api" "github.com/docker/docker/api/server/httputils" "github.com/docker/docker/api/types" - "github.com/docker/docker/autogen/dockerversion" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/pkg/ioutils" "github.com/docker/docker/pkg/jsonmessage" "github.com/docker/docker/pkg/parsers/filters" @@ -21,13 +21,13 @@ import ( func (s *router) getVersion(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { v := &types.Version{ - Version: dockerversion.VERSION, + Version: dockerversion.Version, APIVersion: api.Version, - GitCommit: dockerversion.GITCOMMIT, + GitCommit: dockerversion.GitCommit, GoVersion: runtime.Version(), Os: runtime.GOOS, Arch: runtime.GOARCH, - BuildTime: dockerversion.BUILDTIME, + BuildTime: dockerversion.BuildTime, } version := httputils.VersionFromContext(ctx) diff --git a/components/engine/daemon/daemon_unix.go b/components/engine/daemon/daemon_unix.go index cb63cc97e3..259ec9bca7 100644 --- a/components/engine/daemon/daemon_unix.go +++ b/components/engine/daemon/daemon_unix.go @@ -12,8 +12,8 @@ import ( "syscall" "github.com/Sirupsen/logrus" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/graphdriver" + "github.com/docker/docker/dockerversion" derr "github.com/docker/docker/errors" "github.com/docker/docker/pkg/fileutils" "github.com/docker/docker/pkg/idtools" @@ -283,7 +283,7 @@ func migrateIfDownlevel(driver graphdriver.Driver, root string) error { } func configureSysInit(config *Config, rootUID, rootGID int) (string, error) { - localCopy := filepath.Join(config.Root, "init", fmt.Sprintf("dockerinit-%s", dockerversion.VERSION)) + localCopy := filepath.Join(config.Root, "init", fmt.Sprintf("dockerinit-%s", dockerversion.Version)) sysInitPath := utils.DockerInitPath(localCopy) if sysInitPath == "" { return "", fmt.Errorf("Could not locate dockerinit: This usually means docker was built incorrectly. See https://docs.docker.com/project/set-up-dev-env/ for official build instructions.") diff --git a/components/engine/daemon/execdriver/windows/windows.go b/components/engine/daemon/execdriver/windows/windows.go index a1f4f48ae3..181a29b218 100644 --- a/components/engine/daemon/execdriver/windows/windows.go +++ b/components/engine/daemon/execdriver/windows/windows.go @@ -8,8 +8,8 @@ import ( "sync" "github.com/Sirupsen/logrus" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/execdriver" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/pkg/parsers" ) @@ -24,7 +24,7 @@ var forceKill bool // Define name and version for windows var ( DriverName = "Windows 1854" - Version = dockerversion.VERSION + " " + dockerversion.GITCOMMIT + Version = dockerversion.Version + " " + dockerversion.GitCommit ) type activeContainer struct { diff --git a/components/engine/daemon/graphdriver/windows/windows.go b/components/engine/daemon/graphdriver/windows/windows.go index dbd3defd5c..de5e48ff60 100644 --- a/components/engine/daemon/graphdriver/windows/windows.go +++ b/components/engine/daemon/graphdriver/windows/windows.go @@ -16,8 +16,8 @@ import ( "time" "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/chrootarchive" @@ -440,7 +440,7 @@ func (d *Driver) RestoreCustomImages(tagger graphdriver.Tagger, recorder graphdr img := &image.Image{ ID: id, Created: imageData.CreatedTime, - DockerVersion: dockerversion.VERSION, + DockerVersion: dockerversion.Version, Architecture: runtime.GOARCH, OS: runtime.GOOS, Size: imageData.Size, diff --git a/components/engine/daemon/info.go b/components/engine/daemon/info.go index f977f69700..2ef7b668b7 100644 --- a/components/engine/daemon/info.go +++ b/components/engine/daemon/info.go @@ -7,7 +7,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/api/types" - "github.com/docker/docker/autogen/dockerversion" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/pkg/fileutils" "github.com/docker/docker/pkg/parsers/kernel" "github.com/docker/docker/pkg/parsers/operatingsystem" @@ -83,14 +83,14 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) { OperatingSystem: operatingSystem, IndexServerAddress: registry.IndexServer, RegistryConfig: daemon.RegistryService.Config, - InitSha1: dockerversion.INITSHA1, + InitSha1: dockerversion.InitSHA1, InitPath: initPath, NCPU: runtime.NumCPU(), MemTotal: meminfo.MemTotal, DockerRootDir: daemon.config().Root, Labels: daemon.config().Labels, ExperimentalBuild: utils.ExperimentalBuild(), - ServerVersion: dockerversion.VERSION, + ServerVersion: dockerversion.Version, ClusterStore: daemon.config().ClusterStore, ClusterAdvertise: daemon.config().ClusterAdvertise, } diff --git a/components/engine/daemon/logger/awslogs/cloudwatchlogs.go b/components/engine/daemon/logger/awslogs/cloudwatchlogs.go index e566b201fd..698a95d5ec 100644 --- a/components/engine/daemon/logger/awslogs/cloudwatchlogs.go +++ b/components/engine/daemon/logger/awslogs/cloudwatchlogs.go @@ -18,8 +18,8 @@ import ( "github.com/aws/aws-sdk-go/aws/ec2metadata" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/logger" + "github.com/docker/docker/dockerversion" ) const ( @@ -150,7 +150,7 @@ func newAWSLogsClient(ctx logger.Context) (api, error) { currentAgent := r.HTTPRequest.Header.Get(userAgentHeader) r.HTTPRequest.Header.Set(userAgentHeader, fmt.Sprintf("Docker %s (%s) %s", - dockerversion.VERSION, runtime.GOOS, currentAgent)) + dockerversion.Version, runtime.GOOS, currentAgent)) }, }) return client, nil diff --git a/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go b/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go index 866987cbc8..0c53407f83 100644 --- a/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go +++ b/components/engine/daemon/logger/awslogs/cloudwatchlogs_test.go @@ -13,8 +13,8 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/daemon/logger" + "github.com/docker/docker/dockerversion" ) const ( @@ -48,7 +48,7 @@ func TestNewAWSLogsClientUserAgentHandler(t *testing.T) { } buildHandlerList.Run(request) expectedUserAgentString := fmt.Sprintf("Docker %s (%s) %s/%s", - dockerversion.VERSION, runtime.GOOS, aws.SDKName, aws.SDKVersion) + dockerversion.Version, runtime.GOOS, aws.SDKName, aws.SDKVersion) userAgent := request.HTTPRequest.Header.Get("User-Agent") if userAgent != expectedUserAgentString { t.Errorf("Wrong User-Agent string, expected \"%s\" but was \"%s\"", diff --git a/components/engine/docker/daemon.go b/components/engine/docker/daemon.go index fb68e70544..9997fb6d18 100644 --- a/components/engine/docker/daemon.go +++ b/components/engine/docker/daemon.go @@ -14,11 +14,11 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/distribution/uuid" apiserver "github.com/docker/docker/api/server" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/cli" "github.com/docker/docker/cliconfig" "github.com/docker/docker/daemon" "github.com/docker/docker/daemon/logger" + "github.com/docker/docker/dockerversion" "github.com/docker/docker/opts" flag "github.com/docker/docker/pkg/mflag" "github.com/docker/docker/pkg/pidfile" @@ -206,7 +206,7 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error { serverConfig := &apiserver.Config{ Logging: true, - Version: dockerversion.VERSION, + Version: dockerversion.Version, } serverConfig = setPlatformServerConfig(serverConfig, cli.Config) @@ -279,8 +279,8 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error { logrus.Info("Daemon has completed initialization") logrus.WithFields(logrus.Fields{ - "version": dockerversion.VERSION, - "commit": dockerversion.GITCOMMIT, + "version": dockerversion.Version, + "commit": dockerversion.GitCommit, "execdriver": d.ExecutionDriver().Name(), "graphdriver": d.GraphDriver().String(), }).Info("Docker daemon") diff --git a/components/engine/docker/docker.go b/components/engine/docker/docker.go index 4795b8046d..be1f51e5f8 100644 --- a/components/engine/docker/docker.go +++ b/components/engine/docker/docker.go @@ -6,8 +6,8 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/docker/api/client" - "github.com/docker/docker/autogen/dockerversion" "github.com/docker/docker/cli" + "github.com/docker/docker/dockerversion" flag "github.com/docker/docker/pkg/mflag" "github.com/docker/docker/pkg/reexec" "github.com/docker/docker/pkg/term" @@ -77,8 +77,8 @@ func main() { func showVersion() { if utils.ExperimentalBuild() { - fmt.Printf("Docker version %s, build %s, experimental\n", dockerversion.VERSION, dockerversion.GITCOMMIT) + fmt.Printf("Docker version %s, build %s, experimental\n", dockerversion.Version, dockerversion.GitCommit) } else { - fmt.Printf("Docker version %s, build %s\n", dockerversion.VERSION, dockerversion.GITCOMMIT) + fmt.Printf("Docker version %s, build %s\n", dockerversion.Version, dockerversion.GitCommit) } } diff --git a/components/engine/dockerversion/version_lib.go b/components/engine/dockerversion/version_lib.go new file mode 100644 index 0000000000..1d5862d310 --- /dev/null +++ b/components/engine/dockerversion/version_lib.go @@ -0,0 +1,16 @@ +// +build !autogen + +// Package dockerversion is auto-generated at build-time +package dockerversion + +// Default build-time variable for library-import. +// This file is overridden on build with build-time informations. +const ( + GitCommit string = "library-import" + Version string = "library-import" + BuildTime string = "library-import" + + IAmStatic string = "library-import" + InitSHA1 string = "library-import" + InitPath string = "library-import" +) diff --git a/components/engine/graph/graph.go b/components/engine/graph/graph.go index 56b44a79f0..285d3219a5 100644 --- a/components/engine/graph/graph.go +++ b/components/engine/graph/graph.go @@ -17,8 +17,8 @@ import ( "github.com/Sirupsen/logrus" "github.com/docker/distribution/digest" - "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/idtools" @@ -251,7 +251,7 @@ func (graph *Graph) Create(layerData io.Reader, containerID, containerImage, com ID: stringid.GenerateRandomID(), Comment: comment, Created: time.Now().UTC(), - DockerVersion: dockerversion.VERSION, + DockerVersion: dockerversion.Version, Author: author, Config: config, Architecture: runtime.GOARCH, diff --git a/components/engine/graph/graph_test.go b/components/engine/graph/graph_test.go index 79c2d099a0..3e0ba3c6c7 100644 --- a/components/engine/graph/graph_test.go +++ b/components/engine/graph/graph_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" - "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/stringid" ) @@ -106,8 +106,8 @@ func TestGraphCreate(t *testing.T) { if img.Comment != "Testing" { t.Fatalf("Wrong comment: should be '%s', not '%s'", "Testing", img.Comment) } - if img.DockerVersion != dockerversion.VERSION { - t.Fatalf("Wrong docker_version: should be '%s', not '%s'", dockerversion.VERSION, img.DockerVersion) + if img.DockerVersion != dockerversion.Version { + t.Fatalf("Wrong docker_version: should be '%s', not '%s'", dockerversion.Version, img.DockerVersion) } images := graph.Map() if l := len(images); l != 1 { diff --git a/components/engine/hack/make.sh b/components/engine/hack/make.sh index c7318953b4..854121d17f 100755 --- a/components/engine/hack/make.sh +++ b/components/engine/hack/make.sh @@ -146,7 +146,7 @@ fi EXTLDFLAGS_STATIC='-static' # ORIG_BUILDFLAGS is necessary for the cross target which cannot always build # with options like -race. -ORIG_BUILDFLAGS=( -a -tags "netgo static_build sqlite_omit_load_extension $DOCKER_BUILDTAGS" -installsuffix netgo ) +ORIG_BUILDFLAGS=( -a -tags "autogen netgo static_build sqlite_omit_load_extension $DOCKER_BUILDTAGS" -installsuffix netgo ) # see https://github.com/golang/go/issues/9369#issuecomment-69864440 for why -installsuffix is necessary here BUILDFLAGS=( $BUILDFLAGS "${ORIG_BUILDFLAGS[@]}" ) # Test timeout. diff --git a/components/engine/hack/make/.go-autogen b/components/engine/hack/make/.go-autogen index 52e2f571d8..8fdd241c9f 100644 --- a/components/engine/hack/make/.go-autogen +++ b/components/engine/hack/make/.go-autogen @@ -2,20 +2,23 @@ rm -rf autogen -mkdir -p autogen/dockerversion -cat > autogen/dockerversion/dockerversion.go < dockerversion/version_autogen.go <