mirror of
https://github.com/opencontainers/runc.git
synced 2025-09-27 03:46:19 +08:00
Merge pull request #4718 from kolyshkin/embed-version
Embed version from VERSION
This commit is contained in:
8
Makefile
8
Makefile
@@ -17,8 +17,8 @@ BUILDTAGS += $(EXTRA_BUILDTAGS)
|
|||||||
|
|
||||||
COMMIT := $(shell git describe --dirty --long --always)
|
COMMIT := $(shell git describe --dirty --long --always)
|
||||||
EXTRA_VERSION :=
|
EXTRA_VERSION :=
|
||||||
VERSION := $(shell cat ./VERSION)$(EXTRA_VERSION)
|
LDFLAGS_COMMON := -X main.gitCommit=$(COMMIT) \
|
||||||
LDFLAGS_COMMON := -X main.gitCommit=$(COMMIT) -X main.version=$(VERSION)
|
$(if $(strip $(EXTRA_VERSION)),-X main.extraVersion=$(EXTRA_VERSION),)
|
||||||
|
|
||||||
GOARCH := $(shell $(GO) env GOARCH)
|
GOARCH := $(shell $(GO) env GOARCH)
|
||||||
|
|
||||||
@@ -118,11 +118,11 @@ release: runcimage
|
|||||||
--rm -v $(CURDIR):/go/src/$(PROJECT) \
|
--rm -v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
-e RELEASE_ARGS=$(RELEASE_ARGS) \
|
-e RELEASE_ARGS=$(RELEASE_ARGS) \
|
||||||
$(RUNC_IMAGE) make localrelease
|
$(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
|
.PHONY: localrelease
|
||||||
localrelease: verify-changelog
|
localrelease: verify-changelog
|
||||||
script/release_build.sh -r release/$(VERSION) -v $(VERSION) $(RELEASE_ARGS)
|
script/release_build.sh $(RELEASE_ARGS)
|
||||||
|
|
||||||
.PHONY: dbuild
|
.PHONY: dbuild
|
||||||
dbuild: runcimage
|
dbuild: runcimage
|
||||||
|
46
main.go
46
main.go
@@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
_ "embed"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
@@ -19,14 +20,36 @@ import (
|
|||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
// version must be set from the contents of VERSION file by go build's
|
// version is set from the contents of VERSION file.
|
||||||
// -X main.version= option in the Makefile.
|
//
|
||||||
var version = "unknown"
|
//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
|
// 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 = ""
|
var gitCommit = ""
|
||||||
|
|
||||||
|
func printVersion(c *cli.Context) {
|
||||||
|
w := c.App.Writer
|
||||||
|
|
||||||
|
fmt.Fprintln(w, "runc version", c.App.Version)
|
||||||
|
if gitCommit != "" {
|
||||||
|
fmt.Fprintln(w, "commit:", gitCommit)
|
||||||
|
}
|
||||||
|
fmt.Fprintln(w, "spec:", specs.Version)
|
||||||
|
fmt.Fprintln(w, "go:", runtime.Version())
|
||||||
|
|
||||||
|
major, minor, micro := seccomp.Version()
|
||||||
|
if major+minor+micro > 0 {
|
||||||
|
fmt.Fprintf(w, "libseccomp: %d.%d.%d\n", major, minor, micro)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
specConfig = "config.json"
|
specConfig = "config.json"
|
||||||
usage = `Open Container Initiative runtime
|
usage = `Open Container Initiative runtime
|
||||||
@@ -57,21 +80,10 @@ value for "bundle" is the current directory.`
|
|||||||
func main() {
|
func main() {
|
||||||
app := cli.NewApp()
|
app := cli.NewApp()
|
||||||
app.Name = "runc"
|
app.Name = "runc"
|
||||||
|
app.Version = strings.TrimSpace(version) + extraVersion
|
||||||
app.Usage = usage
|
app.Usage = usage
|
||||||
|
|
||||||
v := []string{version}
|
cli.VersionPrinter = printVersion
|
||||||
|
|
||||||
if gitCommit != "" {
|
|
||||||
v = append(v, "commit: "+gitCommit)
|
|
||||||
}
|
|
||||||
v = append(v, "spec: "+specs.Version)
|
|
||||||
v = append(v, "go: "+runtime.Version())
|
|
||||||
|
|
||||||
major, minor, micro := seccomp.Version()
|
|
||||||
if major+minor+micro > 0 {
|
|
||||||
v = append(v, fmt.Sprintf("libseccomp: %d.%d.%d", major, minor, micro))
|
|
||||||
}
|
|
||||||
app.Version = strings.Join(v, "\n")
|
|
||||||
|
|
||||||
root := "/run/runc"
|
root := "/run/runc"
|
||||||
xdgDirUsed := false
|
xdgDirUsed := false
|
||||||
|
Reference in New Issue
Block a user