Selaa lähdekoodia

Only build ARMv5 (fixes #1218)

With this change, the build system only builds one ARM variant - ARMv5.
We call the build architecture simply "arm", as this is what
runtime.GOARCH says.
Jakob Borg 10 vuotta sitten
vanhempi
sitoutus
961a87b743

+ 2 - 10
build.go

@@ -73,7 +73,7 @@ func main() {
 	flag.Parse()
 
 	switch goarch {
-	case "386", "amd64", "arm", "armv5", "armv6", "armv7":
+	case "386", "amd64", "arm":
 		break
 	default:
 		log.Printf("Unknown goarch %q; proceed with caution!", goarch)
@@ -285,15 +285,7 @@ func listFiles(dir string) []string {
 
 func setBuildEnv() {
 	os.Setenv("GOOS", goos)
-	if strings.HasPrefix(goarch, "armv") {
-		os.Setenv("GOARCH", "arm")
-		os.Setenv("GOARM", goarch[4:])
-	} else {
-		os.Setenv("GOARCH", goarch)
-	}
-	if goarch == "386" {
-		os.Setenv("GO386", "387")
-	}
+	os.Setenv("GOARCH", goarch)
 	wd, err := os.Getwd()
 	if err != nil {
 		log.Println("Warning: can't determine current dir:", err)

+ 2 - 4
build.sh

@@ -2,7 +2,7 @@
 set -euo pipefail
 IFS=$'\n\t'
 
-DOCKERIMGV=1.4-4
+DOCKERIMGV=1.4-5
 
 case "${1:-default}" in
 	default)
@@ -52,9 +52,7 @@ case "${1:-default}" in
 	all)
 		go run build.go -goos linux -goarch amd64 tar
 		go run build.go -goos linux -goarch 386 tar
-		go run build.go -goos linux -goarch armv5 tar
-		go run build.go -goos linux -goarch armv6 tar
-		go run build.go -goos linux -goarch armv7 tar
+		go run build.go -goos linux -goarch arm tar
 
 		go run build.go -goos freebsd -goarch amd64 tar
 		go run build.go -goos freebsd -goarch 386 tar

+ 4 - 3
docker/Dockerfile

@@ -17,9 +17,12 @@ RUN curl -sSL https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz \
         | tar -v -C /usr/local -xz
 
 ENV PATH /usr/local/go/bin:$PATH
-RUN mkdir /go
 ENV GOPATH /go
+ENV GO386 387
+ENV GOARM 5
 ENV PATH /go/bin:$PATH
+
+RUN mkdir /go
 WORKDIR /go
 
 # Use gonative to install native Go for most arch/OS combos
@@ -45,8 +48,6 @@ RUN bash -xec '\
                 for platform in linux/386 freebsd/386 windows/386 linux/arm openbsd/amd64 openbsd/386; do \
                         GOOS=${platform%/*} \
                         GOARCH=${platform##*/} \
-                        GOARM=5 \
-                        GO386=387 \
                         CGO_ENABLED=0 \
                         ./make.bash --no-clean 2>&1; \
                 done \

+ 0 - 25
internal/upgrade/releasename_darwin.go

@@ -1,25 +0,0 @@
-// Copyright (C) 2014 The Syncthing Authors.
-//
-// This program is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by the Free
-// Software Foundation, either version 3 of the License, or (at your option)
-// any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-// more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package upgrade
-
-import (
-	"fmt"
-	"runtime"
-)
-
-func releaseName(tag string) string {
-	return fmt.Sprintf("syncthing-macosx-%s-%s.", runtime.GOARCH, tag)
-}

+ 0 - 38
internal/upgrade/releasename_linux_arm.go

@@ -1,38 +0,0 @@
-// Copyright (C) 2014 The Syncthing Authors.
-//
-// This program is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by the Free
-// Software Foundation, either version 3 of the License, or (at your option)
-// any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-// more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>.
-
-package upgrade
-
-import (
-	"fmt"
-	"strings"
-	"syscall"
-)
-
-func releaseName(tag string) string {
-	return fmt.Sprintf("syncthing-linux-armv%s-%s.", goARM(), tag)
-}
-
-// Get the current ARM architecture version for upgrade purposes. If we can't
-// figure it out from the uname, default to ARMv6 (same as Go distribution).
-func goARM() string {
-	var name syscall.Utsname
-	syscall.Uname(&name)
-	machine := string(name.Machine[:5])
-	if strings.HasPrefix(machine, "armv") {
-		return machine[4:]
-	}
-	return "6"
-}

+ 0 - 27
internal/upgrade/releasename_other.go

@@ -1,27 +0,0 @@
-// Copyright (C) 2014 The Syncthing Authors.
-//
-// This program is free software: you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by the Free
-// Software Foundation, either version 3 of the License, or (at your option)
-// any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-// more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>.
-
-// +build !arm,!darwin
-
-package upgrade
-
-import (
-	"fmt"
-	"runtime"
-)
-
-func releaseName(tag string) string {
-	return fmt.Sprintf("syncthing-%s-%s-%s.", runtime.GOOS, runtime.GOARCH, tag)
-}

+ 11 - 0
internal/upgrade/upgrade_common.go

@@ -18,6 +18,8 @@ package upgrade
 
 import (
 	"errors"
+	"fmt"
+	"runtime"
 	"strconv"
 	"strings"
 
@@ -225,3 +227,12 @@ func versionParts(v string) ([]int, []interface{}) {
 
 	return release, prerelease
 }
+
+func releaseName(tag string) string {
+	switch runtime.GOOS {
+	case "darwin":
+		return fmt.Sprintf("syncthing-macosx-%s-%s.", runtime.GOARCH, tag)
+	default:
+		return fmt.Sprintf("syncthing-%s-%s-%s.", runtime.GOOS, runtime.GOARCH, tag)
+	}
+}