mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-11 21:27:31 +00:00
{release,version}: add DSM7.2 specific synology builds (#13405)
Add separate builds for DSM7.2 for synology so that we can encode separate versioning information in the INFO file to distinguish between the two. Fixes https://github.com/tailscale/corp/issues/22908 Signed-off-by: Mario Minardi <mario@tailscale.com>
This commit is contained in:
31
release/dist/synology/pkgs.go
vendored
31
release/dist/synology/pkgs.go
vendored
@@ -24,13 +24,14 @@ import (
|
||||
type target struct {
|
||||
filenameArch string
|
||||
dsmMajorVersion int
|
||||
dsmMinorVersion int
|
||||
goenv map[string]string
|
||||
packageCenter bool
|
||||
signer dist.Signer
|
||||
}
|
||||
|
||||
func (t *target) String() string {
|
||||
return fmt.Sprintf("synology/dsm%d/%s", t.dsmMajorVersion, t.filenameArch)
|
||||
return fmt.Sprintf("synology/dsm%s/%s", t.dsmVersionString(), t.filenameArch)
|
||||
}
|
||||
|
||||
func (t *target) Build(b *dist.Build) ([]string, error) {
|
||||
@@ -42,9 +43,31 @@ func (t *target) Build(b *dist.Build) ([]string, error) {
|
||||
return t.buildSPK(b, inner)
|
||||
}
|
||||
|
||||
// dsmVersionInt combines major and minor version info into an int
|
||||
// representation.
|
||||
//
|
||||
// Version 7.2 becomes 72 as an example.
|
||||
func (t *target) dsmVersionInt() int {
|
||||
return t.dsmMajorVersion*10 + t.dsmMinorVersion
|
||||
}
|
||||
|
||||
// dsmVersionString returns a string representation of the version
|
||||
// including minor version information if it exists.
|
||||
//
|
||||
// If dsmMinorVersion is 0 this returns dsmMajorVersion as a string,
|
||||
// otherwise it returns "dsmMajorVersion-dsmMinorVersion".
|
||||
func (t *target) dsmVersionString() string {
|
||||
dsmVersionString := fmt.Sprintf("%d", t.dsmMajorVersion)
|
||||
if t.dsmMinorVersion != 0 {
|
||||
dsmVersionString = fmt.Sprintf("%s-%d", dsmVersionString, t.dsmMinorVersion)
|
||||
}
|
||||
|
||||
return dsmVersionString
|
||||
}
|
||||
|
||||
func (t *target) buildSPK(b *dist.Build, inner *innerPkg) ([]string, error) {
|
||||
synoVersion := b.Version.Synology[t.dsmMajorVersion]
|
||||
filename := fmt.Sprintf("tailscale-%s-%s-%d-dsm%d.spk", t.filenameArch, b.Version.Short, synoVersion, t.dsmMajorVersion)
|
||||
synoVersion := b.Version.Synology[t.dsmVersionInt()]
|
||||
filename := fmt.Sprintf("tailscale-%s-%s-%d-dsm%s.spk", t.filenameArch, b.Version.Short, synoVersion, t.dsmVersionString())
|
||||
out := filepath.Join(b.Out, filename)
|
||||
if t.packageCenter {
|
||||
log.Printf("Building %s (for package center)", filename)
|
||||
@@ -117,7 +140,7 @@ func (t *target) mkInfo(b *dist.Build, uncompressedSz int64) []byte {
|
||||
fmt.Fprintf(&ret, "%s=%q\n", k, v)
|
||||
}
|
||||
f("package", "Tailscale")
|
||||
f("version", fmt.Sprintf("%s-%d", b.Version.Short, b.Version.Synology[t.dsmMajorVersion]))
|
||||
f("version", fmt.Sprintf("%s-%d", b.Version.Short, b.Version.Synology[t.dsmVersionInt()]))
|
||||
f("arch", t.filenameArch)
|
||||
f("description", "Connect all your devices using WireGuard, without the hassle.")
|
||||
f("displayname", "Tailscale")
|
||||
|
27
release/dist/synology/targets.go
vendored
27
release/dist/synology/targets.go
vendored
@@ -28,11 +28,22 @@ var v7Models = []string{
|
||||
|
||||
func Targets(forPackageCenter bool, signer dist.Signer) []dist.Target {
|
||||
var ret []dist.Target
|
||||
for _, dsmVersion := range []int{6, 7} {
|
||||
for _, dsmVersion := range []struct {
|
||||
major int
|
||||
minor int
|
||||
}{
|
||||
// DSM6
|
||||
{major: 6},
|
||||
// DSM7
|
||||
{major: 7},
|
||||
// DSM7.2
|
||||
{major: 7, minor: 2},
|
||||
} {
|
||||
ret = append(ret,
|
||||
&target{
|
||||
filenameArch: "x86_64",
|
||||
dsmMajorVersion: dsmVersion,
|
||||
dsmMajorVersion: dsmVersion.major,
|
||||
dsmMinorVersion: dsmVersion.minor,
|
||||
goenv: map[string]string{
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "amd64",
|
||||
@@ -42,7 +53,8 @@ func Targets(forPackageCenter bool, signer dist.Signer) []dist.Target {
|
||||
},
|
||||
&target{
|
||||
filenameArch: "i686",
|
||||
dsmMajorVersion: dsmVersion,
|
||||
dsmMajorVersion: dsmVersion.major,
|
||||
dsmMinorVersion: dsmVersion.minor,
|
||||
goenv: map[string]string{
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "386",
|
||||
@@ -52,7 +64,8 @@ func Targets(forPackageCenter bool, signer dist.Signer) []dist.Target {
|
||||
},
|
||||
&target{
|
||||
filenameArch: "armv8",
|
||||
dsmMajorVersion: dsmVersion,
|
||||
dsmMajorVersion: dsmVersion.major,
|
||||
dsmMinorVersion: dsmVersion.minor,
|
||||
goenv: map[string]string{
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "arm64",
|
||||
@@ -67,7 +80,8 @@ func Targets(forPackageCenter bool, signer dist.Signer) []dist.Target {
|
||||
for _, v5Arch := range v5Models {
|
||||
ret = append(ret, &target{
|
||||
filenameArch: v5Arch,
|
||||
dsmMajorVersion: dsmVersion,
|
||||
dsmMajorVersion: dsmVersion.major,
|
||||
dsmMinorVersion: dsmVersion.minor,
|
||||
goenv: map[string]string{
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "arm",
|
||||
@@ -80,7 +94,8 @@ func Targets(forPackageCenter bool, signer dist.Signer) []dist.Target {
|
||||
for _, v7Arch := range v7Models {
|
||||
ret = append(ret, &target{
|
||||
filenameArch: v7Arch,
|
||||
dsmMajorVersion: dsmVersion,
|
||||
dsmMajorVersion: dsmVersion.major,
|
||||
dsmMinorVersion: dsmVersion.minor,
|
||||
goenv: map[string]string{
|
||||
"GOOS": "linux",
|
||||
"GOARCH": "arm",
|
||||
|
Reference in New Issue
Block a user