From c49573731c2b9286fc9773840da1a4fa8597dc70 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Thu, 5 Apr 2007 17:39:58 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 9 ++++++++- configure.in | 10 ++++++++++ lib/Makefile.am | 8 +++++++- lib/mount.c | 6 +++++- makeconf.sh | 2 ++ 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 +2007-04-05 Miklos Szeredi + + * Check for iconv. Patch by Csaba Henk + + * Add direct umounting + +2007-04-01 Csaba Henk + * Fix some FreeBSD related macros. 2007-03-30 Miklos Szeredi 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 -- 2.30.2