find attached the announced patch for fuse.
authorTravis Kemen <thepeople@openwrt.org>
Sun, 14 Mar 2010 02:01:14 +0000 (02:01 +0000)
committerTravis Kemen <thepeople@openwrt.org>
Sun, 14 Mar 2010 02:01:14 +0000 (02:01 +0000)
changes:
- latest fuse 2.8.3
- includes now the kernel module for kernel 2.4
- builds parallel
- fuse-utils includes now ulockmgr_server

fuse24 should be deleted from trunk.

bud

SVN-Revision: 20190

16 files changed:
package/fuse/Makefile
package/fuse/patches-kernel24/101-kmod_build.patch [new file with mode: 0644]
package/fuse/patches-kernel24/102-no_depmod.patch [new file with mode: 0644]
package/fuse/patches-kernel24/112-no_break_on_mknod.patch [new file with mode: 0644]
package/fuse/patches-kernel24/113-DCACHE_BUG.patch [new file with mode: 0644]
package/fuse/patches/100-cross_compile.patch
package/fuse/patches/102-no_depmod.patch
package/fuse/patches/112-no_break_on_mknod.patch
package/fuse/patches/200-disable_compat.patch
package/fuse/patches/300-workaround-uclibc-pthread-breakage.patch
package/fuse24/Makefile [deleted file]
package/fuse24/files/fuse24.init [deleted file]
package/fuse24/patches/101-kmod_build.patch [deleted file]
package/fuse24/patches/102-no_depmod.patch [deleted file]
package/fuse24/patches/112-no_break_on_mknod.patch [deleted file]
package/fuse24/patches/113-DCACHE_BUG.patch [deleted file]

index 152c540..17c5269 100644 (file)
@@ -1,5 +1,5 @@
 # 
-# Copyright (C) 2006-2009 OpenWrt.org
+# Copyright (C) 2006-2010 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,12 +9,22 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=fuse
-PKG_VERSION:=2.7.4
-PKG_RELEASE:=2
+PKG_VERSION:=2.8.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_MD5SUM:=4879f06570d2225667534c37fea04213
+PKG_MD5SUM:=517c8384f915e40647bda9f71579fd97
+
+PKG_INSTALL:=1
+
+# Kernel 2.4 Module
+FUSE24_VERSION=2.5.3
+FUSE24_SOURCE:=$(PKG_NAME)-$(FUSE24_VERSION).tar.gz
+FUSE24_MD5SUM:=9c7e8b6606b9f158ae20b8521ba2867c
+FUSE24_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(FUSE24_VERSION)
+FUSE24_INSTALL_DIR:=$(FUSE24_BUILD_DIR)/ipkg-install
+FUSE24_PATCH_DIR:=./patches-kernel24
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -38,18 +48,24 @@ endef
 
 define Package/fuse-utils/description
 $(call Package/fuse/Default/description)
- This package contains the FUSE utility 'fusermount'.
+ This package contains the FUSE utilities.
+ - fusermount
+ - ulockmgr_server
 endef
 
 define KernelPackage/fuse
-$(call Package/fuse/Default)
-  SUBMENU:=Filesystems
-  DEPENDS:=@LINUX_2_6
-  TITLE+= (kernel module)
-  KCONFIG:= CONFIG_FUSE_FS
-  FILES:=$(LINUX_DIR)/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,80,fuse)
-  VERSION:=$(LINUX_VERSION)
+       $(call Package/fuse/Default)
+       SUBMENU:=Filesystems
+       TITLE+= (kernel module)
+       ifeq ($(KERNEL),2.4)
+               FILES:=$(FUSE24_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/kernel/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
+               VERSION:=$(LINUX_VERSION)+$(FUSE24_VERSION)-$(PKG_RELEASE)
+       else
+               KCONFIG:= CONFIG_FUSE_FS
+               FILES:=$(LINUX_DIR)/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
+               VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)
+       endif
+       AUTOLOAD:=$(call AutoLoad,80,fuse)
 endef
 
 define KernelPackage/fuse/description
@@ -62,76 +78,144 @@ $(call Package/fuse/Default)
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE+= (library)
-  DEPENDS:=+LINUX_2_4:kmod-fuse24 +LINUX_2_6:kmod-fuse
+  DEPENDS:=kmod-fuse
   SUBMENU:=Filesystem
 endef
 
 define Package/libfuse/description
 $(call Package/fuse/Default/description)
- This package contains the FUSE shared library, needed by other programs.
+ This package contains the FUSE shared libraries, needed by other programs.
+ - libfuse
+ - libulockmgr
 endef
 
-CONFIGURE_VARS += \
-        kernsrcver="$(LINUX_VERSION)"
-
+# generic args
 CONFIGURE_ARGS += \
        --enable-shared \
        --enable-static \
        --disable-rpath \
-       --enable-lib \
-       --enable-util \
        --disable-example \
-       --disable-auto-modprobe \
-       --with-kernel="$(LINUX_DIR)" \
        --disable-mtab 
 
-# Since kernel 2.6.14 the fuse module is officially part of the kernel. 
-# Generally it is better to use the kernel's module. Because it is patched
-# against the DCACHE BUG on arm architectures (currently brcm-2.4, brcm-47xx) 
-# and from fuse 2.8.0 on it will be removed from the fuse package anyway.
-#
-CONFIGURE_ARGS += --disable-kernel-module
+# kmod 2.4 args
+FUSE24_CONFIGURE_ARGS := $(CONFIGURE_ARGS) \
+       --disable-lib --disable-util \
+       --enable-kernel-module --disable-auto-modprobe \
+       --with-kernel="$(LINUX_DIR)"
+
+# generic package uses lib & utils
+CONFIGURE_ARGS += --enable-lib --enable-util
+
+####### FUSE24 - START ######
+### if we're on kernel 2.4 build a kernel 2.4 compatible fuse module from older version, see also
+### http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FAQ#What_version_of_FUSE_do_I_need_to_use_FUSE_with_Linux_2.4.3F
+ifeq ($(KERNEL),2.4)
+
+define Download/fuse24
+       FILE:=$(FUSE24_SOURCE)
+       URL:=$(PKG_SOURCE_URL)
+       MD5SUM:=$(FUSE24_MD5SUM)
+endef
+$(eval $(call Download,fuse24))
+
+define Build/Prepare/fuse24
+       rm -rf $(FUSE24_BUILD_DIR)/
+       mkdir -p $(FUSE24_BUILD_DIR)/
+       $(TAR) -xzf $(DL_DIR)/$(FUSE24_SOURCE) -C $(FUSE24_BUILD_DIR)/..
+endef
+
+define Build/Patch/fuse24
+       $(call PatchDir,$(FUSE24_BUILD_DIR),$(FUSE24_PATCH_DIR),)
+endef
+
+define Build/Configure/fuse24
+       (cd $(FUSE24_BUILD_DIR); \
+               rm -rf config.{cache,status} ; \
+               $(CONFIGURE_VARS) \
+               ./configure \
+                       $(FUSE24_CONFIGURE_ARGS) \
+       );
+endef
+
+define Build/Compile/fuse24
+       $(MAKE) -C $(FUSE24_BUILD_DIR)/$(MAKE_PATH) \
+               ARCH="$(LINUX_KARCH)" \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               all;
+endef
+
+define Build/Install/fuse24
+       rm -rf $(FUSE24_INSTALL_DIR)
+       mkdir -p $(FUSE24_INSTALL_DIR)
+       $(MAKE) -C $(FUSE24_BUILD_DIR) \
+               ARCH="$(LINUX_KARCH)" \
+               CROSS_COMPILE="$(TARGET_CROSS)" \
+               DESTDIR="$(FUSE24_INSTALL_DIR)" \
+               install
+endef
+
+define Build/Prepare
+       @echo "--> Build/Prepare enter"
+       $(call Build/Prepare/fuse24)
+       $(call Build/Patch/fuse24)
+       $(call Build/Prepare/Default)
+       @echo "--> Build/Prepare leave"
+endef
 
 define Build/Configure
-       (cd $(PKG_BUILD_DIR); rm -f config.cache; \
-               touch configure.in ; \
-               touch aclocal.m4 ; \
-               touch Makefile.in ; \
-               touch include/config.h.in ; \
-               touch configure ; \
-       )
+       @echo "--> Build/Configure enter"
+       $(call Build/Configure/fuse24)
        $(call Build/Configure/Default)
+       @echo "--> Build/Configure leave"
 endef
 
 define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               ARCH="$(LINUX_KARCH)" \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               AM_CFLAGS="$(TARGET_CFLAGS) -DDISABLE_COMPAT=1" \
-               EXTRA_DIST="" \
-               all install
+       @echo "--> Build/Compile enter"
+       $(call Build/Compile/fuse24)
+       $(call Build/Compile/Default)
+       @echo "--> Build/Compile leave"
+endef
+
+define Build/Install
+       @echo "--> Build/Install enter"
+       $(call Build/Install/fuse24)
+       $(call Build/Install/Default)
+       @echo "--> Build/Install leave"
 endef
 
+endif
+####### FUSE24 - END ######
+
 define Build/InstallDev
+       @echo "--> Build/InstallDev enter"
        mkdir -p $(1)/usr/include
-       $(CP)   $(PKG_INSTALL_DIR)/usr/include/fuse{,.h} $(1)/usr/include/
+       $(CP)   $(PKG_INSTALL_DIR)/usr/include/{fuse,*.h} $(1)/usr/include/
        mkdir -p $(1)/usr/lib
-       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/libfuse.{a,so*} $(1)/usr/lib/
+       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} $(1)/usr/lib/
        mkdir -p $(1)/usr/lib/pkgconfig
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fuse.pc $(1)/usr/lib/pkgconfig/
        $(SED) 's,-I$$$${includedir}/fuse,,g' $(1)/usr/lib/pkgconfig/fuse.pc
        $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/fuse.pc
+       @echo "--> Build/InstallDev leave"
 endef
 
 define Package/fuse-utils/install
+       @echo "--> Package/fuse-utils/install enter"
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fusermount $(1)/usr/bin/
+       # use cp and keep fusermount sticky bit
+       $(FIND) $(PKG_INSTALL_DIR)/usr/bin/ -type f -exec $(CP) -a {} $(1)/usr/bin/ \;
+       @echo "--> Package/fuse-utils/install leave"
 endef
 
 define Package/libfuse/install
+       @echo "--> Package/libfuse/install enter"
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfuse.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
+       @echo "--> Package/libfuse/install leave"
+endef
+
+define Package/kmod-fuse/install
+       @echo "--> Package/kmod-fuse/install enter/leave"
 endef
 
 $(eval $(call BuildPackage,fuse-utils))
diff --git a/package/fuse/patches-kernel24/101-kmod_build.patch b/package/fuse/patches-kernel24/101-kmod_build.patch
new file mode 100644 (file)
index 0000000..08cf0a8
--- /dev/null
@@ -0,0 +1,45 @@
+--- a/kernel/Makefile.in
++++ b/kernel/Makefile.in
+@@ -54,23 +54,8 @@ distdir: $(DISTFILES) $(COMPATDISTFILES)
+ ifeq ($(majver), 2.4)
+-CC = gcc
+-LD = ld
+-CFLAGS = -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -pipe @KERNELCFLAGS@
+-CPPFLAGS = -I@kernelsrc@/include -I. -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DFUSE_VERSION=\"$(VERSION)\" @KERNELCPPFLAGS@
+-
+ fuse_objs = dev.o dir.o file.o inode.o compat/parser.o
+-SUFFIXES = .c .o .s
+-
+-all-spec: fuse.o
+-
+-.c.o:
+-      $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+-
+-fuse.o: $(fuse_objs)
+-      $(LD) -r -o fuse.o $(fuse_objs)
+-
+ fuse_headers = fuse_i.h fuse_kernel.h
+ dev.o: $(fuse_headers)
+@@ -78,6 +63,18 @@ dir.o: $(fuse_headers)
+ file.o: $(fuse_headers)
+ inode.o: $(fuse_headers)
++EXTRA_CFLAGS += -DFUSE_VERSION=\"$(VERSION)\"
++
++O_TARGET := fuse.o
++
++obj-y := $(fuse_objs) 
++obj-m := $(O_TARGET)
++
++-include $(TOPDIR)/Rules.make
++
++all-spec:
++      $(MAKE) -C @kernelsrc@ TOPDIR=@kernelsrc@ SUBDIRS=$(PWD) modules
++
+ else
+ EXTRA_CFLAGS += -DFUSE_VERSION=\"$(VERSION)\"
diff --git a/package/fuse/patches-kernel24/102-no_depmod.patch b/package/fuse/patches-kernel24/102-no_depmod.patch
new file mode 100644 (file)
index 0000000..e0a1449
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/kernel/Makefile.in
++++ b/kernel/Makefile.in
+@@ -31,11 +31,9 @@ all-y: all-spec
+ install-y: all
+       $(mkdir_p) $(DESTDIR)$(fusemoduledir)
+       $(INSTALL) -m 644 $(fusemodule) $(DESTDIR)$(fusemoduledir)/$(fusemodule)
+-      -/sbin/depmod -a
+ uninstall-y:
+       rm -f $(DESTDIR)$(fusemoduledir)/$(fusemodule)
+-      -/sbin/depmod -a
+ clean:
+       -rm -f $(fusemodule) *.o .*.cmd *.mod.c *.ko *.s */*.o
diff --git a/package/fuse/patches-kernel24/112-no_break_on_mknod.patch b/package/fuse/patches-kernel24/112-no_break_on_mknod.patch
new file mode 100644 (file)
index 0000000..1c1e466
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/util/Makefile.in
++++ b/util/Makefile.in
+@@ -453,7 +453,7 @@ uninstall-am: uninstall-binPROGRAMS unin
+ install-exec-hook:
+       -chown root $(DESTDIR)$(bindir)/fusermount
+       -chmod u+s $(DESTDIR)$(bindir)/fusermount
+-      @if test ! -e $(DESTDIR)/dev/fuse; then \
++      -@if test ! -e $(DESTDIR)/dev/fuse; then \
+               $(mkdir_p) $(DESTDIR)/dev; \
+               echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229"; \
+               mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229; \
diff --git a/package/fuse/patches-kernel24/113-DCACHE_BUG.patch b/package/fuse/patches-kernel24/113-DCACHE_BUG.patch
new file mode 100644 (file)
index 0000000..da0d27c
--- /dev/null
@@ -0,0 +1,73 @@
+--- a/kernel/dev.c
++++ b/kernel/dev.c
+@@ -512,6 +512,9 @@ static int fuse_copy_fill(struct fuse_co
+ {
+       unsigned long offset;
+       int err;
++#ifdef DCACHE_BUG
++      struct vm_area_struct *vma;
++#endif
+       unlock_request(cs->req);
+       fuse_copy_finish(cs);
+@@ -523,14 +526,22 @@ static int fuse_copy_fill(struct fuse_co
+               cs->nr_segs --;
+       }
+       down_read(&current->mm->mmap_sem);
++#ifndef DCACHE_BUG
+       err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
+                            &cs->pg, NULL);
++#else
++      err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
++                           &cs->pg, &vma);
++#endif
+       up_read(&current->mm->mmap_sem);
+       if (err < 0)
+               return err;
+       BUG_ON(err != 1);
+       offset = cs->addr % PAGE_SIZE;
+       cs->mapaddr = kmap_atomic(cs->pg, KM_USER0);
++#ifdef DCACHE_BUG
++      r4k_flush_cache_page(vma, cs->addr); 
++#endif
+       cs->buf = cs->mapaddr + offset;
+       cs->len = min(PAGE_SIZE - offset, cs->seglen);
+       cs->seglen -= cs->len;
+@@ -545,6 +556,11 @@ static inline int fuse_copy_do(struct fu
+ {
+       unsigned ncpy = min(*size, cs->len);
+       if (val) {
++#ifdef DCACHE_BUG
++              // patch from mailing list, it is very important, otherwise,
++              // can't mount, or ls mount point will hang
++              flush_cache_all();
++#endif
+               if (cs->write)
+                       memcpy(cs->buf, *val, ncpy);
+               else
+--- a/kernel/fuse_i.h
++++ b/kernel/fuse_i.h
+@@ -45,6 +45,10 @@
+ #  endif
+ #endif
++//#if defined(__arm__) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++#define DCACHE_BUG
++//#endif
++
+ #include "config.h"
+ #ifndef KERNEL_2_6
+ #  include <linux/config.h>
+--- a/kernel/inode.c
++++ b/kernel/inode.c
+@@ -739,6 +739,10 @@ static int __init fuse_init(void)
+       printk("fuse distribution version: %s\n", FUSE_VERSION);
+ #endif
++#ifdef DCACHE_BUG
++printk("fuse init: DCACHE_BUG enabled\n");
++#endif
++
+       spin_lock_init(&fuse_lock);
+       res = fuse_fs_init();
+       if (res)
index 54a4d59..e69de29 100644 (file)
@@ -1,14 +0,0 @@
-diff -Nru fuse-2.7.3.orig/kernel/configure fuse-2.7.3/kernel/configure
---- fuse-2.7.3.orig/kernel/configure   2008-02-19 15:00:19.000000000 -0500
-+++ fuse-2.7.3/kernel/configure        2008-03-17 14:10:14.000000000 -0400
-@@ -1851,7 +1851,9 @@
-       { echo "$as_me:$LINENO: checking kernel source version" >&5
- echo $ECHO_N "checking kernel source version... $ECHO_C" >&6; }
--      if test -r $kernelbuild/include/linux/version.h && fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-+      if [ -n "$kernsrcver" ]; then
-+              echo "$kernsrcver (cached)"
-+      elif test -r $kernelbuild/include/linux/version.h && fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-               kernsrcver=`(echo "#include <linux/version.h>"; echo "kernsrcver=UTS_RELEASE") | cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2`
-       elif test -r $kernelbuild/include/linux/utsrelease.h && fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
-               kernsrcver=`(echo "#include <linux/utsrelease.h>"; echo "kernsrcver=UTS_RELEASE") | cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2`
index ee86942..e69de29 100644 (file)
@@ -1,15 +0,0 @@
-diff -Nru fuse-2.7.3.orig/kernel/Makefile.in fuse-2.7.3/kernel/Makefile.in
---- fuse-2.7.3.orig/kernel/Makefile.in 2006-12-09 13:51:13.000000000 -0500
-+++ fuse-2.7.3/kernel/Makefile.in      2008-03-17 14:12:32.000000000 -0400
-@@ -25,11 +25,9 @@
- install-y: all
-       $(mkdir_p) $(DESTDIR)$(fusemoduledir)
-       $(INSTALL) -m 644 $(fusemodule) $(DESTDIR)$(fusemoduledir)/$(fusemodule)
--      -/sbin/depmod -a
- uninstall-y:
-       rm -f $(DESTDIR)$(fusemoduledir)/$(fusemodule)
--      -/sbin/depmod -a
- clean:
-       -rm -f $(fusemodule) *.o .*.cmd *.mod.c *.ko *.s */*.o
index 911d25c..a992d8c 100644 (file)
@@ -1,6 +1,7 @@
---- fuse-2.7.3.orig/util/Makefile.in   2008-02-19 15:00:55.000000000 -0500
-+++ fuse-2.7.3/util/Makefile.in        2008-03-17 14:14:10.000000000 -0400
-@@ -528,7 +528,7 @@
+diff -Nurp fuse-2.8.1.orig/util/Makefile.in fuse-2.8.1/util/Makefile.in
+--- fuse-2.8.1.orig/util/Makefile.in   2009-09-11 12:50:00.000000000 +0200
++++ fuse-2.8.1/util/Makefile.in        2009-12-17 01:05:15.720554385 +0100
+@@ -543,7 +543,7 @@ uninstall-am: uninstall-binPROGRAMS unin
  install-exec-hook:
        -chown root $(DESTDIR)$(bindir)/fusermount
        -chmod u+s $(DESTDIR)$(bindir)/fusermount
index 12203d3..e69de29 100644 (file)
@@ -1,613 +0,0 @@
-diff -Nru fuse-2.7.3.orig/include/fuse_common_compat.h fuse-2.7.3/include/fuse_common_compat.h
---- fuse-2.7.3.orig/include/fuse_common_compat.h       2008-02-19 14:51:23.000000000 -0500
-+++ fuse-2.7.3/include/fuse_common_compat.h    2008-03-17 14:55:01.000000000 -0400
-@@ -17,6 +17,7 @@
-       unsigned int keep_cache : 1;
- };
-+#ifndef DISABLE_COMPAT
- int fuse_mount_compat25(const char *mountpoint, struct fuse_args *args);
- int fuse_mount_compat22(const char *mountpoint, const char *opts);
-@@ -24,3 +25,4 @@
- int fuse_mount_compat1(const char *mountpoint, const char *args[]);
- void fuse_unmount_compat22(const char *mountpoint);
-+#endif
-diff -Nru fuse-2.7.3.orig/lib/fuse.c fuse-2.7.3/lib/fuse.c
---- fuse-2.7.3.orig/lib/fuse.c 2008-02-19 14:51:25.000000000 -0500
-+++ fuse-2.7.3/lib/fuse.c      2008-03-17 15:04:54.000000000 -0400
-@@ -14,8 +14,6 @@
- #include "fuse_lowlevel.h"
- #include "fuse_opt.h"
- #include "fuse_misc.h"
--#include "fuse_common_compat.h"
--#include "fuse_compat.h"
- #include <stdio.h>
- #include <string.h>
-@@ -626,129 +624,6 @@
-               fuse_do_prepare_interrupt(req, d);
- }
--#ifndef __FreeBSD__
--
--static int fuse_compat_open(struct fuse_fs *fs, const char *path,
--                          struct fuse_file_info *fi)
--{
--      int err;
--      if (!fs->compat || fs->compat >= 25)
--              err = fs->op.open(path, fi);
--      else if (fs->compat == 22) {
--              struct fuse_file_info_compat tmp;
--              memcpy(&tmp, fi, sizeof(tmp));
--              err = ((struct fuse_operations_compat22 *) &fs->op)->open(path,
--                                                                        &tmp);
--              memcpy(fi, &tmp, sizeof(tmp));
--              fi->fh = tmp.fh;
--      } else
--              err = ((struct fuse_operations_compat2 *) &fs->op)
--                      ->open(path, fi->flags);
--      return err;
--}
--
--static int fuse_compat_release(struct fuse_fs *fs, const char *path,
--                             struct fuse_file_info *fi)
--{
--      if (!fs->compat || fs->compat >= 22)
--              return fs->op.release(path, fi);
--      else
--              return ((struct fuse_operations_compat2 *) &fs->op)
--                      ->release(path, fi->flags);
--}
--
--static int fuse_compat_opendir(struct fuse_fs *fs, const char *path,
--                             struct fuse_file_info *fi)
--{
--      if (!fs->compat || fs->compat >= 25)
--              return fs->op.opendir(path, fi);
--      else {
--              int err;
--              struct fuse_file_info_compat tmp;
--              memcpy(&tmp, fi, sizeof(tmp));
--              err = ((struct fuse_operations_compat22 *) &fs->op)
--                      ->opendir(path, &tmp);
--              memcpy(fi, &tmp, sizeof(tmp));
--              fi->fh = tmp.fh;
--              return err;
--      }
--}
--
--static void convert_statfs_compat(struct fuse_statfs_compat1 *compatbuf,
--                                struct statvfs *stbuf)
--{
--      stbuf->f_bsize   = compatbuf->block_size;
--      stbuf->f_blocks  = compatbuf->blocks;
--      stbuf->f_bfree   = compatbuf->blocks_free;
--      stbuf->f_bavail  = compatbuf->blocks_free;
--      stbuf->f_files   = compatbuf->files;
--      stbuf->f_ffree   = compatbuf->files_free;
--      stbuf->f_namemax = compatbuf->namelen;
--}
--
--static void convert_statfs_old(struct statfs *oldbuf, struct statvfs *stbuf)
--{
--      stbuf->f_bsize   = oldbuf->f_bsize;
--      stbuf->f_blocks  = oldbuf->f_blocks;
--      stbuf->f_bfree   = oldbuf->f_bfree;
--      stbuf->f_bavail  = oldbuf->f_bavail;
--      stbuf->f_files   = oldbuf->f_files;
--      stbuf->f_ffree   = oldbuf->f_ffree;
--      stbuf->f_namemax = oldbuf->f_namelen;
--}
--
--static int fuse_compat_statfs(struct fuse_fs *fs, const char *path,
--                            struct statvfs *buf)
--{
--      int err;
--
--      if (!fs->compat || fs->compat >= 25) {
--              err = fs->op.statfs(fs->compat == 25 ? "/" : path, buf);
--      } else if (fs->compat > 11) {
--              struct statfs oldbuf;
--              err = ((struct fuse_operations_compat22 *) &fs->op)
--                      ->statfs("/", &oldbuf);
--              if (!err)
--                      convert_statfs_old(&oldbuf, buf);
--      } else {
--              struct fuse_statfs_compat1 compatbuf;
--              memset(&compatbuf, 0, sizeof(struct fuse_statfs_compat1));
--              err = ((struct fuse_operations_compat1 *) &fs->op)
--                      ->statfs(&compatbuf);
--              if (!err)
--                      convert_statfs_compat(&compatbuf, buf);
--      }
--      return err;
--}
--
--#else /* __FreeBSD__ */
--
--static inline int fuse_compat_open(struct fuse_fs *fs, char *path,
--                                 struct fuse_file_info *fi)
--{
--      return fs->op.open(path, fi);
--}
--
--static inline int fuse_compat_release(struct fuse_fs *fs, const char *path,
--                                    struct fuse_file_info *fi)
--{
--      return fs->op.release(path, fi);
--}
--
--static inline int fuse_compat_opendir(struct fuse_fs *fs, const char *path,
--                                    struct fuse_file_info *fi)
--{
--      return fs->op.opendir(path, fi);
--}
--
--static inline int fuse_compat_statfs(struct fuse_fs *fs, const char *path,
--                                   struct statvfs *buf)
--{
--      return fs->op.statfs(fs->compat == 25 ? "/" : path, buf);
--}
--
--#endif /* __FreeBSD__ */
--
- int fuse_fs_getattr(struct fuse_fs *fs, const char *path, struct stat *buf)
- {
-       fuse_get_context()->private_data = fs->user_data;
-@@ -821,7 +696,7 @@
- {
-       fuse_get_context()->private_data = fs->user_data;
-       if (fs->op.release)
--              return fuse_compat_release(fs, path, fi);
-+              return fs->op.release(path, fi);
-       else
-               return 0;
- }
-@@ -831,7 +706,7 @@
- {
-       fuse_get_context()->private_data = fs->user_data;
-       if (fs->op.opendir)
--              return fuse_compat_opendir(fs, path, fi);
-+              return fs->op.opendir(path, fi);
-       else
-               return 0;
- }
-@@ -841,7 +716,7 @@
- {
-       fuse_get_context()->private_data = fs->user_data;
-       if (fs->op.open)
--              return fuse_compat_open(fs, path, fi);
-+              return fs->op.open(path, fi);
-       else
-               return 0;
- }
-@@ -900,7 +775,7 @@
- {
-       fuse_get_context()->private_data = fs->user_data;
-       if (fs->op.statfs)
--              return fuse_compat_statfs(fs, path, buf);
-+              return fs->op.statfs(path, buf);
-       else {
-               buf->f_namemax = 255;
-               buf->f_bsize = 512;
-@@ -3070,7 +2945,6 @@
-       if (!fs)
-               goto out_free;
--      fs->compat = compat;
-       f->fs = fs;
-       /* Oh f**k, this is ugly! */
-@@ -3114,11 +2988,6 @@
-       f->conf.readdir_ino = 1;
- #endif
--      if (compat && compat <= 25) {
--              if (fuse_sync_compat_args(args) == -1)
--                      goto out_free_fs;
--      }
--
-       f->se = fuse_lowlevel_new_common(args, &llop, sizeof(llop), f);
-       if (f->se == NULL) {
-               if (f->conf.help)
-@@ -3254,19 +3123,6 @@
-       fuse_delete_context_key();
- }
--static struct fuse *fuse_new_common_compat25(int fd, struct fuse_args *args,
--                                           const struct fuse_operations *op,
--                                           size_t op_size, int compat)
--{
--      struct fuse *f = NULL;
--      struct fuse_chan *ch = fuse_kern_chan_new(fd);
--
--      if (ch)
--              f = fuse_new_common(ch, args, op, op_size, NULL, compat);
--
--      return f;
--}
--
- /* called with fuse_context_lock held or during initialization (before
-    main() has been called) */
- void fuse_register_module(struct fuse_module *mod)
-@@ -3278,72 +3134,3 @@
-       mod->next = fuse_modules;
-       fuse_modules = mod;
- }
--
--#ifndef __FreeBSD__
--
--static struct fuse *fuse_new_common_compat(int fd, const char *opts,
--                                         const struct fuse_operations *op,
--                                         size_t op_size, int compat)
--{
--      struct fuse *f;
--      struct fuse_args args = FUSE_ARGS_INIT(0, NULL);
--
--      if (fuse_opt_add_arg(&args, "") == -1)
--              return NULL;
--      if (opts &&
--          (fuse_opt_add_arg(&args, "-o") == -1 ||
--           fuse_opt_add_arg(&args, opts) == -1)) {
--              fuse_opt_free_args(&args);
--              return NULL;
--      }
--      f = fuse_new_common_compat25(fd, &args, op, op_size, compat);
--      fuse_opt_free_args(&args);
--
--      return f;
--}
--
--struct fuse *fuse_new_compat22(int fd, const char *opts,
--                             const struct fuse_operations_compat22 *op,
--                             size_t op_size)
--{
--      return fuse_new_common_compat(fd, opts, (struct fuse_operations *) op,
--                                    op_size, 22);
--}
--
--struct fuse *fuse_new_compat2(int fd, const char *opts,
--                            const struct fuse_operations_compat2 *op)
--{
--      return fuse_new_common_compat(fd, opts, (struct fuse_operations *) op,
--                                    sizeof(struct fuse_operations_compat2),
--                                    21);
--}
--
--struct fuse *fuse_new_compat1(int fd, int flags,
--                            const struct fuse_operations_compat1 *op)
--{
--      const char *opts = NULL;
--      if (flags & FUSE_DEBUG_COMPAT1)
--              opts = "debug";
--      return fuse_new_common_compat(fd, opts, (struct fuse_operations *) op,
--                                    sizeof(struct fuse_operations_compat1),
--                                    11);
--}
--
--FUSE_SYMVER(".symver fuse_exited,__fuse_exited@");
--FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@");
--FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@");
--FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@");
--FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@");
--FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2");
--
--#endif /* __FreeBSD__ */
--
--struct fuse *fuse_new_compat25(int fd, struct fuse_args *args,
--                             const struct fuse_operations_compat25 *op,
--                             size_t op_size)
--{
--      return fuse_new_common_compat25(fd, args, (struct fuse_operations *) op,
--                                      op_size, 25);
--}
--
--FUSE_SYMVER(".symver fuse_new_compat25,fuse_new@FUSE_2.5");
-diff -Nru fuse-2.7.3.orig/lib/fuse_lowlevel.c fuse-2.7.3/lib/fuse_lowlevel.c
---- fuse-2.7.3.orig/lib/fuse_lowlevel.c        2008-02-19 14:51:26.000000000 -0500
-+++ fuse-2.7.3/lib/fuse_lowlevel.c     2008-03-17 15:07:40.000000000 -0400
-@@ -11,8 +11,6 @@
- #include "fuse_opt.h"
- #include "fuse_i.h"
- #include "fuse_misc.h"
--#include "fuse_common_compat.h"
--#include "fuse_lowlevel_compat.h"
- #include <stdio.h>
- #include <stdlib.h>
-@@ -1319,130 +1317,3 @@
- {
-       return fuse_lowlevel_new_common(args, op, op_size, userdata);
- }
--
--
--#ifndef __FreeBSD__
--
--static void fill_open_compat(struct fuse_open_out *arg,
--                           const struct fuse_file_info_compat *f)
--{
--      arg->fh = f->fh;
--      if (f->direct_io)
--              arg->open_flags |= FOPEN_DIRECT_IO;
--      if (f->keep_cache)
--              arg->open_flags |= FOPEN_KEEP_CACHE;
--}
--
--static void convert_statfs_compat(const struct statfs *compatbuf,
--                                struct statvfs *buf)
--{
--      buf->f_bsize    = compatbuf->f_bsize;
--      buf->f_blocks   = compatbuf->f_blocks;
--      buf->f_bfree    = compatbuf->f_bfree;
--      buf->f_bavail   = compatbuf->f_bavail;
--      buf->f_files    = compatbuf->f_files;
--      buf->f_ffree    = compatbuf->f_ffree;
--      buf->f_namemax  = compatbuf->f_namelen;
--}
--
--int fuse_reply_open_compat(fuse_req_t req,
--                         const struct fuse_file_info_compat *f)
--{
--      struct fuse_open_out arg;
--
--      memset(&arg, 0, sizeof(arg));
--      fill_open_compat(&arg, f);
--      return send_reply_ok(req, &arg, sizeof(arg));
--}
--
--int fuse_reply_statfs_compat(fuse_req_t req, const struct statfs *stbuf)
--{
--      struct statvfs newbuf;
--
--      memset(&newbuf, 0, sizeof(newbuf));
--      convert_statfs_compat(stbuf, &newbuf);
--
--      return fuse_reply_statfs(req, &newbuf);
--}
--
--struct fuse_session *fuse_lowlevel_new_compat(const char *opts,
--                              const struct fuse_lowlevel_ops_compat *op,
--                              size_t op_size, void *userdata)
--{
--      struct fuse_session *se;
--      struct fuse_args args = FUSE_ARGS_INIT(0, NULL);
--
--      if (opts &&
--          (fuse_opt_add_arg(&args, "") == -1 ||
--           fuse_opt_add_arg(&args, "-o") == -1 ||
--           fuse_opt_add_arg(&args, opts) == -1)) {
--              fuse_opt_free_args(&args);
--              return NULL;
--      }
--      se = fuse_lowlevel_new(&args, (const struct fuse_lowlevel_ops *) op,
--                             op_size, userdata);
--      fuse_opt_free_args(&args);
--
--      return se;
--}
--
--struct fuse_ll_compat_conf {
--      unsigned max_read;
--      int set_max_read;
--};
--
--static const struct fuse_opt fuse_ll_opts_compat[] = {
--      { "max_read=", offsetof(struct fuse_ll_compat_conf, set_max_read), 1 },
--      { "max_read=%u", offsetof(struct fuse_ll_compat_conf, max_read), 0 },
--      FUSE_OPT_KEY("max_read=", FUSE_OPT_KEY_KEEP),
--      FUSE_OPT_END
--};
--
--int fuse_sync_compat_args(struct fuse_args *args)
--{
--      struct fuse_ll_compat_conf conf;
--
--      memset(&conf, 0, sizeof(conf));
--      if (fuse_opt_parse(args, &conf, fuse_ll_opts_compat, NULL) == -1)
--              return -1;
--
--      if (fuse_opt_insert_arg(args, 1, "-osync_read"))
--              return -1;
--
--      if (conf.set_max_read) {
--              char tmpbuf[64];
--
--              sprintf(tmpbuf, "-omax_readahead=%u", conf.max_read);
--              if (fuse_opt_insert_arg(args, 1, tmpbuf) == -1)
--                      return -1;
--      }
--      return 0;
--}
--
--FUSE_SYMVER(".symver fuse_reply_statfs_compat,fuse_reply_statfs@FUSE_2.4");
--FUSE_SYMVER(".symver fuse_reply_open_compat,fuse_reply_open@FUSE_2.4");
--FUSE_SYMVER(".symver fuse_lowlevel_new_compat,fuse_lowlevel_new@FUSE_2.4");
--
--#else /* __FreeBSD__ */
--
--int fuse_sync_compat_args(struct fuse_args *args)
--{
--      (void) args;
--      return 0;
--}
--
--#endif /* __FreeBSD__ */
--
--struct fuse_session *fuse_lowlevel_new_compat25(struct fuse_args *args,
--                              const struct fuse_lowlevel_ops_compat25 *op,
--                              size_t op_size, void *userdata)
--{
--      if (fuse_sync_compat_args(args) == -1)
--              return NULL;
--
--      return fuse_lowlevel_new_common(args,
--                                      (const struct fuse_lowlevel_ops *) op,
--                                      op_size, userdata);
--}
--
--FUSE_SYMVER(".symver fuse_lowlevel_new_compat25,fuse_lowlevel_new@FUSE_2.5");
-diff -Nru fuse-2.7.3.orig/lib/helper.c fuse-2.7.3/lib/helper.c
---- fuse-2.7.3.orig/lib/helper.c       2008-02-19 14:51:27.000000000 -0500
-+++ fuse-2.7.3/lib/helper.c    2008-03-17 15:10:18.000000000 -0400
-@@ -11,7 +11,6 @@
- #include "fuse_misc.h"
- #include "fuse_opt.h"
- #include "fuse_lowlevel.h"
--#include "fuse_common_compat.h"
- #include <stdio.h>
- #include <stdlib.h>
-@@ -206,7 +205,7 @@
-                       close(fd);
-       } while (fd >= 0 && fd <= 2);
--      fd = fuse_mount_compat25(mountpoint, args);
-+      fd = fuse_kern_mount(mountpoint, args);
-       if (fd == -1)
-               return NULL;
-@@ -353,100 +352,3 @@
- {
-       return FUSE_VERSION;
- }
--
--#include "fuse_compat.h"
--
--#ifndef __FreeBSD__
--
--struct fuse *fuse_setup_compat22(int argc, char *argv[],
--                               const struct fuse_operations_compat22 *op,
--                               size_t op_size, char **mountpoint,
--                               int *multithreaded, int *fd)
--{
--      return fuse_setup_common(argc, argv, (struct fuse_operations *) op,
--                               op_size, mountpoint, multithreaded, fd, NULL,
--                               22);
--}
--
--struct fuse *fuse_setup_compat2(int argc, char *argv[],
--                              const struct fuse_operations_compat2 *op,
--                              char **mountpoint, int *multithreaded,
--                              int *fd)
--{
--      return fuse_setup_common(argc, argv, (struct fuse_operations *) op,
--                               sizeof(struct fuse_operations_compat2),
--                               mountpoint, multithreaded, fd, NULL, 21);
--}
--
--int fuse_main_real_compat22(int argc, char *argv[],
--                          const struct fuse_operations_compat22 *op,
--                          size_t op_size)
--{
--      return fuse_main_common(argc, argv, (struct fuse_operations *) op,
--                              op_size, NULL, 22);
--}
--
--void fuse_main_compat1(int argc, char *argv[],
--                     const struct fuse_operations_compat1 *op)
--{
--      fuse_main_common(argc, argv, (struct fuse_operations *) op,
--                       sizeof(struct fuse_operations_compat1), NULL, 11);
--}
--
--int fuse_main_compat2(int argc, char *argv[],
--                    const struct fuse_operations_compat2 *op)
--{
--      return fuse_main_common(argc, argv, (struct fuse_operations *) op,
--                              sizeof(struct fuse_operations_compat2), NULL,
--                              21);
--}
--
--int fuse_mount_compat1(const char *mountpoint, const char *args[])
--{
--      /* just ignore mount args for now */
--      (void) args;
--      return fuse_mount_compat22(mountpoint, NULL);
--}
--
--FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@");
--FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2");
--FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@");
--FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@");
--FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2");
--
--#endif /* __FreeBSD__ */
--
--
--struct fuse *fuse_setup_compat25(int argc, char *argv[],
--                               const struct fuse_operations_compat25 *op,
--                               size_t op_size, char **mountpoint,
--                               int *multithreaded, int *fd)
--{
--      return fuse_setup_common(argc, argv, (struct fuse_operations *) op,
--                               op_size, mountpoint, multithreaded, fd, NULL,
--                               25);
--}
--
--int fuse_main_real_compat25(int argc, char *argv[],
--                          const struct fuse_operations_compat25 *op,
--                          size_t op_size)
--{
--      return fuse_main_common(argc, argv, (struct fuse_operations *) op,
--                              op_size, NULL, 25);
--}
--
--void fuse_teardown_compat22(struct fuse *fuse, int fd, char *mountpoint)
--{
--      (void) fd;
--      fuse_teardown_common(fuse, mountpoint);
--}
--
--int fuse_mount_compat25(const char *mountpoint, struct fuse_args *args)
--{
--      return fuse_kern_mount(mountpoint, args);
--}
--
--FUSE_SYMVER(".symver fuse_setup_compat25,fuse_setup@FUSE_2.5");
--FUSE_SYMVER(".symver fuse_teardown_compat22,fuse_teardown@FUSE_2.2");
--FUSE_SYMVER(".symver fuse_main_real_compat25,fuse_main_real@FUSE_2.5");
--FUSE_SYMVER(".symver fuse_mount_compat25,fuse_mount@FUSE_2.5");
-diff -Nru fuse-2.7.3.orig/lib/mount.c fuse-2.7.3/lib/mount.c
---- fuse-2.7.3.orig/lib/mount.c        2008-02-19 14:51:27.000000000 -0500
-+++ fuse-2.7.3/lib/mount.c     2008-03-17 15:11:02.000000000 -0400
-@@ -10,7 +10,6 @@
- #include "fuse_i.h"
- #include "fuse_misc.h"
- #include "fuse_opt.h"
--#include "fuse_common_compat.h"
- #include "mount_util.h"
- #include <stdio.h>
-@@ -312,11 +311,6 @@
-       waitpid(pid, NULL, 0);
- }
--void fuse_unmount_compat22(const char *mountpoint)
--{
--      fuse_kern_unmount(mountpoint, -1);
--}
--
- static int fuse_mount_fusermount(const char *mountpoint, const char *opts,
-                                int quiet)
- {
-@@ -380,11 +374,6 @@
-       return rv;
- }
--int fuse_mount_compat22(const char *mountpoint, const char *opts)
--{
--      return fuse_mount_fusermount(mountpoint, opts, 0);
--}
--
- static int fuse_mount_sys(const char *mnt, struct mount_opts *mo,
-                         const char *mnt_opts)
- {
-@@ -587,6 +576,3 @@
-       free(mo.mtab_opts);
-       return res;
- }
--
--FUSE_SYMVER(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");
--FUSE_SYMVER(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");
index cef5ce2..dded4d8 100644 (file)
@@ -1,6 +1,7 @@
---- fuse-2.7.3.orig/lib/helper.c       2008-11-22 03:25:11.000000000 +0100
-+++ fuse-2.7.3/lib/helper.c    2008-11-22 04:06:35.000000000 +0100
-@@ -178,13 +178,41 @@
+diff -Nurp fuse-2.8.1.orig/lib/helper.c fuse-2.8.1/lib/helper.c
+--- fuse-2.8.1.orig/lib/helper.c       2009-06-18 13:14:09.000000000 +0200
++++ fuse-2.8.1/lib/helper.c    2009-12-17 01:11:32.773356000 +0100
+@@ -180,13 +180,41 @@ err:
  int fuse_daemonize(int foreground)
  {
        int res;
diff --git a/package/fuse24/Makefile b/package/fuse24/Makefile
deleted file mode 100644 (file)
index 0604bd3..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-# 
-# Copyright (C) 2008 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=fuse
-
-PKG_VERSION:=2.5.3
-PKG_RELEASE:=3
-PKG_MD5SUM:=9c7e8b6606b9f158ae20b8521ba2867c
-
-PKG_SOURCE_URL:=@SF/$(PKG_NAME)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/fuse24/Default
-  TITLE:=FUSE for kernel 2.4
-  DEPENDS:=@LINUX_2_4
-  URL:=http://fuse.sourceforge.net/
-endef
-
-define Package/fuse24/Default/description
- FUSE for kernel 2.4 (Filesystem in UserSpacE) contains only the kernel module. 
- The libraries and utilities can be compiled from a recent FUSE version (package fuse).
- For details see:
- http://apps.sourceforge.net/mediawiki/fuse/index.php?title=FAQ#What_version_of_FUSE_do_I_need_to_use_FUSE_with_Linux_2.4.3F
-endef
-
-define KernelPackage/fuse24
-$(call Package/fuse24/Default)
-  SUBMENU:=Filesystems
-  DEPENDS:=@LINUX_2_4
-  TITLE+= (kernel module)
-  FILES:=$(PKG_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/kernel/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,80,fuse) 
-endef
-
-define KernelPackage/fuse24/description
-$(call Package/fuse24/Default/description)
- This package contains the FUSE kernel 2.4 module.
-endef
-
-define KernelPackage/fuse24/install
-       $(call $(Package/kmod-fuse24/install))
-       $(INSTALL_DIR) $(1)/etc/init.d
-       # symlinks /dev/misc/fuse to /dev/fuse on startup
-       $(INSTALL_BIN) ./files/fuse24.init $(1)/etc/init.d/fuse24
-endef
-
-define Build/Configure
-       (cd $(PKG_BUILD_DIR); \
-               rm -rf config.{cache,status} ; \
-               touch configure.in ; \
-               touch aclocal.m4 ; \
-               touch Makefile.in ; \
-               touch include/config.h.in ; \
-               touch configure ; \
-               $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               ./configure \
-                       --target=$(GNU_TARGET_NAME) \
-                       --host=$(GNU_TARGET_NAME) \
-                       --build=$(GNU_HOST_NAME) \
-                       --program-prefix="" \
-                       --program-suffix="" \
-                       --prefix=/usr \
-                       --exec-prefix=/usr \
-                       --bindir=/usr/bin \
-                       --datadir=/usr/share \
-                       --includedir=/usr/include \
-                       --infodir=/usr/share/info \
-                       --libdir=/usr/lib \
-                       --libexecdir=/usr/lib \
-                       --localstatedir=/var \
-                       --mandir=/usr/share/man \
-                       --sbindir=/usr/sbin \
-                       --sysconfdir=/etc \
-                       $(DISABLE_LARGEFILE) \
-                       $(DISABLE_NLS) \
-                       --enable-shared \
-                       --enable-static \
-                       --disable-rpath \
-                       --enable-kernel-module \
-                       --disable-example \
-                       --disable-auto-modprobe \
-                       --with-kernel=$(LINUX_DIR) \
-                       --disable-mtab \
-                       --disable-lib \
-                       --disable-util \
-       );
-endef
-
-define Build/Compile
-       rm -rf $(PKG_INSTALL_DIR)
-       mkdir -p $(PKG_INSTALL_DIR)
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               ARCH="$(LINUX_KARCH)" \
-               CROSS_COMPILE="$(TARGET_CROSS)" \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install
-endef
-
-define Build/InstallDev
-       mkdir -p $(1)/usr/include
-       $(CP)   $(PKG_INSTALL_DIR)/usr/include/fuse{,.h} $(1)/usr/include/
-       mkdir -p $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fuse.pc $(1)/usr/lib/pkgconfig/
-       $(SED) 's,-I$$$${includedir}/fuse,,g' $(1)/usr/lib/pkgconfig/fuse.pc
-       $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/fuse.pc
-endef
-
-$(eval $(call KernelPackage,fuse24))
diff --git a/package/fuse24/files/fuse24.init b/package/fuse24/files/fuse24.init
deleted file mode 100644 (file)
index 519db20..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2009 OpenWrt.org
-START=15
-
-start() {
-       if ls /lib/modules/$(uname -r)/fuse.* > /dev/null 2>&1; then
-               [ ! -d /dev/misc ] && umask 022 && mkdir /dev/misc;
-               ln -s /dev/fuse /dev/misc/;
-       fi
-}
diff --git a/package/fuse24/patches/101-kmod_build.patch b/package/fuse24/patches/101-kmod_build.patch
deleted file mode 100644 (file)
index 08cf0a8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/kernel/Makefile.in
-+++ b/kernel/Makefile.in
-@@ -54,23 +54,8 @@ distdir: $(DISTFILES) $(COMPATDISTFILES)
- ifeq ($(majver), 2.4)
--CC = gcc
--LD = ld
--CFLAGS = -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -pipe @KERNELCFLAGS@
--CPPFLAGS = -I@kernelsrc@/include -I. -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DFUSE_VERSION=\"$(VERSION)\" @KERNELCPPFLAGS@
--
- fuse_objs = dev.o dir.o file.o inode.o compat/parser.o
--SUFFIXES = .c .o .s
--
--all-spec: fuse.o
--
--.c.o:
--      $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
--
--fuse.o: $(fuse_objs)
--      $(LD) -r -o fuse.o $(fuse_objs)
--
- fuse_headers = fuse_i.h fuse_kernel.h
- dev.o: $(fuse_headers)
-@@ -78,6 +63,18 @@ dir.o: $(fuse_headers)
- file.o: $(fuse_headers)
- inode.o: $(fuse_headers)
-+EXTRA_CFLAGS += -DFUSE_VERSION=\"$(VERSION)\"
-+
-+O_TARGET := fuse.o
-+
-+obj-y := $(fuse_objs) 
-+obj-m := $(O_TARGET)
-+
-+-include $(TOPDIR)/Rules.make
-+
-+all-spec:
-+      $(MAKE) -C @kernelsrc@ TOPDIR=@kernelsrc@ SUBDIRS=$(PWD) modules
-+
- else
- EXTRA_CFLAGS += -DFUSE_VERSION=\"$(VERSION)\"
diff --git a/package/fuse24/patches/102-no_depmod.patch b/package/fuse24/patches/102-no_depmod.patch
deleted file mode 100644 (file)
index e0a1449..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/kernel/Makefile.in
-+++ b/kernel/Makefile.in
-@@ -31,11 +31,9 @@ all-y: all-spec
- install-y: all
-       $(mkdir_p) $(DESTDIR)$(fusemoduledir)
-       $(INSTALL) -m 644 $(fusemodule) $(DESTDIR)$(fusemoduledir)/$(fusemodule)
--      -/sbin/depmod -a
- uninstall-y:
-       rm -f $(DESTDIR)$(fusemoduledir)/$(fusemodule)
--      -/sbin/depmod -a
- clean:
-       -rm -f $(fusemodule) *.o .*.cmd *.mod.c *.ko *.s */*.o
diff --git a/package/fuse24/patches/112-no_break_on_mknod.patch b/package/fuse24/patches/112-no_break_on_mknod.patch
deleted file mode 100644 (file)
index 1c1e466..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/util/Makefile.in
-+++ b/util/Makefile.in
-@@ -453,7 +453,7 @@ uninstall-am: uninstall-binPROGRAMS unin
- install-exec-hook:
-       -chown root $(DESTDIR)$(bindir)/fusermount
-       -chmod u+s $(DESTDIR)$(bindir)/fusermount
--      @if test ! -e $(DESTDIR)/dev/fuse; then \
-+      -@if test ! -e $(DESTDIR)/dev/fuse; then \
-               $(mkdir_p) $(DESTDIR)/dev; \
-               echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229"; \
-               mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229; \
diff --git a/package/fuse24/patches/113-DCACHE_BUG.patch b/package/fuse24/patches/113-DCACHE_BUG.patch
deleted file mode 100644 (file)
index da0d27c..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
---- a/kernel/dev.c
-+++ b/kernel/dev.c
-@@ -512,6 +512,9 @@ static int fuse_copy_fill(struct fuse_co
- {
-       unsigned long offset;
-       int err;
-+#ifdef DCACHE_BUG
-+      struct vm_area_struct *vma;
-+#endif
-       unlock_request(cs->req);
-       fuse_copy_finish(cs);
-@@ -523,14 +526,22 @@ static int fuse_copy_fill(struct fuse_co
-               cs->nr_segs --;
-       }
-       down_read(&current->mm->mmap_sem);
-+#ifndef DCACHE_BUG
-       err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
-                            &cs->pg, NULL);
-+#else
-+      err = get_user_pages(current, current->mm, cs->addr, 1, cs->write, 0,
-+                           &cs->pg, &vma);
-+#endif
-       up_read(&current->mm->mmap_sem);
-       if (err < 0)
-               return err;
-       BUG_ON(err != 1);
-       offset = cs->addr % PAGE_SIZE;
-       cs->mapaddr = kmap_atomic(cs->pg, KM_USER0);
-+#ifdef DCACHE_BUG
-+      r4k_flush_cache_page(vma, cs->addr); 
-+#endif
-       cs->buf = cs->mapaddr + offset;
-       cs->len = min(PAGE_SIZE - offset, cs->seglen);
-       cs->seglen -= cs->len;
-@@ -545,6 +556,11 @@ static inline int fuse_copy_do(struct fu
- {
-       unsigned ncpy = min(*size, cs->len);
-       if (val) {
-+#ifdef DCACHE_BUG
-+              // patch from mailing list, it is very important, otherwise,
-+              // can't mount, or ls mount point will hang
-+              flush_cache_all();
-+#endif
-               if (cs->write)
-                       memcpy(cs->buf, *val, ncpy);
-               else
---- a/kernel/fuse_i.h
-+++ b/kernel/fuse_i.h
-@@ -45,6 +45,10 @@
- #  endif
- #endif
-+//#if defined(__arm__) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-+#define DCACHE_BUG
-+//#endif
-+
- #include "config.h"
- #ifndef KERNEL_2_6
- #  include <linux/config.h>
---- a/kernel/inode.c
-+++ b/kernel/inode.c
-@@ -739,6 +739,10 @@ static int __init fuse_init(void)
-       printk("fuse distribution version: %s\n", FUSE_VERSION);
- #endif
-+#ifdef DCACHE_BUG
-+printk("fuse init: DCACHE_BUG enabled\n");
-+#endif
-+
-       spin_lock_init(&fuse_lock);
-       res = fuse_fs_init();
-       if (res)