Skip to content
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

Implement FUSE-T support on macOS #453

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

macos-fuse-t
Copy link
Contributor

This pull request implements support for FUSE-T, which eliminates the need to install kernel extensions on macOS.
https://github.com/macos-fuse-t/fuse-t

Signed-off-by: Alex Fishman <alex@fuse-t.org>
@google-cla
Copy link

google-cla bot commented Mar 11, 2023

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Copy link
Contributor

@rfjakob rfjakob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fuse-t is quite interesting! I have added a few comment on the code.

However, to get this merged, you will have to send the changes via gerrithub ( see
https://github.com/hanwen/go-fuse/blob/master/CONTRIBUTING )

example/loopback/main.go Outdated Show resolved Hide resolved
fuse/mount_darwin.go Show resolved Hide resolved
fuse/poll_darwin.go Outdated Show resolved Hide resolved
fuse/server_darwin.go Outdated Show resolved Hide resolved
fuse/server_darwin.go Outdated Show resolved Hide resolved
fuse/mount_darwin.go Outdated Show resolved Hide resolved
fuse/mount_darwin.go Show resolved Hide resolved
fuse/server.go Outdated Show resolved Hide resolved
fuse/server_darwin.go Show resolved Hide resolved
@rfjakob
Copy link
Contributor

rfjakob commented Mar 15, 2023

BTW, this could be tested on Github Actions, right?

@macos-fuse-t
Copy link
Contributor Author

BTW, this could be tested on Github Actions, right?

I don't have experience with Github Actions, but testing should be easy. fuse-t can be installed with homebrew before running tests and that's the only requirement

Signed-off-by: Alex Fishman <alex@fuse-t.org>
Signed-off-by: Alex Fishman <alex@fuse-t.org>
@macos-fuse-t
Copy link
Contributor Author

Most of the comments are addressed. Please take a look at the new commits

Signed-off-by: Alex Fishman <alex@fuse-t.org>
Signed-off-by: Alex Fishman <alex@fuse-t.org>
@hanwen
Copy link
Owner

hanwen commented Mar 19, 2023

thanks for your contribution!

As discussed above, it would be swell to get a gerrithub review for this.

As an aside, I've been mulling implementing NFS natively directly in go-fuse, but I haven't found a good description of the NFS protocol yet. I guess you'd rather see people pay you for fuse-t, but maybe you can comment on how much complexity the NFS <-> FUSE bridge involves?

@libor13
Copy link

libor13 commented Jun 22, 2023

When do you plan add this changes to master branch ?

@hanwen
Copy link
Owner

hanwen commented Jun 23, 2023

I do not have concrete plans; my comments in the code review have gone unanswered.

@macos-fuse-t
Copy link
Contributor Author

I don't have time for this. But @libor13 can use the forked repo

@libor13
Copy link

libor13 commented Jul 13, 2023

Please add support for -o location option added in fuse-t 1.0.22
Option should be added in ./fuse/mount_darwin.go in function mount_fuset()

@GwynethLlewelyn
Copy link

I don't have time for this. But @libor13 can use the forked repo

That's really a pity! :-(

Just FYI: I tried to sign up on Gerrit (I had already signed the Google's CLA, which is also trivial to do), and, after five minutes, I had everything set up for my own repositories. That's all it takes, it won't eat much from your precious time...

@libor13
Copy link

libor13 commented Nov 14, 2023

@macos-fuse-t do you have plan to merge current changes from hanwen:master to your branch ?
@hanwen is there something new about using fuse-t in hanwen/go-fuse project ?

@libor13
Copy link

libor13 commented Nov 20, 2023

When I try to mount virtual drive from gocryptfs using last source from macos-fuse-t/go-fuse I got this error:

Decrypting master key
08:52:12.413685 rx21 2: INIT n0 {7.18 Ra 0 ASYNC_READ,POSIX_LOCKS,ATOMIC_O_TRUNC,EXPORT_SUPPORT,BIG_WRITES,DONT_MASK,RENAME_SWAP,RENAME_EXCL,ALLOCATE,EXCHANGE_DATA,CASE_INSENSITIVE,VOL_RENAME,XTIMES} 
08:52:12.414320 tx33 2:     OK, {7.18 Ra 0 ASYNC_READ,BIG_WRITES,RENAME_SWAP 0/0 Wr 1048576 Tg 0 MaxPages 256}
08:52:12.458043 rx21 3: STATFS n1 
08:52:12.458137 tx33 3:     OK, {blocks (38676,14899)/115511 files 1181504706/1182842480 bs1048576 nl0 frs1048576}
08:52:12.458686 rx21 4: GETATTR n1  
08:52:12.459017 tx33 4:     OK, {tA=1s {M040755 SZ=256 L=8 501:20 B0*4096 i0:0 A 1699964877.953854 M 1699964877.924009 C 1699964877.924009}}
08:52:12.461846 rx21 5: LOOKUP n1 ["liborbubik"] 11b
08:52:12.462754 tx33 5:     2=no such file or directory, {n0 g0 tE=1s tA=0s {M00 SZ=0 L=0 0:0 B0*0 i0:0 A 0.000000 M 0.000000 C 0.000000}}
mount read  EOF
08:52:12.465868 Failed to read from fuse conn: 5=input/output error
fs.Mount failed: fuse-t failed: EOF
Maybe you should run: /Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse

@bastienvty
Copy link

bastienvty commented Apr 28, 2024

Any update @macos-fuse-t @hanwen? That would definitely be a good addition to integrate fuse-t since the opening of this PR a year ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants