diff --git a/Makefile b/Makefile index bda0c3a00..8369d9ac7 100644 --- a/Makefile +++ b/Makefile @@ -17,8 +17,8 @@ BUILDTAGS += $(EXTRA_BUILDTAGS) COMMIT := $(shell git describe --dirty --long --always) EXTRA_VERSION := -VERSION := $(shell cat ./VERSION)$(EXTRA_VERSION) -LDFLAGS_COMMON := -X main.gitCommit=$(COMMIT) -X main.version=$(VERSION) +LDFLAGS_COMMON := -X main.gitCommit=$(COMMIT) \ + $(if $(strip $(EXTRA_VERSION)),-X main.extraVersion=$(EXTRA_VERSION),) GOARCH := $(shell $(GO) env GOARCH) @@ -118,11 +118,11 @@ release: runcimage --rm -v $(CURDIR):/go/src/$(PROJECT) \ -e RELEASE_ARGS=$(RELEASE_ARGS) \ $(RUNC_IMAGE) make localrelease - script/release_sign.sh -S $(GPG_KEYID) -r release/$(VERSION) -v $(VERSION) + script/release_sign.sh -S $(GPG_KEYID) .PHONY: localrelease localrelease: verify-changelog - script/release_build.sh -r release/$(VERSION) -v $(VERSION) $(RELEASE_ARGS) + script/release_build.sh $(RELEASE_ARGS) .PHONY: dbuild dbuild: runcimage diff --git a/main.go b/main.go index 5ccf8257d..eb64ee9b3 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + _ "embed" "errors" "fmt" "io" @@ -19,12 +20,18 @@ import ( "github.com/urfave/cli" ) -// version must be set from the contents of VERSION file by go build's -// -X main.version= option in the Makefile. -var version = "unknown" +// version is set from the contents of VERSION file. +// +//go:embed VERSION +var version string + +// extraVersion is an optional suffix appended to runc version. +// It can be set via Makefile ("make EXTRA_VERSION=xxx") or by +// adding -X main.extraVersion=xxx option to the go build command. +var extraVersion = "" // gitCommit will be the hash that the binary was built from -// and will be populated by the Makefile +// and will be populated by the Makefile. var gitCommit = "" func printVersion(c *cli.Context) { @@ -73,7 +80,7 @@ value for "bundle" is the current directory.` func main() { app := cli.NewApp() app.Name = "runc" - app.Version = version + app.Version = strings.TrimSpace(version) + extraVersion app.Usage = usage cli.VersionPrinter = printVersion