Allow overriding the path of various /sbin helpers at build time
ntfs-3g uses several external programs at runtime: - /sbin/mount - /sbin/umount - /sbin/modprobe Allow overriding the paths to these binaries at build time instead of requiring their presence at these specific expected paths. The default values keep being their (most common) /sbin location.pull/39/head
parent
31d73a11ee
commit
b44a5070d4
24
configure.ac
24
configure.ac
|
@ -185,6 +185,30 @@ AC_ARG_ENABLE(
|
|||
]
|
||||
)
|
||||
|
||||
AC_ARG_WITH(
|
||||
[mount-helper],
|
||||
[AS_HELP_STRING([--with-mount-helper=BIN],[use the specified binary as mount helper @<:@default=/sbin/mount@:>@])],
|
||||
[mount_helper="$withval"],
|
||||
[mount_helper="/sbin/mount"]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED([MOUNT_HELPER], ["$mount_helper"], [Binary used as mount helper.])
|
||||
|
||||
AC_ARG_WITH(
|
||||
[umount-helper],
|
||||
[AS_HELP_STRING([--with-umount-helper=BIN],[use the specified binary as umount helper @<:@default=/sbin/umount@:>@])],
|
||||
[umount_helper="$withval"],
|
||||
[umount_helper="/sbin/umount"]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED([UMOUNT_HELPER], ["$umount_helper"], [Binary used as umount helper.])
|
||||
|
||||
AC_ARG_WITH(
|
||||
[modprobe-helper],
|
||||
[AS_HELP_STRING([--with-modprobe-helper=BIN],[use the specified binary as modprobe helper @<:@default=/sbin/modprobe@:>@])],
|
||||
[modprobe_helper="$withval"],
|
||||
[modprobe_helper="/sbin/modprobe"]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED([MODPROBE_HELPER], ["$modprobe_helper"], [Binary used as modprobe helper.])
|
||||
|
||||
# pthread_rwlock_t requires _GNU_SOURCE
|
||||
AC_GNU_SOURCE
|
||||
|
||||
|
|
|
@ -89,10 +89,10 @@ int fuse_mnt_add_mount(const char *progname, const char *fsname,
|
|||
exit(1);
|
||||
}
|
||||
rmdir(tmp);
|
||||
execle("/sbin/mount", "/sbin/mount", "-F", type, "-o", opts,
|
||||
execle(MOUNT_HELPER, MOUNT_HELPER, "-F", type, "-o", opts,
|
||||
fsname, mnt, NULL, &env);
|
||||
fprintf(stderr, "%s: failed to execute /sbin/mount: %s\n", progname,
|
||||
strerror(errno));
|
||||
fprintf(stderr, "%s: failed to execute %s: %s\n", progname,
|
||||
MOUNT_HELPER, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
res = waitpid(res, &status, 0);
|
||||
|
@ -126,14 +126,14 @@ int fuse_mnt_umount(const char *progname, const char *mnt, int lazy)
|
|||
|
||||
setuid(geteuid());
|
||||
if (lazy) {
|
||||
execle("/sbin/umount", "/sbin/umount", mnt,
|
||||
execle(UMOUNT_HELPER, UMOUNT_HELPER, mnt,
|
||||
NULL, &env);
|
||||
} else {
|
||||
execle("/sbin/umount", "/sbin/umount", "-f", mnt,
|
||||
execle(UMOUNT_HELPER, UMOUNT_HELPER, "-f", mnt,
|
||||
NULL, &env);
|
||||
}
|
||||
fprintf(stderr, "%s: failed to execute /sbin/umount: %s\n", progname,
|
||||
strerror(errno));
|
||||
fprintf(stderr, "%s: failed to execute %s: %s\n", progname,
|
||||
UMOUNT_HELPER, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
res = waitpid(res, &status, 0);
|
||||
|
|
|
@ -4463,7 +4463,7 @@ static fuse_fstype load_fuse_module(void)
|
|||
int i;
|
||||
struct stat st;
|
||||
pid_t pid;
|
||||
const char *cmd = "/sbin/modprobe";
|
||||
const char *cmd = MODPROBE_HELPER;
|
||||
char *env = (char*)NULL;
|
||||
struct timespec req = { 0, 100000000 }; /* 100 msec */
|
||||
fuse_fstype fstype;
|
||||
|
|
|
@ -4171,7 +4171,7 @@ static fuse_fstype load_fuse_module(void)
|
|||
int i;
|
||||
struct stat st;
|
||||
pid_t pid;
|
||||
const char *cmd = "/sbin/modprobe";
|
||||
const char *cmd = MODPROBE_HELPER;
|
||||
char *env = (char*)NULL;
|
||||
struct timespec req = { 0, 100000000 }; /* 100 msec */
|
||||
fuse_fstype fstype;
|
||||
|
|
Loading…
Reference in New Issue