dockerversion placeholder for library-import

- Move autogen/dockerversion to version
- Update autogen and "builds" to use this package and a build flag

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
Vincent Demeester 2015-10-25 19:18:23 +01:00
parent bffcb8226e
commit d5cd032a86
21 changed files with 71 additions and 51 deletions

1
.gitignore vendored
View file

@ -36,3 +36,4 @@ man/man5
man/man8
pyenv
vendor/pkg/
version/version_autogen.go

View file

@ -15,9 +15,9 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/version"
)
type tlsClientCon struct {
@ -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/"+version.VERSION+" ("+runtime.GOOS+")")
req.Header.Set("Content-Type", contentType)
req.Header.Set("Connection", "Upgrade")
req.Header.Set("Upgrade", "tcp")

View file

@ -20,7 +20,6 @@ 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/pkg/jsonmessage"
"github.com/docker/docker/pkg/signal"
@ -28,6 +27,7 @@ import (
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
)
var (
@ -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/"+version.VERSION+" ("+runtime.GOOS+")")
req.URL.Host = cli.addr
req.URL.Scheme = cli.scheme

View file

@ -7,10 +7,10 @@ import (
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
)
var versionTemplate = `Client:
@ -60,11 +60,11 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) {
vd := versionData{
Client: types.Version{
Version: dockerversion.VERSION,
Version: version.VERSION,
APIVersion: api.Version,
GoVersion: runtime.Version(),
GitCommit: dockerversion.GITCOMMIT,
BuildTime: dockerversion.BUILDTIME,
GitCommit: version.GITCOMMIT,
BuildTime: version.BUILDTIME,
Os: runtime.GOOS,
Arch: runtime.GOARCH,
Experimental: utils.ExperimentalBuild(),

View file

@ -11,9 +11,9 @@ 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/errors"
"github.com/docker/docker/pkg/version"
dockerversion "github.com/docker/docker/version"
"golang.org/x/net/context"
)

View file

@ -10,24 +10,24 @@ 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/pkg/ioutils"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/pkg/parsers/kernel"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
"golang.org/x/net/context"
)
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: version.VERSION,
APIVersion: api.Version,
GitCommit: dockerversion.GITCOMMIT,
GitCommit: version.GITCOMMIT,
GoVersion: runtime.Version(),
Os: runtime.GOOS,
Arch: runtime.GOARCH,
BuildTime: dockerversion.BUILDTIME,
BuildTime: version.BUILDTIME,
}
version := httputils.VersionFromContext(ctx)

View file

@ -12,7 +12,6 @@ import (
"syscall"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/daemon/graphdriver"
derr "github.com/docker/docker/errors"
"github.com/docker/docker/pkg/fileutils"
@ -22,6 +21,7 @@ import (
"github.com/docker/docker/pkg/sysinfo"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
"github.com/docker/docker/volume"
"github.com/docker/libnetwork"
nwconfig "github.com/docker/libnetwork/config"
@ -286,7 +286,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", version.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.")

View file

@ -8,9 +8,9 @@ import (
"sync"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/daemon/execdriver"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/version"
)
// This is a daemon development variable only and should not be
@ -24,7 +24,7 @@ var forceKill bool
// Define name and version for windows
var (
DriverName = "Windows 1854"
Version = dockerversion.VERSION + " " + dockerversion.GITCOMMIT
Version = version.VERSION + " " + version.GITCOMMIT
)
type activeContainer struct {

View file

@ -16,7 +16,6 @@ import (
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/daemon/graphdriver"
"github.com/docker/docker/image"
"github.com/docker/docker/pkg/archive"
@ -24,6 +23,7 @@ import (
"github.com/docker/docker/pkg/idtools"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/random"
"github.com/docker/docker/version"
"github.com/microsoft/hcsshim"
)
@ -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: version.VERSION,
Architecture: runtime.GOARCH,
OS: runtime.GOOS,
Size: imageData.Size,

View file

@ -7,7 +7,6 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/parsers/kernel"
"github.com/docker/docker/pkg/parsers/operatingsystem"
@ -15,6 +14,7 @@ import (
"github.com/docker/docker/pkg/system"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
)
// SystemInfo returns information about the host server the daemon is running on.
@ -83,14 +83,14 @@ func (daemon *Daemon) SystemInfo() (*types.Info, error) {
OperatingSystem: operatingSystem,
IndexServerAddress: registry.IndexServer,
RegistryConfig: daemon.RegistryService.Config,
InitSha1: dockerversion.INITSHA1,
InitSha1: version.INITSHA1,
InitPath: initPath,
NCPU: runtime.NumCPU(),
MemTotal: meminfo.MemTotal,
DockerRootDir: daemon.config().Root,
Labels: daemon.config().Labels,
ExperimentalBuild: utils.ExperimentalBuild(),
ServerVersion: dockerversion.VERSION,
ServerVersion: version.VERSION,
ClusterStore: daemon.config().ClusterStore,
}

View file

@ -14,7 +14,6 @@ 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"
@ -28,6 +27,7 @@ import (
"github.com/docker/docker/pkg/tlsconfig"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
)
const daemonUsage = " docker daemon [ --help | ... ]\n"
@ -206,7 +206,7 @@ func (cli *DaemonCli) CmdDaemon(args ...string) error {
serverConfig := &apiserver.Config{
Logging: true,
Version: dockerversion.VERSION,
Version: version.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": version.VERSION,
"commit": version.GITCOMMIT,
"execdriver": d.ExecutionDriver().Name(),
"graphdriver": d.GraphDriver().String(),
}).Info("Docker daemon")

View file

@ -6,12 +6,12 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/client"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/reexec"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/utils"
"github.com/docker/docker/version"
)
func main() {
@ -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", version.VERSION, version.GITCOMMIT)
} else {
fmt.Printf("Docker version %s, build %s\n", dockerversion.VERSION, dockerversion.GITCOMMIT)
fmt.Printf("Docker version %s, build %s\n", version.VERSION, version.GITCOMMIT)
}
}

View file

@ -17,7 +17,6 @@ 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/image"
"github.com/docker/docker/pkg/archive"
@ -27,6 +26,7 @@ import (
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/truncindex"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/version"
"github.com/vbatts/tar-split/tar/asm"
"github.com/vbatts/tar-split/tar/storage"
)
@ -247,7 +247,7 @@ func (graph *Graph) Create(layerData io.Reader, containerID, containerImage, com
ID: stringid.GenerateRandomID(),
Comment: comment,
Created: time.Now().UTC(),
DockerVersion: dockerversion.VERSION,
DockerVersion: version.VERSION,
Author: author,
Config: config,
Architecture: runtime.GOARCH,

View file

@ -9,10 +9,10 @@ import (
"testing"
"time"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/daemon/graphdriver"
"github.com/docker/docker/image"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/version"
)
func TestMount(t *testing.T) {
@ -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 != version.VERSION {
t.Fatalf("Wrong docker_version: should be '%s', not '%s'", version.VERSION, img.DockerVersion)
}
images := graph.Map()
if l := len(images); l != 1 {

View file

@ -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.

View file

@ -2,12 +2,14 @@
rm -rf autogen
mkdir -p autogen/dockerversion
cat > autogen/dockerversion/dockerversion.go <<DVEOF
// AUTOGENERATED FILE; see $BASH_SOURCE
package dockerversion
cat > version/version_autogen.go <<DVEOF
// +build autogen
// Package version is auto-generated at build-time
package version
var (
// Default build-time variable for library-import.
// This file is overridden on build with build-time informations.
const (
GITCOMMIT string = "$GITCOMMIT"
VERSION string = "$VERSION"
BUILDTIME string = "$BUILDTIME"
@ -16,6 +18,7 @@ var (
INITSHA1 string = "$DOCKER_INITSHA1"
INITPATH string = "$DOCKER_INITPATH"
)
// AUTOGENERATED FILE; see $BASH_SOURCE
DVEOF
# Compile the Windows resources into the sources

View file

@ -5,8 +5,8 @@ import (
"net/http"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/integration/checker"
"github.com/docker/docker/version"
"github.com/go-check/check"
)
@ -19,5 +19,5 @@ func (s *DockerSuite) TestGetVersion(c *check.C) {
c.Assert(json.Unmarshal(body, &v), checker.IsNil)
c.Assert(v.Version, checker.Equals, dockerversion.VERSION, check.Commentf("Version mismatch"))
c.Assert(v.Version, checker.Equals, version.VERSION, check.Commentf("Version mismatch"))
}

View file

@ -9,9 +9,9 @@ import (
"path/filepath"
"runtime"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/homedir"
"github.com/docker/docker/pkg/integration/checker"
"github.com/docker/docker/version"
"github.com/go-check/check"
)
@ -54,7 +54,7 @@ func (s *DockerSuite) TestConfigHttpHeader(c *check.C) {
c.Assert(headers["User-Agent"], checker.NotNil, check.Commentf("Missing User-Agent"))
c.Assert(headers["User-Agent"][0], checker.Equals, "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")", check.Commentf("Badly formatted User-Agent,out:%v", out))
c.Assert(headers["User-Agent"][0], checker.Equals, "Docker-Client/"+version.VERSION+" ("+runtime.GOOS+")", check.Commentf("Badly formatted User-Agent,out:%v", out))
c.Assert(headers["Myheader"], checker.NotNil)
c.Assert(headers["Myheader"][0], checker.Equals, "MyValue", check.Commentf("Missing/bad header,out:%v", out))

View file

@ -20,10 +20,10 @@ import (
"github.com/docker/distribution/registry/api/v2"
"github.com/docker/distribution/registry/client"
"github.com/docker/distribution/registry/client/transport"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/parsers/kernel"
"github.com/docker/docker/pkg/tlsconfig"
"github.com/docker/docker/pkg/useragent"
"github.com/docker/docker/version"
)
var (
@ -39,9 +39,9 @@ var dockerUserAgent string
func init() {
httpVersion := make([]useragent.VersionInfo, 0, 6)
httpVersion = append(httpVersion, useragent.VersionInfo{"docker", dockerversion.VERSION})
httpVersion = append(httpVersion, useragent.VersionInfo{"docker", version.VERSION})
httpVersion = append(httpVersion, useragent.VersionInfo{"go", runtime.Version()})
httpVersion = append(httpVersion, useragent.VersionInfo{"git-commit", dockerversion.GITCOMMIT})
httpVersion = append(httpVersion, useragent.VersionInfo{"git-commit", version.GITCOMMIT})
if kernelVersion, err := kernel.GetKernelVersion(); err == nil {
httpVersion = append(httpVersion, useragent.VersionInfo{"kernel", kernelVersion.String()})
}

View file

@ -14,10 +14,10 @@ import (
"strings"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/version"
)
// SelfPath figures out the absolute path of our own binary (if it's still around).
@ -60,7 +60,7 @@ func isValidDockerInitPath(target string, selfPath string) bool { // target and
if target == "" {
return false
}
if dockerversion.IAMSTATIC == "true" {
if version.IAMSTATIC == "true" {
if selfPath == "" {
return false
}
@ -77,7 +77,7 @@ func isValidDockerInitPath(target string, selfPath string) bool { // target and
}
return os.SameFile(targetFileInfo, selfPathFileInfo)
}
return dockerversion.INITSHA1 != "" && dockerInitSha1(target) == dockerversion.INITSHA1
return version.INITSHA1 != "" && dockerInitSha1(target) == version.INITSHA1
}
// DockerInitPath figures out the path of our dockerinit (which may be SelfPath())
@ -89,7 +89,7 @@ func DockerInitPath(localCopy string) string {
}
var possibleInits = []string{
localCopy,
dockerversion.INITPATH,
version.INITPATH,
filepath.Join(filepath.Dir(selfPath), "dockerinit"),
// FHS 3.0 Draft: "/usr/libexec includes internal binaries that are not intended to be executed directly by users or shell scripts. Applications may use a single subdirectory under /usr/libexec."

16
version/version_lib.go Normal file
View file

@ -0,0 +1,16 @@
// +build !autogen
// Package version is auto-generated at build-time
package version
// 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"
)