Remove all workarounds for Go < 1.11

This commit is contained in:
Alexander Neumann 2020-02-26 20:29:36 +01:00
parent 2464f7c4d1
commit 99fd80a585
7 changed files with 23 additions and 79 deletions

View file

@ -65,7 +65,7 @@ var config = Config{
Main: "./cmd/restic", // package name for the main package
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
Tests: []string{"./..."}, // tests to run
MinVersion: GoVersion{Major: 1, Minor: 10, Patch: 0}, // minimum Go version supported
MinVersion: GoVersion{Major: 1, Minor: 11, Patch: 0}, // minimum Go version supported
}
// Config configures the build.

View file

@ -245,7 +245,7 @@ From Source
***********
restic is written in the Go programming language and you need at least
Go version 1.9. Building restic may also work with older versions of Go,
Go version 1.11. Building restic may also work with older versions of Go,
but that's not supported. See the `Getting
started <https://golang.org/doc/install>`__ guide of the Go project for
instructions how to install Go.
@ -261,13 +261,6 @@ In order to build restic from source, execute the following steps:
$ go run -mod=vendor build.go
For Go versions < 1.11, the option ``-mod=vendor`` needs to be removed, like
this:
.. code-block:: console
$ go run build.go
You can easily cross-compile restic for all supported platforms, just
supply the target OS and platform via the command-line options like this
(for Windows and FreeBSD respectively):
@ -280,8 +273,6 @@ supply the target OS and platform via the command-line options like this
$ go run -mod=vendor build.go --goos linux --goarch arm --goarm 6
Again, for Go < 1.11 ``-mod=vendor`` needs to be removed.
The resulting binary is statically linked and does not require any
libraries.

View file

@ -5,6 +5,7 @@ import (
"os"
"os/exec"
"sync"
"time"
"github.com/restic/restic/internal/debug"
)
@ -58,6 +59,26 @@ func (s *StdioConn) RemoteAddr() net.Addr {
return Addr{}
}
// SetDeadline sets the read/write deadline.
func (s *StdioConn) SetDeadline(t time.Time) error {
err1 := s.stdin.SetReadDeadline(t)
err2 := s.stdout.SetWriteDeadline(t)
if err1 != nil {
return err1
}
return err2
}
// SetReadDeadline sets the read/write deadline.
func (s *StdioConn) SetReadDeadline(t time.Time) error {
return s.stdin.SetReadDeadline(t)
}
// SetWriteDeadline sets the read/write deadline.
func (s *StdioConn) SetWriteDeadline(t time.Time) error {
return s.stdout.SetWriteDeadline(t)
}
// make sure StdioConn implements net.Conn
var _ net.Conn = &StdioConn{}

View file

@ -1,25 +0,0 @@
// +build go1.10
package rclone
import "time"
// SetDeadline sets the read/write deadline.
func (s *StdioConn) SetDeadline(t time.Time) error {
err1 := s.stdin.SetReadDeadline(t)
err2 := s.stdout.SetWriteDeadline(t)
if err1 != nil {
return err1
}
return err2
}
// SetReadDeadline sets the read/write deadline.
func (s *StdioConn) SetReadDeadline(t time.Time) error {
return s.stdin.SetReadDeadline(t)
}
// SetWriteDeadline sets the read/write deadline.
func (s *StdioConn) SetWriteDeadline(t time.Time) error {
return s.stdout.SetWriteDeadline(t)
}

View file

@ -1,22 +0,0 @@
// +build !go1.10
package rclone
import "time"
// On Go < 1.10, it's not possible to set read/write deadlines on files, so we just ignore that.
// SetDeadline sets the read/write deadline.
func (s *StdioConn) SetDeadline(t time.Time) error {
return nil
}
// SetReadDeadline sets the read/write deadline.
func (s *StdioConn) SetReadDeadline(t time.Time) error {
return nil
}
// SetWriteDeadline sets the read/write deadline.
func (s *StdioConn) SetWriteDeadline(t time.Time) error {
return nil
}

View file

@ -1,5 +1,3 @@
// +build go1.9
package test
import "testing"

View file

@ -1,19 +0,0 @@
// +build !go1.9
package test
import "testing"
// Helperer marks the current function as a test helper.
type Helperer interface {
Helper()
}
type fakeHelper struct{}
func (fakeHelper) Helper() {}
// Helper returns a function that marks the current function as a helper function.
func Helper(t testing.TB) Helperer {
return fakeHelper{}
}