-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update "latest release" - sshfs for macFUSE #64
Comments
Hi, I was wondering what the proper procedure to compile and install v2.9 (as you have done) would be. I know how to use Terminal, but I'm very lost on how to take the files here and make them into a package that I can install. Any advice or pointers would be immensely helpful. Thanks, |
How to compile and install SSHFS version 2.10.0 on macOSThe various steps described below will demand some knowledge in use of terminal. For this tutorial I use the following versions of software: Xcode_11.3.1 - for Mojave 10.14.6 If you run a newer version of macOS, you will find the correct version of Xcode here : macFUSE - use latest release. Download from here : glib-2.66.4 SSHFS version 2.10.0 Pyton 3.9.1 pkg-config 0.29.2 Start the install / processTo get this working, you need glib. https://mesonbuild.com/SimpleStart.html Scroll down to the macOS part. Install Xcode. Install Command Line Tools for Xcode Install Python 3 Install meson and ninja. Your .bash_profile should have a PATH for meson and ninja : #Setting PATH for meson an ninja When this is done, you can install glib. % tar xf glib-@[email protected] # unpack the sources Install sshfs
( Compiling sshfs ) $ mkdir build; cd build Best regards |
Thank you for the in-depth walkthrough! I haven't been able to do this yet, but I'll let you know if I run into any problems. |
There is also 2.10 release |
What is the advantage by using 2.10 ? Why is 2.1 better than 2.5 or 2.9 ? |
Please read release notes |
Thanks, luzik So, it seems that version 2.10 is a newer ( more up to date ) version than version 2.5 or 2.9. Is this correct ? I have been reading on this page : Reading the release notes was usefull. I have one question : So, I suppose this means that it is possible to run also the latest versions of SSHFS My understanding was that the latest FUSE library for OS X / masOS is 2.9.9. Release notes from SSHFS 3.0.0: How can I run FUSE library version 3 or later on OS X / masOS ? |
Ping, @Nikratio |
The latest version of libfuse shipping with macFUSE is 2.9.9. This means you are limited to SSHFS 2.x. Is there any important feature available in SSHFS 3.7.1, but not in version 2.5? |
The advantages running a newer version : Some serious bugs have not been handled : I also find a list of various features here : You are also not answering my question : According to the text under release notes this seems to be possible : |
The changes you listed seem to boil down to performance improvements. Backporting the relevant code changes to version 2.10 should be doable. Don't get me wrong, porting libfuse 3 to macOS is on my to do list, but other items on the list have a higher priority.
libfuse 3 might compile on macOS, but this does not mean that libfuse 3 will actually work. libfuse 3 currently lacks the required patches for supporting macOS. From what I can tell, the author of the comment you mentioned only added an #ifdef. Currently the macFUSE kernel extension comes with (partial) support for FUSE ABI 7.18. This is not going to change from updating libfuse to version 3. In other words, most new libfuse 3 features will not be available on macOS. In case libfuse 3 requires newer ABI features, it will not work at all. What I'm trying to say is that updating libfuse makes most sense when updating the kernel extension in tandem.
You would have to add support for macOS to libfuse 3. |
Thanks for the answer, Benjamin Fleischer. The version 2.5 can not mount under /Volumes on my machines. When I run version 2.9, I am able to mount under /Volumes. This is the behavior I see. ( Maybe I have a strange config ) It is not obvious that you have to do manual changes to the sshfs.c file. If you don´t do these changes it will not compile. ( osxfuse/osxfuse#751 ) And also had to make manual adjustments to make a temporary fix for the preformance. ( #57 ) Making a .dmg file of the SSHFS version 2.10 will fix some issues for a lot of users. When I started using the sshfs program on macOS, I wanted it to work as seamlessly as my pcloud drive. I wanted the ssh program to connect by itself at boot. I wanted to see the icon for the ssh drive in finder, and I wanted to be able to disconnect and connect using an icon on the desktop ( without any passwords ). To be able to do this a lot of fiddling and scripts has been needed. None of this has been working at first attempt. I suppose the mac users are demanding. We are used to things that "just works". |
How does SSHFS 3.7.0 improve performance under OS X if osxfuse/macFUSE/FUSE for Mac only supports SSHFS 2.x? Is there a way to run SSHFS 3.x on Mac? The proliferation of old/incompatible versions and renamed projects makes this very confusing! |
@tormodwill Thank you!! This worked for me, and SSHFS performance increased for me from 20MB/s read to 115MB/s read over a 1GbE LAN. I have brew and Xcode installed, so the instructions were simpler for me: brew install python3 meson ninja glib wget
wget https://ftp.acc.umu.se/pub/GNOME/sources/glib/2.66/glib-2.66.8.tar.xz
wget https://github.com/libfuse/sshfs/releases/download/sshfs-2.10/sshfs-2.10.tar.gz
wget https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar xf glib-2.66.8.tar.xz
tar xf sshfs-2.10.tar.gz
tar xf pkg-config-0.29.2.tar.gz edit sshfs-2.10/sshfs.c and replace: edit sshfs-2.10/test/meson.build cd sshfs-2.10
mkdir build; cd build
meson ..
ninja And voila, a brand new |
One thing - on MacOS, for some reason when I read from an sshfs mount connected to a local LAN server via 1GbE, it can be as slow as 17-25 MB/s for the first 30 seconds, then rises to 110MB/s for the remainder of the read. This happens consistently. My options are Does anyone have any suggestions please? |
My machine is a macOS BigSur 11.6 and I followed your steps @tormodwill to install sshfs 2.10. However in the pytest step I get this: `giancaceresvera@~/Downloads/sshfs-2.10/build$ python3 -m pytest test/ test/test_sshfs.py::test_sshfs[0-False] SKIPPED (Can't find fusermount executable) [ 25%] =========================================================================== warnings summary =========================================================================== -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html |
The correct edit of test/meson.build |
@tormodwill thanks - what is the consequence of changing from |
This is my Interpretation
This is my interpretation : OSX is based on BSD. -P No symbolic links are followed. This is the default if the -R option is specified. -p Cause cp to preserve the following attributes of each source file
https://man7.org/linux/man-pages/man1/cp.1.html -p same as --preserve=mode,ownership,timestamps |
Hello
I have compiled sshfs for osxfuse ( now macFUSE )
I am now running SSHFS version 2.9 on macOS Mojave 10.14.6
Last login: Mon Jan 25 09:37:58 on console
Tormods-MacBook-Pro:~ tormod$ sshfs --version
SSHFS version 2.9
FUSE library version: 2.9.9
fuse: no mount point
Tormods-MacBook-Pro:~ tormod$
Why is it that version 2.5.0 is listed as the latest release ?
The SSHFS version 2.9 is working fine.
I did the following changes to the sshfs.c
force ssh-fs>sync_read = 0 in line 1827
( #57 )
changed # include <fuse_darwin.h> to #include <fuse.h>
( osxfuse/osxfuse#751 )
Would it be possible to have 2.9 as the latest release ?
The folder on https://github.com/osxfuse
Should be changed to https://github.com/macfuse
I also find that the text on the page
https://github.com/osxfuse/sshfs is misleading.
According to the page :
"The latest version and more information can be found on http://github.com/libfuse/sshfs"
Well, this is not correct if you use a mac. And if you don´t use a mac you would not be on the page in the first place.
The latest version for mac is 2.9, and the latest version can be found on the page :
https://github.com/osxfuse/sshfs
The latest version on the https://github.com/libfuse/sshfs will not work for mac.
( There is no FUSE 3 for OS X, FUSE library version: 2.9.9 for macFUSE macFUSE 4.0.4 )
Best regards
Tormod Willassen
The text was updated successfully, but these errors were encountered: