diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ebf1e48cd..d17f9fd8a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - job_name: ['linux', 'mac_amd64', 'mac_arm64', 'windows_amd64', 'windows_386', 'other_os', 'go1.13', 'go1.14', 'go1.15'] + job_name: ['linux', 'mac_amd64', 'mac_arm64', 'windows_amd64', 'windows_386', 'other_os', 'go1.14', 'go1.15', 'go1.16'] include: - job_name: linux @@ -83,11 +83,6 @@ jobs: compile_all: true deploy: true - - job_name: go1.13 - os: ubuntu-latest - go: '1.13.x' - quicktest: true - - job_name: go1.14 os: ubuntu-latest go: '1.14.x' diff --git a/backend/azureblob/azureblob.go b/backend/azureblob/azureblob.go index f109aaa0e..e7224cfbb 100644 --- a/backend/azureblob/azureblob.go +++ b/backend/azureblob/azureblob.go @@ -1,6 +1,6 @@ // Package azureblob provides an interface to the Microsoft Azure blob object storage system -// +build !plan9,!solaris,!js,go1.14 +// +build !plan9,!solaris,!js package azureblob diff --git a/backend/azureblob/azureblob_internal_test.go b/backend/azureblob/azureblob_internal_test.go index 80e15a229..b7639106c 100644 --- a/backend/azureblob/azureblob_internal_test.go +++ b/backend/azureblob/azureblob_internal_test.go @@ -1,4 +1,4 @@ -// +build !plan9,!solaris,!js,go1.14 +// +build !plan9,!solaris,!js package azureblob diff --git a/backend/azureblob/azureblob_test.go b/backend/azureblob/azureblob_test.go index 0f9b56931..31a236f16 100644 --- a/backend/azureblob/azureblob_test.go +++ b/backend/azureblob/azureblob_test.go @@ -1,6 +1,6 @@ // Test AzureBlob filesystem interface -// +build !plan9,!solaris,!js,go1.14 +// +build !plan9,!solaris,!js package azureblob diff --git a/backend/azureblob/azureblob_unsupported.go b/backend/azureblob/azureblob_unsupported.go index 8a4a8255e..d393e1e9f 100644 --- a/backend/azureblob/azureblob_unsupported.go +++ b/backend/azureblob/azureblob_unsupported.go @@ -1,6 +1,6 @@ // Build for azureblob for unsupported platforms to stop go complaining // about "no buildable Go source files " -// +build plan9 solaris js !go1.14 +// +build plan9 solaris js package azureblob diff --git a/backend/azureblob/imds.go b/backend/azureblob/imds.go index b07981c3e..7494c4fd6 100644 --- a/backend/azureblob/imds.go +++ b/backend/azureblob/imds.go @@ -1,4 +1,4 @@ -// +build !plan9,!solaris,!js,go1.14 +// +build !plan9,!solaris,!js package azureblob diff --git a/backend/azureblob/imds_test.go b/backend/azureblob/imds_test.go index b30603a20..308d2957a 100644 --- a/backend/azureblob/imds_test.go +++ b/backend/azureblob/imds_test.go @@ -1,4 +1,4 @@ -// +build !plan9,!solaris,!js,go1.14 +// +build !plan9,!solaris,!js package azureblob diff --git a/cmd/mountlib/help.go b/cmd/mountlib/help.go index 32d160088..2becd330f 100644 --- a/cmd/mountlib/help.go +++ b/cmd/mountlib/help.go @@ -50,9 +50,6 @@ then an additional 1 PiB of free space is assumed. If the remote does not [support](https://rclone.org/overview/#optional-features) the about feature at all, then 1 PiB is set as both the total and the free size. -**Note**: As of |rclone| 1.52.2, |rclone mount| now requires Go version 1.13 -or newer on some platforms depending on the underlying FUSE library in use. - ### Installing on Windows To run rclone @ on Windows, you will need to diff --git a/docs/content/install.md b/docs/content/install.md index 3bb2ad936..a40ce9280 100644 --- a/docs/content/install.md +++ b/docs/content/install.md @@ -185,7 +185,7 @@ kill %1 ## Install from source ## -Make sure you have at least [Go](https://golang.org/) go1.13 +Make sure you have at least [Go](https://golang.org/) go1.14 installed. [Download go](https://golang.org/dl/) if necessary. The latest release is recommended. Then diff --git a/fs/versioncheck.go b/fs/versioncheck.go index 19663ee39..35062cf5b 100644 --- a/fs/versioncheck.go +++ b/fs/versioncheck.go @@ -1,7 +1,7 @@ -//+build !go1.13 +//+build !go1.14 package fs -// Upgrade to Go version 1.13 to compile rclone - latest stable go +// Upgrade to Go version 1.14 to compile rclone - latest stable go // compiler recommended. -func init() { Go_version_1_13_required_for_compilation() } +func init() { Go_version_1_14_required_for_compilation() } diff --git a/lib/encoder/filename/decode.go b/lib/encoder/filename/decode.go index 291d34cc7..6e859fd31 100644 --- a/lib/encoder/filename/decode.go +++ b/lib/encoder/filename/decode.go @@ -7,6 +7,7 @@ import ( "errors" "sync" + "github.com/dop251/scsu" "github.com/klauspost/compress/huff0" ) @@ -50,7 +51,7 @@ func DecodeBytes(table byte, data []byte) (string, error) { case tableReserved: return "", ErrUnsupported case tableSCSUPlain: - return scsuDecode(data) + return scsu.Decode(data) case tableRLE: if len(data) < 2 { return "", ErrCorrupted @@ -87,7 +88,7 @@ func DecodeBytes(table byte, data []byte) (string, error) { return "", ErrCorrupted } if table == tableSCSU { - return scsuDecode(name) + return scsu.Decode(name) } return string(name), nil } diff --git a/lib/encoder/filename/decode_test.go b/lib/encoder/filename/decode_test.go index 9fff86c5f..f2a3f0609 100644 --- a/lib/encoder/filename/decode_test.go +++ b/lib/encoder/filename/decode_test.go @@ -1,7 +1,6 @@ package filename import ( - "runtime" "testing" ) @@ -120,10 +119,6 @@ func TestDecode(t *testing.T) { t.Run(tt.name, func(t *testing.T) { got, err := Decode(tt.encoded) if (err != nil) != tt.wantErr { - if err != nil && err.Error() == scsuNotEnabled && runtime.Version() < "go1.13" { - t.Skip(err.Error()) - return - } if tt.encoded == "" && tt.want != "" { proposed := Encode(tt.want) table := decodeMap[proposed[0]] - 1 diff --git a/lib/encoder/filename/encode.go b/lib/encoder/filename/encode.go index 33d029902..031dbd07a 100644 --- a/lib/encoder/filename/encode.go +++ b/lib/encoder/filename/encode.go @@ -4,6 +4,7 @@ import ( "encoding/base64" "encoding/binary" + "github.com/dop251/scsu" "github.com/klauspost/compress/huff0" ) @@ -37,7 +38,7 @@ func EncodeBytes(s string) (table byte, payload []byte) { if i == tableSCSU { var err error olen := len(org) - org, err = scsuEncodeStrict(s, make([]byte, 0, len(org))) + org, err = scsu.EncodeStrict(s, make([]byte, 0, len(org))) if err != nil || olen <= len(org) { continue } diff --git a/lib/encoder/filename/scsu.go b/lib/encoder/filename/scsu.go deleted file mode 100644 index 10aaa2b13..000000000 --- a/lib/encoder/filename/scsu.go +++ /dev/null @@ -1,16 +0,0 @@ -package filename - -import "errors" - -const scsuNotEnabled = "scsu encoding not enabled in this build due to old go version" - -// Functions wrap scsu package, since it doesn't build on old Go versions. -// Remove once v1.13 is minimum supported version. - -var scsuDecode = func(b []byte) (string, error) { - return "", errors.New(scsuNotEnabled) -} - -var scsuEncodeStrict = func(src string, dst []byte) ([]byte, error) { - return nil, errors.New(scsuNotEnabled) -} diff --git a/lib/encoder/filename/scsu_go113.go b/lib/encoder/filename/scsu_go113.go deleted file mode 100644 index 62ee6c75c..000000000 --- a/lib/encoder/filename/scsu_go113.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build go1.13 - -package filename - -import "github.com/dop251/scsu" - -func init() { - scsuDecode = scsu.Decode - scsuEncodeStrict = scsu.EncodeStrict -}