Files
nixpkgs/pkgs/by-name/tu/tup/fusermount-setuid.patch
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

32 lines
870 B
Diff

# Tup needs a setuid fusermount which may be outside $PATH.
diff --git a/src/tup/server/fuse_server.c b/src/tup/server/fuse_server.c
index d4ab648d..2dc9294b 100644
--- a/src/tup/server/fuse_server.c
+++ b/src/tup/server/fuse_server.c
@@ -105,16 +105,21 @@ static void *fuse_thread(void *arg)
#if defined(__linux__)
static int os_unmount(void)
{
- int rc;
#ifdef FUSE3
- rc = system("fusermount3 -u -z " TUP_MNT);
+#define FUSERMOUNT "fusermount3"
#else
- rc = system("fusermount -u -z " TUP_MNT);
+#define FUSERMOUNT "fusermount"
#endif
+ int rc;
+ const char *cmd = (access("/run/wrappers/bin/" FUSERMOUNT, X_OK) == 0)
+ ? "/run/wrappers/bin/" FUSERMOUNT " -u -z " TUP_MNT
+ : FUSERMOUNT " -u -z " TUP_MNT;
+ rc = system(cmd);
if(rc == -1) {
perror("system");
}
return rc;
+#undef FUSERMOUNT
}
#elif defined(__APPLE__)
static int os_unmount(void)