--
You received this message because you are subscribed to the Google Groups "OSXFUSE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osxfuse-grou...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Checking for /dev/osxfuse0 to determine if osxfuse is installed will not work. The device is created by the FUSE kernel extension. But the kernel extension will not be loaded until the first FUSE volume is mounted. Its a chicken-and-egg situation.
You could check for libosxfuse or the Objective-C framework instead, depending on which library you are using for your file system.
You could check for libosxfuse or the Objective-C framework instead, depending on which library you are using for your file system.Do you mean on disk the same way, right? I bundle the libosxfuse library in the application. I thought of checking the presence of /Library/Filesystems/osxfusefs.fs. How would that work if the user has installed in a different location, or that can't happen?
You should never bundle libosxfuse with your app. Please understand that libosxfuse and the FUSE kernel extension will only work together if both are from the same osxfuse release. This means, if you bundle libosxfuse 2.8.0 with your app and the user updates the kernel extension to version 2.8.1 your app will break! Your file system will no longer mount.You are not the first developer trying to bundle libosxfuse with an app. But honestly, I do not get why anybody would want to do this. libosxfuse is by definition a shared library. It is an integral part of osxfuse. By bundling libosxfuse with your app you are basically ripping osxfuse apart. This will break with the next osxfuse update and leads to a bad user experience.
--
I would suggest having your file system binary distinct from your main app so that it can run and be started as a separate process. I'd suggest that quitting your app might result in potential corruption due to someone force quitting the app thinking it's hung when realistically they still have an open file handle to it and it can't gracefully terminate itself.
Once you do this then your parent app can detect if OSXFUSE is installed, provide instructions on how to install it and then you can continue on your way. I'd ask that you make it clear you're using OSXFUSE so that we don't have to play the "what is OSXFUSE and how did it get onto my computer anyway" game with your users.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>bundle</key>
<array>
<dict>
<key>id</key>
<string>com.github.osxfuse.framework</string>
<key>path</key>
<string>/Library/Frameworks/OSXFUSE.framework/</string>
<key>CFBundleShortVersionString</key>
<string>2.7.5</string>
<key>search</key>
<false/>
</dict>
</array>
</dict>
</plist>
productbuild --product def.plist --component build/Release/Sample.app /Applications Product.pkg
"RequiredBundlesDescription" = "The required version of OSXFUSE is not installed. Please install or update OSXFUSE: http://osxfuse.github.io/.";
$ pkgutil --pkgs | grep -i osxfuse
com.github.osxfuse.pkg.Core
This pkg-ID can then be used to get all the files that were installed as part of that package:
$ > pkgutil --files com.github.osxfuse.pkg.Core
Library
Library/Filesystems
Library/Filesystems/osxfusefs.fs
...
> Then, I edit some code in Osxfuse
> to change resources was install by Osxfuse -> It create a new file system
> don't using "osxfuse" name. It works fine. So I don't care my app will
> conflict with other app and bug was occur when Osxfuse update new version.
You change code in OSXFUSE and compile it? Or you change some
configuration only, without recompiling?
How do you make it not use the "osxfuse" name? I think that if you
rename, you will need to do many renames (kernel driver, file system,
library paths, etc.).Also wondering the same thing here. Were you able to figure this out?