mpartel / bindfs

Mount a directory elsewhere with changed permissions.
https://bindfs.org/
GNU General Public License v2.0
443 stars 64 forks source link

somehow not compatible with applications #3

Open patrickhno opened 11 years ago

patrickhno commented 11 years ago

Tested with valves steam application. After this procedure, the application can neither start or display the right icon even.

mv /Applications/Steam.app/Contents/MacOS /Applications/Steam.app/Contents/MacOS.orig
mkdir /Applications/Steam.app/Contents/MacOS
src/bindfs /Applications/Steam.app/Contents/MacOS.orig /Applications/Steam.app/Contents/MacOS
mpartel commented 11 years ago

Unfortunately I don't have a mac so I can't debug that myself.

Does bindfs'ing the entire Steam.app work? How about copying Steam.app to a bindfs'ed directory?

patrickhno commented 11 years ago

That provided a error code. I get error code -50 in a dialog when trying to move the whole application over (by dragging the icon) to the mounted folder.

patrickhno commented 11 years ago

Error code -50 is listed as:

-50 paramErr    Error in user parameter list
mpartel commented 11 years ago

OS X might handle extended attributes differently from Linux, and that might cause this problem. Unfortunately I don't have a more specific guess.

Check that your ./configure output contains:

checking for setxattr... yes
checking for getxattr... yes
checking for listxattr... yes
checking for removexattr... yes

You can try to get more information by running bindfs -d ... and watching the console as you try to copy the directory.

If you're using MacFUSE, try OS X FUSE, and vice versa.

patrickhno commented 11 years ago

Seems ok, but I get some no's here further down. Don't know if they are relevant, but you may know:

checking for setxattr... yes
checking for getxattr... yes
checking for listxattr... yes
checking for removexattr... yes
checking for lsetxattr... no
checking for lgetxattr... no
checking for llistxattr... no
checking for lremovexattr... no

Yeah, could be osxfuse issue.

mpartel commented 11 years ago

The l variants are linux-specific so that is ok.

osxfuse does introduce some OS X -specific extensions. I suspect that bindfs should somehow use those on OS X. Perhaps I'll see if I can get osxfuse and bindfs to compile on something like PureDarwin..

myitcv commented 9 years ago

I experience the same behaviour.

File creation is enough to trigger the problem, but not from the Terminal. Steps to reproduce:

  1. Using Finder, navigate to a file you are happy to copy to the bindfs mount
  2. Cmd-C to copy the file
  3. Using Finder, navigate to a directory within the bindfs mount
  4. Cmd-V to paste the file
  5. You will see the -50 error reported above

Modifying the file contents of an existing file is fine, which ties in with your theory of it being related to extended attributes.

Doing a mount with --xattr-none is enough of a work around for me.