summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/os-specific/linux/fuse/builder.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/fuse/builder.sh b/pkgs/os-specific/linux/fuse/builder.sh
index c0c468e228b..5f0d53954e7 100644
--- a/pkgs/os-specific/linux/fuse/builder.sh
+++ b/pkgs/os-specific/linux/fuse/builder.sh
@@ -4,4 +4,13 @@ export MOUNT_FUSE_PATH=$out/sbin
 export INIT_D_PATH=$out/etc/init.d
 export UDEV_RULES_PATH=$out/etc/udev/rules.d
 
+# This is ugly.  Normally, FUSE executes $out/bin/fusermount to mount
+# the file system.  However, fusermount should be setuid root, but Nix
+# doesn't support setuid binaries, so fusermount will fail.  By
+# setting FUSERMOUNT_DIR to a non-existant path, FUSE will fall back
+# to searching for fusermount in $PATH.  The user is responsible for
+# (e.g.) setting up a setuid-wrapper for fusermount and adding it to
+# $PATH.
+export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/no-such-path\""
+
 genericBuild