gittup/tup — comment on commit 31374181fefd8561bab7b01c3aa508973afd23f4
File: src/tup/server/fuse_server.c line 241
By gittup:

The only part related to fuse4x I think is that I use -oallow_other in
fuse_server.c instead of -oallow_root like on linux. The other OSX
issue is that it doesn't support bind-mounts, which is just an OS
limitation, not a fuse4x limitation. To see the behavior, change the
-oallow_other to -oallow_root, build tup, and then you have to make
the tup executable owned by root and suid:

sudo chown root:wheel tup; sudo chmod u+s tup

(At some point there may be a new TUP_CONFIG variable to do this
automatically when building, but obviously it needs sudo to work so it
would be off by default).

Now that tup is suid you can run a test case:
$ ./test.sh t4000-compile-c.sh
--- Run t4000-compile-c.sh ---
.tup repository initialized.
[ tup ] Scanning filesystem...0.001s
[ tup ] Reading in new environment variables...
[ tup ] Parsing Tupfiles...
[ 1/1 ] .
[ tup ] No files to delete.
[ tup ] Executing Commands...
[ 1/2 ] gcc -c foo.c -o foo.o
mount: Operation not permitted
tup error: Unable to bind-mount /dev into fuse file-system.
*** tup errors ***
*** Command ID=8 failed with return value 1
*** Failed to update!
*** t4000-compile-c.sh failed

When I use -oallow_other it seems to work as expected.

-Mike

On Mon, Dec 19, 2011 at 1:00 AM, Anatol

wrote:
> I would like to clarify whether it is a bug in fuse4x or it is expected behavior. How to reproduce the problem you describe?
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/gittup/tup/commit/31374181fefd8561bab7b01c3aa508973afd23f4#commitcomment-805184