forked from TrueCloudLab/restic
bump required go version to 1.21
This commit is contained in:
parent
05571286b2
commit
ad48751adb
11 changed files with 10 additions and 54 deletions
10
.github/workflows/tests.yml
vendored
10
.github/workflows/tests.yml
vendored
|
@ -49,16 +49,6 @@ jobs:
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
|
|
||||||
- job_name: Linux
|
|
||||||
go: 1.20.x
|
|
||||||
os: ubuntu-latest
|
|
||||||
test_fuse: true
|
|
||||||
|
|
||||||
- job_name: Linux
|
|
||||||
go: 1.19.x
|
|
||||||
os: ubuntu-latest
|
|
||||||
test_fuse: true
|
|
||||||
|
|
||||||
name: ${{ matrix.job_name }} Go ${{ matrix.go }}
|
name: ${{ matrix.job_name }} Go ${{ matrix.go }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
|
2
build.go
2
build.go
|
@ -58,7 +58,7 @@ var config = Config{
|
||||||
Main: "./cmd/restic", // package name for the main package
|
Main: "./cmd/restic", // package name for the main package
|
||||||
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
|
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
|
||||||
Tests: []string{"./..."}, // tests to run
|
Tests: []string{"./..."}, // tests to run
|
||||||
MinVersion: GoVersion{Major: 1, Minor: 18, Patch: 0}, // minimum Go version supported
|
MinVersion: GoVersion{Major: 1, Minor: 21, Patch: 0}, // minimum Go version supported
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config configures the build.
|
// Config configures the build.
|
||||||
|
|
|
@ -284,8 +284,7 @@ From Source
|
||||||
***********
|
***********
|
||||||
|
|
||||||
restic is written in the Go programming language and you need at least
|
restic is written in the Go programming language and you need at least
|
||||||
Go version 1.19. Building for Solaris requires at least Go version 1.20.
|
Go version 1.21. Building restic may also work with older versions of Go,
|
||||||
Building restic may also work with older versions of Go,
|
|
||||||
but that's not supported. See the `Getting
|
but that's not supported. See the `Getting
|
||||||
started <https://go.dev/doc/install>`__ guide of the Go project for
|
started <https://go.dev/doc/install>`__ guide of the Go project for
|
||||||
instructions how to install Go.
|
instructions how to install Go.
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -86,4 +86,4 @@ require (
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
go 1.19
|
go 1.21
|
||||||
|
|
|
@ -94,7 +94,7 @@ func run(command string, args ...string) (*StdioConn, *sync.WaitGroup, chan stru
|
||||||
err = errW
|
err = errW
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if util.IsErrDot(err) {
|
if errors.Is(err, exec.ErrDot) {
|
||||||
return nil, nil, nil, nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o rclone.program=./<program> to override", cmd.Path)
|
return nil, nil, nil, nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o rclone.program=./<program> to override", cmd.Path)
|
||||||
}
|
}
|
||||||
return nil, nil, nil, nil, err
|
return nil, nil, nil, nil, err
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
//go:build go1.20
|
|
||||||
// +build go1.20
|
|
||||||
|
|
||||||
package rest_test
|
package rest_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//go:build !windows && go1.20
|
//go:build !windows
|
||||||
// +build !windows,go1.20
|
// +build !windows
|
||||||
|
|
||||||
package rest_test
|
package rest_test
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ func startClient(cfg Config) (*SFTP, error) {
|
||||||
|
|
||||||
bg, err := util.StartForeground(cmd)
|
bg, err := util.StartForeground(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if util.IsErrDot(err) {
|
if errors.Is(err, exec.ErrDot) {
|
||||||
return nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o sftp.command=./<command> to override", cmd.Path)
|
return nil, errors.Errorf("cannot implicitly run relative executable %v found in current directory, use -o sftp.command=./<command> to override", cmd.Path)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
//go:build go1.19
|
|
||||||
// +build go1.19
|
|
||||||
|
|
||||||
// This file provides a function to check whether an error from cmd.Start() is
|
|
||||||
// exec.ErrDot which was introduced in Go 1.19.
|
|
||||||
// This function is needed so that we can perform this check only for Go 1.19 and
|
|
||||||
// up, whereas for older versions we use a dummy/stub in the file errdot_old.go.
|
|
||||||
// Once the minimum Go version restic supports is 1.19, remove this file and
|
|
||||||
// replace any calls to it with the corresponding code as per below.
|
|
||||||
|
|
||||||
package util
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"os/exec"
|
|
||||||
)
|
|
||||||
|
|
||||||
func IsErrDot(err error) bool {
|
|
||||||
return errors.Is(err, exec.ErrDot)
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
//go:build !go1.19
|
|
||||||
// +build !go1.19
|
|
||||||
|
|
||||||
// This file provides a stub for IsErrDot() for Go versions below 1.19.
|
|
||||||
// See the corresponding file errdot_119.go for more information.
|
|
||||||
// Once the minimum Go version restic supports is 1.19, remove this file
|
|
||||||
// and perform the actions listed in errdot_119.go.
|
|
||||||
|
|
||||||
package util
|
|
||||||
|
|
||||||
func IsErrDot(err error) bool {
|
|
||||||
return false
|
|
||||||
}
|
|
|
@ -11,6 +11,9 @@ import (
|
||||||
// to the previous process group.
|
// to the previous process group.
|
||||||
//
|
//
|
||||||
// The command's environment has all RESTIC_* variables removed.
|
// The command's environment has all RESTIC_* variables removed.
|
||||||
|
//
|
||||||
|
// Return exec.ErrDot if it would implicitly run an executable from the current
|
||||||
|
// directory.
|
||||||
func StartForeground(cmd *exec.Cmd) (bg func() error, err error) {
|
func StartForeground(cmd *exec.Cmd) (bg func() error, err error) {
|
||||||
env := os.Environ() // Returns a copy that we can modify.
|
env := os.Environ() // Returns a copy that we can modify.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue