diff --git a/fuse/node/mount_darwin.go b/fuse/node/mount_darwin.go index e1d287227ec..e4bf92168e6 100644 --- a/fuse/node/mount_darwin.go +++ b/fuse/node/mount_darwin.go @@ -11,6 +11,8 @@ import ( "syscall" core "github.com/ipfs/go-ipfs/core" + + "gx/ipfs/QmU1N5xVAUXgo3XRTt6GhJ2SuJEbxj2zRgMS7FpjSR2U83/semver" ) func init() { @@ -29,7 +31,7 @@ var fuseVersionPkg = "github.com/jbenet/go-fuse-version/fuse-version" var errStrFuseRequired = `OSXFUSE not found. OSXFUSE is required to mount, please install it. -NOTE: Version 2.7.2 or higher required; prior versions are known to kernel panic! +NOTE: Version in between 2.7.2 and 3.0.0 is required; prior versions are known to kernel panic! It is recommended you install it from the OSXFUSE website: http://osxfuse.github.io/ @@ -54,6 +56,9 @@ It is recommended you install it from the OSXFUSE website: For more help, see: https://github.com/ipfs/go-ipfs/issues/177 + +OSXFUSE versions >3.0.0 are not compatible with version of FUSE library in current use. + This will be fixed in near future, see https://github.com/ipfs/go-ipfs/issues/3471 ` var errStrNeedFuseVersion = `unable to check fuse version. @@ -138,11 +143,22 @@ func darwinFuseCheckVersion(node *core.IpfsNode) error { } log.Debug("mount: osxfuse version:", ov) - if strings.HasPrefix(ov, "2.7.") || strings.HasPrefix(ov, "2.8.") { - return nil + + min := semver.MustParse("2.7.2") + max := semver.MustParse("3.0.0") + curr, err := semver.Make(ov) + if err != nil { + return err } - return fmt.Errorf(errStrUpgradeFuse, ov) + if curr.LT(min) { + return fmt.Errorf(errStrUpgradeFuse, ov) + } + // TODO: Upgrade fuse lib and work nice with 3.0.0+ + if curr.GE(max) { + return fmt.Errorf(errStrUpgradeFuse, ov) + } + return nil } func tryGFV() (string, error) { diff --git a/package.json b/package.json index 20e3e5a06b3..36270e7292e 100644 --- a/package.json +++ b/package.json @@ -293,6 +293,12 @@ "hash": "QmXGevGDVTqeKdisBzaxEK4CJZqfxeXiVSWLaXaVWcG5on", "name": "go-smux-multiplex", "version": "1.1.4" + }, + { + "author": "blang", + "hash": "QmU1N5xVAUXgo3XRTt6GhJ2SuJEbxj2zRgMS7FpjSR2U83", + "name": "semver", + "version": "3.3.0" } ], "gxVersion": "0.4.0",