-
Notifications
You must be signed in to change notification settings - Fork 255
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
Mac OS X support #15
Comments
I am interested in helping on this as much as I can. I will try to run it and comment back with what I find. |
Hi @hasit, great to hear that! |
One thing it might have omitted is encryption of extended attributes. OS X makes extensive usage of extended attributes. For example, when you download a file with Google Chrome or Safari, the file will be marked with its original URL. When I tried EncFS before, the encrypted file always had the same extended attributes as the decrypted one, and thereby the plaintext could be easily obtained. I suspect the encryption of extended attribute will never cross the mind of regular Linux folk. |
Extended attributes are not implemented yet in gocryptfs. I don't know how
big a problem that is on OSX, but at least we cannot leak data ;)
|
Attempting to install on OS X 10.11.2 with
|
@spaghetti2514 : Interesting. Can you run "openssl version" and post the
output?
|
@rfjakob OpenSSL 1.0.2e 3 Dec 2015 |
I should point out that this probably has more to do with Removing the ",!darwin" part of that line eliminates those two errors for me |
I guess the "!darwin" is because openssl was too old in an earlier OSX On Thu, Jan 7, 2016 at 1:34 AM, spaghetti2514 notifications@github.com
|
1.0.2e is very recent because I installed it very recently. It is not the native OS X openssl because the native OS X openssl no longer exists. Apple deprecated the use of openssl a long time ago in favor of their own crypto libs, and finally stopped shipping openssl completely in 10.11. OS X users that still build things against openssl tend to install it from homebrew, an unofficial package manager for OS X. I am unsure if excluding OS X in the build process should be considered a bug, since the only reason it works for me is that I'm building openssl myself via homebrew. |
In that case, it makes no sense at all anymore to exclude gcm from the
build. Yes please file a ticket.
I will take care of the other two issues as I am afraid I have caused them.
|
I have filed a ticket. What other two issues are you referring to? just the unused time import and SYS_UTIMENSAT problems in go-fuse? I think we'll run into other problems after that, as commenting some of that out to try to get farther along in the build reveals other build errors, but I can't be certain that they're not being caused by the way I'm stepping around previous errors. |
Yes, just the two in go-fuse. Commenting them out should be fine. Later
|
After bypassing SYS_UTIMENSAT in syscall.go I get
After commenting out line 140 in loopback.go and changing the return err to return 0, I get
After replacing line 213 in file.go with err = syscall.EINTR, the build succeeds. |
Ok, I hope I have fixed all of this, but I do not have a Mac to test on. @spaghetti2514 , can you
|
Edit: bypassing that leads to
|
Thanks, should be fixed, please pull go-fuse. |
|
Other various things
|
Ok, I need a cross compiler ;) |
Turns out that for cross compilation to work, I would need the C header files from OSX, because go-fuse uses cgo. And to get those, I'd have to extract them from XCode on a running OSX machine. OMG. @spaghetti2514 : The things you have reported should be fixed, please pull. If you still have the patience, I think we are done soon. |
I can confirm the same error. Following is the output I get on my MacBook Pro (Retina, 13-inch, Late 2013) OSX El Capitan version 10.11.2 .
|
Hasit, you need to replace go-fuse with my branch, and you need openssl
installed. The errors you see are already fixed.
|
@rfjakob Build succeeds with latest changes |
Great. Pushed to upstream as hanwen/go-fuse#89 . ./test.bash ? |
Edit: That was caused by running the script twice when the first one failed to unmount any of the temporary filesystems. After unmounting the filesystems in /tmp and trying again I got
fusermount is linux-specific by the way. Normal umount works fine for fuse filesystems on OS X |
@rfjakob The OS X issue at spacemonkeygo/openssl has not been addressed at all in months. |
@teras: I created a Homebrew formula which can only be merged if the In order for the installation to work you need to tick the option First install OSXFuse from the website (https://osxfuse.github.io/) or via brew: brew cask install osxfuse Afterwards you need to reboot your machine. Install brew install alexanderharm/homebrew-gocryptfs/gocryptfs I tested this successfully on my machine (macOS Sierra) and it also seems to run fine on @teras' machine running macOS High Sierra. @rfjakob: maybe this can be added to the docs once it is merged into Edit: Updated installation procedure based on the feedback of @teras. |
@alexanderharm I got this message when I use the application: |
@teras: When did you get this message? I believe this is related to the installation of If you feel more comfortable you can also download and install osxfuse from this website and then install only |
Everything went smooth up to the time I typed The second time I typed them, no message was displayed, only failing: Now, I tried what you said. Indeed the installer asked me to open Settings - I did so but there was no option to allow anything. |
@teras: Normally it should work. Did you |
@teras: Under |
@alexanderharm Indeed this is the case. It seems to work now. Thank you |
As of today there is a Homebrew formula for Install brew and type |
Just updated my macos to Catalina and gocryptfs does not work anymore :-( ➜ ~ gocryptfs src dest |
I got it fixed after installing osxfuse. |
Seconding @agarbato . Stopped working when I updated to Catalina. |
For those that already had fuse installed before, doing |
But I have macFUSE installed 4.10 @ BigSour. What could the issue be? |
macFUSE is closed source, and therefore Homebrew is blocking all formulae that depend on it. |
This could be fixed, see e. g. https://github.com/borgbackup/homebrew-tap/blob/master/Formula/borgbackup-fuse.rb, no? Unfortunately this requires maintaining your own tap. So if you create a repo named |
@JayBrown thank you for the explanation. |
Excuse my ignorance, but doesn't homebrew also include lots of closed-source stuff like Microsoft Office? |
@rfjakob yes as casks. most recent command e.g. |
Ok. I see that macfuse is available as a cask: https://formulae.brew.sh/cask/macfuse |
Yes, that would probably work. But I assume you would need to pre-build |
Anyway we can get gocryptfs to work with Macfuse 4.1 for the M1? We have no way to use the old osxfuse since Big Sur does not support it. |
More details in a correspondence - #556 |
sudo port install gocryptfs This should work out of the box for Intel as well as for M1 Macs. |
M1 has an issue w/ pandoc dependency. Please advise. % sudo port install gocryptfs |
pandoc is only needed to generate the man page, gocryptfs itself does not need it |
Hi @AlexBasile123, unfortunately pandoc does not provide an arm64 release yet (See: jgm/pandoc#6960) |
Fixed the build for M1 Macs. |
Thanks @rfjakob for quick feedback! |
Thanks @MarcelBochtler for getting the fix out so quickly! The change is working on M1 now |
Go support Mac OS X, as does the FUSE library we use, go-fuse.
gocrypts may actually work out of the box on OSX, but there probably are small issues that have to be sorted out.
At the very least, gocryptfs has to be tested on OSX. As I do not have a Mac to test on, this would be an opportunity for somebody from the Mac community to step up. Please comment here if you are interested.
The text was updated successfully, but these errors were encountered: