summaryrefslogtreecommitdiffstats
path: root/package/fuse
diff options
context:
space:
mode:
Diffstat (limited to 'package/fuse')
-rw-r--r--package/fuse/Config.in7
-rw-r--r--package/fuse/libfuse.mk83
-rw-r--r--package/fuse/patch/disable_symvers_22.patch56
3 files changed, 146 insertions, 0 deletions
diff --git a/package/fuse/Config.in b/package/fuse/Config.in
new file mode 100644
index 000000000..b3b245acd
--- /dev/null
+++ b/package/fuse/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_LIBFUSE
+ bool "libfuse"
+ default n
+ help
+ FUSE (Filesystem in UserSpacE)
+
+ http://fuse.sourceforge.net/
diff --git a/package/fuse/libfuse.mk b/package/fuse/libfuse.mk
new file mode 100644
index 000000000..4c24eb98a
--- /dev/null
+++ b/package/fuse/libfuse.mk
@@ -0,0 +1,83 @@
+#############################################################
+#
+# libfuse
+#
+#############################################################
+LIBFUSE_VERSION:=2.7.0
+LIBFUSE_SOURCE:=fuse-$(LIBFUSE_VERSION).tar.gz
+LIBFUSE_SITE:=http://downloads.sourceforge.net/fuse
+LIBFUSE_DIR:=$(BUILD_DIR)/fuse-$(LIBFUSE_VERSION)
+LIBFUSE_BINARY:=libfuse
+$(DL_DIR)/$(LIBFUSE_SOURCE):
+ $(WGET) -P $(DL_DIR) $(LIBFUSE_SITE)/$(LIBFUSE_SOURCE)
+
+$(LIBFUSE_DIR)/.source: $(DL_DIR)/$(LIBFUSE_SOURCE)
+ $(ZCAT) $(DL_DIR)/$(LIBFUSE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(LIBFUSE_DIR) package/fuse/ patch/*.patch
+ touch $@
+
+
+$(LIBFUSE_DIR)/.configured: $(LIBFUSE_DIR)/.source
+ (cd $(LIBFUSE_DIR); rm -rf config.cache ; \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --enable-shared \
+ --enable-static \
+ --program-prefix="" \
+ --disable-nls \
+ --disable-example \
+ --enable-kernel-module \
+ --enable-lib \
+ --enable-util \
+ --with-kernel="$(LINUX_DIR)" \
+ );
+ touch $@
+# --disable-example
+# --disable-mtab
+# --disable-rpath
+
+
+$(LIBFUSE_DIR)/.compiled: $(LIBFUSE_DIR)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(LIBFUSE_DIR)
+ touch $@
+# CROSS_COMPILE="$(TARGET_CROSS)"
+# AM_CFLAGS="$(TARGET_CFLAGS) -DDISABLE_COMPAT=1" \
+# EXTRA_DIST=""
+
+
+$(STAGING_DIR)/usr/lib/libfuse.so: $(LIBFUSE_DIR)/.compiled
+ $(MAKE) prefix=$/usr -C $(LIBFUSE_DIR) DESTDIR=$(STAGING_DIR)/ install
+ touch -c $@
+
+$(TARGET_DIR)/usr/lib/libfuse.so: $(STAGING_DIR)/usr/lib/libfuse.so
+ mkdir -p $(TARGET_DIR)/usr/lib
+ mkdir -p $(TARGET_DIR)/usr/bin
+ cp -dpf $(STAGING_DIR)/usr/bin/fusermount $(TARGET_DIR)/usr/bin/
+ cp -dpf $(STAGING_DIR)/usr/lib/libfuse.so.* $(TARGET_DIR)/usr/lib/
+# cp -dpf $(STAGING_DIR)/lib/modules/(uname-r)/kernel/fs/fuse/fuse.pc $(TARGET_DIR)/usr/lib/
+ touch -c $@
+
+libfuse: uclibc $(TARGET_DIR)/usr/lib/libfuse.so
+
+libfuse-source: $(DL_DIR)/$(LIBFUSE_SOURCE)
+
+libfuse-clean:
+ -$(MAKE) -C $(LIBFUSE_DIR) DESTDIR=$(STAGING_DIR) uninstall
+ -$(MAKE) -C $(LIBFUSE_DIR) clean
+ rm -f $(TARGET_DIR)/usr/lib/libfuse.so*
+
+libfuse-dirclean:
+ rm -rf $(LIBFUSE_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_LIBFUSE)),y)
+TARGETS+=libfuse
+endif
diff --git a/package/fuse/patch/disable_symvers_22.patch b/package/fuse/patch/disable_symvers_22.patch
new file mode 100644
index 000000000..02efd3289
--- /dev/null
+++ b/package/fuse/patch/disable_symvers_22.patch
@@ -0,0 +1,56 @@
+diff -urp fuse-2.7.0-orig/lib/fuse.c fuse-2.7.0/lib/fuse.c
+--- fuse-2.7.0-orig/lib/fuse.c 2007-07-02 14:33:08.000000000 +0300
++++ fuse-2.7.0/lib/fuse.c 2007-08-22 19:31:39.000000000 +0300
+@@ -3294,7 +3294,7 @@ __asm__(".symver fuse_process_cmd,__fuse
+ __asm__(".symver fuse_read_cmd,__fuse_read_cmd@");
+ __asm__(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@");
+ __asm__(".symver fuse_new_compat2,fuse_new@");
+-__asm__(".symver fuse_new_compat22,fuse_new@FUSE_2.2");
++//__asm__(".symver fuse_new_compat22,fuse_new@FUSE_2.2");
+
+ #endif /* __FreeBSD__ */
+
+diff -urp fuse-2.7.0-orig/lib/helper.c fuse-2.7.0/lib/helper.c
+--- fuse-2.7.0-orig/lib/helper.c 2007-07-02 14:32:17.000000000 +0300
++++ fuse-2.7.0/lib/helper.c 2007-08-22 19:32:40.000000000 +0300
+@@ -391,10 +391,10 @@ int fuse_mount_compat1(const char *mount
+ }
+
+ __asm__(".symver fuse_setup_compat2,__fuse_setup@");
+-__asm__(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2");
++//__asm__(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2");
+ __asm__(".symver fuse_teardown,__fuse_teardown@");
+ __asm__(".symver fuse_main_compat2,fuse_main@");
+-__asm__(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2");
++//__asm__(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2");
+
+ #endif /* __FreeBSD__ */
+
+@@ -428,6 +428,6 @@ int fuse_mount_compat25(const char *moun
+ }
+
+ __asm__(".symver fuse_setup_compat25,fuse_setup@FUSE_2.5");
+-__asm__(".symver fuse_teardown_compat22,fuse_teardown@FUSE_2.2");
++//__asm__(".symver fuse_teardown_compat22,fuse_teardown@FUSE_2.2");
+ __asm__(".symver fuse_main_real_compat25,fuse_main_real@FUSE_2.5");
+ __asm__(".symver fuse_mount_compat25,fuse_mount@FUSE_2.5");
+diff -urp fuse-2.7.0-orig/lib/mount_bsd.c fuse-2.7.0/lib/mount_bsd.c
+--- fuse-2.7.0-orig/lib/mount_bsd.c 2006-05-03 17:46:04.000000000 +0300
++++ fuse-2.7.0/lib/mount_bsd.c 2007-08-22 19:31:55.000000000 +0300
+@@ -360,4 +360,4 @@ int fuse_kern_mount(const char *mountpoi
+ return res;
+ }
+
+-__asm__(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");
++//__asm__(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");
+diff -urp fuse-2.7.0-orig/lib/mount.c fuse-2.7.0/lib/mount.c
+--- fuse-2.7.0-orig/lib/mount.c 2007-07-02 14:32:17.000000000 +0300
++++ fuse-2.7.0/lib/mount.c 2007-08-22 19:31:19.000000000 +0300
+@@ -579,5 +579,5 @@ int fuse_kern_mount(const char *mountpoi
+ return res;
+ }
+
+-__asm__(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");
+-__asm__(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");
++//__asm__(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");
++//__asm__(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");