forked from TrueCloudLab/restic
Add support for illumos/Solaris
This does come without xattr/fuse support at this point. NB: not hooking up the integration tests as restic won't compile without cgo with Go < 1.10.
This commit is contained in:
parent
f6890210aa
commit
96311d1a2b
18 changed files with 71 additions and 2 deletions
3
changelog/0.8.3_2018-02-26/pull-1649
Normal file
3
changelog/0.8.3_2018-02-26/pull-1649
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Enhancement: Add illumos/Solaris support.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/1649
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
|
@ -63,7 +63,8 @@ command to serve the repository with FUSE:
|
||||||
Now serving /tmp/backup at /mnt/restic
|
Now serving /tmp/backup at /mnt/restic
|
||||||
Don't forget to umount after quitting!
|
Don't forget to umount after quitting!
|
||||||
|
|
||||||
Mounting repositories via FUSE is not possible on Windows and OpenBSD.
|
Mounting repositories via FUSE is not possible on OpenBSD, Solaris/illumos
|
||||||
|
and Windows.
|
||||||
|
|
||||||
Restic supports storage and preservation of hard links. However, since
|
Restic supports storage and preservation of hard links. However, since
|
||||||
hard links exist in the scope of a filesystem by definition, restoring
|
hard links exist in the scope of a filesystem by definition, restoring
|
||||||
|
|
25
internal/backend/sftp/foreground_solaris.go
Normal file
25
internal/backend/sftp/foreground_solaris.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package sftp
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os/exec"
|
||||||
|
"syscall"
|
||||||
|
|
||||||
|
"github.com/restic/restic/internal/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
func startForeground(cmd *exec.Cmd) (bg func() error, err error) {
|
||||||
|
// run the command in it's own process group so that SIGINT
|
||||||
|
// is not sent to it.
|
||||||
|
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||||
|
Setpgid: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
// start the process
|
||||||
|
err = cmd.Start()
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "cmd.Start")
|
||||||
|
}
|
||||||
|
|
||||||
|
bg = func() error { return nil }
|
||||||
|
return bg, nil
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package sftp
|
package sftp
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package fuse
|
package fuse
|
||||||
|
|
27
internal/restic/node_solaris.go
Normal file
27
internal/restic/node_solaris.go
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
package restic
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
func (node Node) restoreSymlinkTimestamps(path string, utimes [2]syscall.Timespec) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s statUnix) atim() syscall.Timespec { return s.Atim }
|
||||||
|
func (s statUnix) mtim() syscall.Timespec { return s.Mtim }
|
||||||
|
func (s statUnix) ctim() syscall.Timespec { return s.Ctim }
|
||||||
|
|
||||||
|
// Getxattr retrieves extended attribute data associated with path.
|
||||||
|
func Getxattr(path, name string) ([]byte, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Listxattr retrieves a list of names of extended attributes associated with the
|
||||||
|
// given path in the file system.
|
||||||
|
func Listxattr(path string) ([]string, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setxattr associates name and data together as an attribute of path.
|
||||||
|
func Setxattr(path, name string, data []byte) error {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
// +build !openbsd
|
// +build !openbsd
|
||||||
|
// +build !solaris
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package restic
|
package restic
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// +build !windows,!darwin,!freebsd,!netbsd,!openbsd,!dragonfly
|
// +build !windows,!darwin,!freebsd,!netbsd,!openbsd,!dragonfly,!solaris
|
||||||
|
|
||||||
package restic
|
package restic
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue