提交 6bcca84e 作者: Jeromy Johnson 提交者: GitHub

Merge pull request #3413 from ipfs/feat/fuse/osx-semver

fuse: Parse OSX fuse version properly
...@@ -11,6 +11,8 @@ import ( ...@@ -11,6 +11,8 @@ import (
"syscall" "syscall"
core "github.com/ipfs/go-ipfs/core" core "github.com/ipfs/go-ipfs/core"
"gx/ipfs/QmU1N5xVAUXgo3XRTt6GhJ2SuJEbxj2zRgMS7FpjSR2U83/semver"
) )
func init() { func init() {
...@@ -29,7 +31,7 @@ var fuseVersionPkg = "github.com/jbenet/go-fuse-version/fuse-version" ...@@ -29,7 +31,7 @@ var fuseVersionPkg = "github.com/jbenet/go-fuse-version/fuse-version"
var errStrFuseRequired = `OSXFUSE not found. var errStrFuseRequired = `OSXFUSE not found.
OSXFUSE is required to mount, please install it. 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: It is recommended you install it from the OSXFUSE website:
http://osxfuse.github.io/ http://osxfuse.github.io/
...@@ -54,6 +56,9 @@ It is recommended you install it from the OSXFUSE website: ...@@ -54,6 +56,9 @@ It is recommended you install it from the OSXFUSE website:
For more help, see: For more help, see:
https://github.com/ipfs/go-ipfs/issues/177 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. var errStrNeedFuseVersion = `unable to check fuse version.
...@@ -138,11 +143,22 @@ func darwinFuseCheckVersion(node *core.IpfsNode) error { ...@@ -138,11 +143,22 @@ func darwinFuseCheckVersion(node *core.IpfsNode) error {
} }
log.Debug("mount: osxfuse version:", ov) 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
} }
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 fmt.Errorf(errStrUpgradeFuse, ov)
}
return nil
} }
func tryGFV() (string, error) { func tryGFV() (string, error) {
......
...@@ -293,6 +293,12 @@ ...@@ -293,6 +293,12 @@
"hash": "QmXGevGDVTqeKdisBzaxEK4CJZqfxeXiVSWLaXaVWcG5on", "hash": "QmXGevGDVTqeKdisBzaxEK4CJZqfxeXiVSWLaXaVWcG5on",
"name": "go-smux-multiplex", "name": "go-smux-multiplex",
"version": "1.1.4" "version": "1.1.4"
},
{
"author": "blang",
"hash": "QmU1N5xVAUXgo3XRTt6GhJ2SuJEbxj2zRgMS7FpjSR2U83",
"name": "semver",
"version": "3.3.0"
} }
], ],
"gxVersion": "0.4.0", "gxVersion": "0.4.0",
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论