aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--configure.in10
-rw-r--r--lib/Makefile.am8
-rw-r--r--lib/mount.c6
-rwxr-xr-xmakeconf.sh2
5 files changed, 32 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c9408a..dc1cb57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,11 @@
-2006-04-01 Csaba Henk <csaba.henk@creo.hu>
+2007-04-05 Miklos Szeredi <miklos@szeredi.hu>
+
+ * Check for iconv. Patch by Csaba Henk
+
+ * Add direct umounting
+
+2007-04-01 Csaba Henk <csaba.henk@creo.hu>
+
* Fix some FreeBSD related macros.
2007-03-30 Miklos Szeredi <miklos@szeredi.hu>
diff --git a/configure.in b/configure.in
index 1ea4edf..d722d16 100644
--- a/configure.in
+++ b/configure.in
@@ -68,6 +68,16 @@ AC_SEARCH_LIBS(dlopen, [dl])
AC_SEARCH_LIBS(clock_gettime, [rt])
libfuse_libs="$libfuse_libs $LIBS"
LIBS=
+AC_ARG_WITH([libiconv-prefix],
+[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
+ for dir in `echo "$withval" | tr : ' '`; do
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
+ done
+ ])
+AM_ICONV
+libfuse_libs="$libfuse_libs $LIBICONV"
+AM_CONDITIONAL(ICONV, test "$am_cv_func_iconv" = yes)
AC_SUBST(libfuse_libs)
if test -z "$MOUNT_FUSE_PATH"; then
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 983c01f..40f7014 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -11,6 +11,12 @@ else
mount_source = mount.c
endif
+if ICONV
+iconv_source = modules/iconv.c
+else
+iconv_source =
+endif
+
libfuse_la_SOURCES = \
fuse.c \
fuse_i.h \
@@ -25,7 +31,7 @@ libfuse_la_SOURCES = \
fuse_signals.c \
helper.c \
modules/subdir.c \
- modules/iconv.c \
+ $(iconv_source) \
$(mount_source)
libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:0 \
diff --git a/lib/mount.c b/lib/mount.c
index cdfd7d2..5232737 100644
--- a/lib/mount.c
+++ b/lib/mount.c
@@ -259,13 +259,13 @@ static int receive_fd(int fd)
void fuse_kern_unmount(const char *mountpoint, int fd)
{
+ int res;
int pid;
if (!mountpoint)
return;
if (fd != -1) {
- int res;
struct pollfd pfd;
pfd.fd = fd;
@@ -277,6 +277,10 @@ void fuse_kern_unmount(const char *mountpoint, int fd)
return;
}
+ res = umount2(mountpoint, 2);
+ if (res == 0)
+ return;
+
pid = fork();
if(pid == -1)
return;
diff --git a/makeconf.sh b/makeconf.sh
index 99edae5..f21378d 100755
--- a/makeconf.sh
+++ b/makeconf.sh
@@ -3,6 +3,8 @@
echo Running libtoolize...
libtoolize --automake -c -f
+cp /usr/share/gettext/config.rpath .
+
if test ! -z "`which autoreconf`"; then
echo Running autoreconf...
autoreconf -i -f