thejoelpatrol / fusehfs

Update of FuseHFS for macFUSE on macOS 12 Monterey
28 stars 8 forks source link

kext alternative #7

Open macos-fuse-t opened 2 years ago

macos-fuse-t commented 2 years ago

As you probably know loading kexts on mac is a very difficult proposition. For that purpose I created a new project that implements fuse over nfs. It can be embedded nicely into an existing app and I think it's a perfect fit for fusehfs. Check it out and contact me for any assistance if needed. https://www.fuse-t.org

d235j commented 2 years ago

Looks like recompiling this project against fuse-t is sufficient to allow it to function, except for one issue:

Unmounting the volume does not terminate the fuse-t process, which (for instance) prevents a disk image from ejecting.

I can't say if this is a fusehfs bug or a fuse-t bug — a debugger indicates that it's in fuse-t code called by fuse_main(), maybe a deadlock of some sort?

macos-fuse-t commented 2 years ago

Yes, it's a fuse-t bug that will be fixed in the next release.

On Fri, Sep 23, 2022 at 2:48 PM David Ryskalczyk @.***> wrote:

Looks like recompiling this project against fuse-t is sufficient to allow it to function, except with one issue:

Unmounting the volume does not terminate the fuse-t process, which (for instance) prevents a disk image from ejecting.

I can't say if this is a fusehfs bug or a fuse-t bug.

— Reply to this email directly, view it on GitHub https://github.com/thejoelpatrol/fusehfs/issues/7#issuecomment-1256167605, or unsubscribe https://github.com/notifications/unsubscribe-auth/A24KXFLMJ36CFDAX6Q7RFMTV7WRH7ANCNFSM6AAAAAAQNF7WTI . You are receiving this because you authored the thread.Message ID: @.***>

Metal-Snake commented 1 year ago

I compiled fusehfs against fuse-t and it works. I still get a message stating "activating of filesystems failed" but the filesystem is mounted anyway. (maybe it's two filesystems in one file?)

But it seems like, if the Volume has a "&" symbol in it, mounting fails. I have no idea if this is a bug in fusehfs or in fuse-t. Anybody has some insight into it?

Metal-Snake commented 10 months ago

I have another CD which has a slash ("/") in the volume name, that won't mount either.

gingerbeardman commented 8 months ago

Discs I've tried won't mount either: https://github.com/macos-fuse-t/fuse-t/issues/50

thejoelpatrol commented 2 weeks ago

This is a cool idea. We will need to revisit the long-term question about kexts if macFUSE stops working some day, now that Apple is moving on to FSKit. Hopefully macFUSE migrates to that, but that seems like potentially a big hurdle for them, since I think it's a pretty lean project, just one person trying to keep it going IIRC.

alexfs commented 2 weeks ago

Unfortunately FSKit as a developer framework has been removed from 15.0. Apple tools still use it internally but it's not possible to build upon it.

d235j commented 2 weeks ago

Unfortunately FSKit as a developer framework has been removed from 15.0. Apple tools still use it internally but it's not possible to build upon it.

The framework is still in /Library/Frameworks, and the headers are included with the Xcode 16.1 beta. This means it should be usable, but the beta version of Xcode will be required to build software linking to it for now. Whether it requires macOS 15.1 beta to run, I'm not certain.

My guess is that Apple has not worked out all the bugs yet so they decided to delay it slightly.

alexfs commented 2 weeks ago

While the Xcode beta does include FSKit headers, the built extensions fail to load. I suspect this is because the FSKit APIs aren't stable enough for release, and Apple likely recognized this and removed the functionality. I doubt it will be included in 15.x, as it doesn't seem practical, so we may have to wait another year.

d235j commented 2 weeks ago

While the Xcode beta does include FSKit headers, the built extensions fail to load. I suspect this is because the FSKit APIs aren't stable enough for release, and Apple likely recognized this and removed the functionality. I doubt it will be included in 15.x, as it doesn't seem practical, so we may have to wait another year.

Have you tested on 15.0, or on the 15.1 beta? I guess we'll see — Apple has done mid-year releases with somewhat significant API improvements before.

It's also possible that an entitlement is missing, or something similar is going on.

alexfs commented 2 weeks ago

Actually I was following closely every beta macos build in hope to make fuse-t compatible once the API is available. FSKit was working more or less until the beginning of July and then abruptly stopped. Neither 15.0 nor 15.1 can load the extensions. It's not because of entitlements but because macOS doesn't allow enabling and loading the FSkit extensions at this time at least.