Browse Source

set version details use ldflags

tnextday 6 years ago
parent
commit
e626d19ba1
2 changed files with 13 additions and 15 deletions
  1. 4 2
      core.go
  2. 9 13
      release/user-package.sh

+ 4 - 2
core.go

@@ -13,10 +13,12 @@ package core
 //go:generate errorgen
 
 import (
+	"runtime"
+
 	"v2ray.com/core/common/serial"
 )
 
-const (
+var (
 	version  = "4.21.3"
 	build    = "Custom"
 	codename = "V2Fly, a community-driven edition of V2Ray."
@@ -32,7 +34,7 @@ func Version() string {
 // VersionStatement returns a list of strings representing the full version info.
 func VersionStatement() []string {
 	return []string{
-		serial.Concat("V2Ray ", Version(), " (", codename, ") ", build),
+		serial.Concat("V2Ray ", Version(), " (", codename, ") ", build, " (", runtime.Version(), " ", runtime.GOOS, "/", runtime.GOARCH, ")"),
 		intro,
 	}
 }

+ 9 - 13
release/user-package.sh

@@ -17,9 +17,11 @@ __root="$(cd "$(dirname "${__dir}")" && pwd)" # <-- change this as it depends on
 
 NOW=$(date '+%Y%m%d-%H%M%S')
 TMP=$(mktemp -d)
+SRCDIR=$(pwd)
 
 CODENAME="user"
 BUILDNAME=$NOW
+VERSIONTAG=$(git describe --tags)
 GOPATH=$(go env GOPATH)
 
 cleanup () { rm -rf $TMP; }
@@ -28,27 +30,21 @@ trap cleanup INT TERM ERR
 get_source() {
 	echo ">>> Getting v2ray sources ..."
 	go get -insecure -v -t v2ray.com/core/...
+	SRCDIR="$GOPATH/src/v2ray.com/core"
 }
 
 build_v2() {
-	pushd $GOPATH/src/v2ray.com/core
-	echo ">>> Update source code name ..."
-	sed -i "s/^[ \t]\+codename.\+$/\tcodename = \"${CODENAME}\"/;s/^[ \t]\+build.\+$/\tbuild = \"${BUILDNAME}\"/;" core.go
+	pushd $SRCDIR
+	LDFLAGS="-X v2ray.com/core.codename=${CODENAME} -X v2ray.com/core.build=${BUILDNAME}  -X v2ray.com/core.version=${VERSIONTAG}"
 
 	echo ">>> Compile v2ray ..."
-	pushd $GOPATH/src/v2ray.com/core/main
-	env CGO_ENABLED=0 go build -o $TMP/v2ray${EXESUFFIX} -ldflags "-s -w"
+	env CGO_ENABLED=0 go build -o $TMP/v2ray${EXESUFFIX} -ldflags "-s -w $LDFLAGS" ./main
 	if [[ $GOOS == "windows" ]];then
-	  env CGO_ENABLED=0 go build -o $TMP/wv2ray${EXESUFFIX} -ldflags "-s -w -H windowsgui"
+	  env CGO_ENABLED=0 go build -o $TMP/wv2ray${EXESUFFIX} -ldflags "-s -w -H windowsgui $LDFLAGS" ./main
 	fi
-	popd
-
-	git checkout -- core.go
-	popd
 
 	echo ">>> Compile v2ctl ..."
-	pushd $GOPATH/src/v2ray.com/core/infra/control/main
-	env CGO_ENABLED=0 go build -o $TMP/v2ctl${EXESUFFIX} -tags confonly -ldflags "-s -w"
+	env CGO_ENABLED=0 go build -o $TMP/v2ctl${EXESUFFIX} -tags confonly -ldflags "-s -w $LDFLAGS" ./infra/control/main
 	popd
 }
 
@@ -66,7 +62,7 @@ build_dat() {
 
 copyconf() {
 	echo ">>> Copying config..."
-	pushd $GOPATH/src/v2ray.com/core/release/config
+	pushd $SRCDIR/release/config
 	tar c --exclude "*.dat" . | tar x -C $TMP
 }