find attached the announced patch for fuse. 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
This commit is contained in:
parent
2e058c3021
commit
63e0890777
12 changed files with 138 additions and 822 deletions
|
@ -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.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -9,12 +9,22 @@ include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=fuse
|
PKG_NAME:=fuse
|
||||||
PKG_VERSION:=2.7.4
|
PKG_VERSION:=2.8.3
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
|
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
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
@ -38,18 +48,24 @@ endef
|
||||||
|
|
||||||
define Package/fuse-utils/description
|
define Package/fuse-utils/description
|
||||||
$(call Package/fuse/Default/description)
|
$(call Package/fuse/Default/description)
|
||||||
This package contains the FUSE utility 'fusermount'.
|
This package contains the FUSE utilities.
|
||||||
|
- fusermount
|
||||||
|
- ulockmgr_server
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/fuse
|
define KernelPackage/fuse
|
||||||
$(call Package/fuse/Default)
|
$(call Package/fuse/Default)
|
||||||
SUBMENU:=Filesystems
|
SUBMENU:=Filesystems
|
||||||
DEPENDS:=@LINUX_2_6
|
|
||||||
TITLE+= (kernel module)
|
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
|
KCONFIG:= CONFIG_FUSE_FS
|
||||||
FILES:=$(LINUX_DIR)/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
|
FILES:=$(LINUX_DIR)/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
|
||||||
|
VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)
|
||||||
|
endif
|
||||||
AUTOLOAD:=$(call AutoLoad,80,fuse)
|
AUTOLOAD:=$(call AutoLoad,80,fuse)
|
||||||
VERSION:=$(LINUX_VERSION)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/fuse/description
|
define KernelPackage/fuse/description
|
||||||
|
@ -62,76 +78,144 @@ $(call Package/fuse/Default)
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE+= (library)
|
TITLE+= (library)
|
||||||
DEPENDS:=+LINUX_2_4:kmod-fuse24 +LINUX_2_6:kmod-fuse
|
DEPENDS:=kmod-fuse
|
||||||
SUBMENU:=Filesystem
|
SUBMENU:=Filesystem
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libfuse/description
|
define Package/libfuse/description
|
||||||
$(call Package/fuse/Default/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
|
endef
|
||||||
|
|
||||||
CONFIGURE_VARS += \
|
# generic args
|
||||||
kernsrcver="$(LINUX_VERSION)"
|
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
CONFIGURE_ARGS += \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
--enable-static \
|
--enable-static \
|
||||||
--disable-rpath \
|
--disable-rpath \
|
||||||
--enable-lib \
|
|
||||||
--enable-util \
|
|
||||||
--disable-example \
|
--disable-example \
|
||||||
--disable-auto-modprobe \
|
|
||||||
--with-kernel="$(LINUX_DIR)" \
|
|
||||||
--disable-mtab
|
--disable-mtab
|
||||||
|
|
||||||
# Since kernel 2.6.14 the fuse module is officially part of the kernel.
|
# kmod 2.4 args
|
||||||
# Generally it is better to use the kernel's module. Because it is patched
|
FUSE24_CONFIGURE_ARGS := $(CONFIGURE_ARGS) \
|
||||||
# against the DCACHE BUG on arm architectures (currently brcm-2.4, brcm-47xx)
|
--disable-lib --disable-util \
|
||||||
# and from fuse 2.8.0 on it will be removed from the fuse package anyway.
|
--enable-kernel-module --disable-auto-modprobe \
|
||||||
#
|
--with-kernel="$(LINUX_DIR)"
|
||||||
CONFIGURE_ARGS += --disable-kernel-module
|
|
||||||
|
# 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
|
define Build/Configure
|
||||||
(cd $(PKG_BUILD_DIR); rm -f config.cache; \
|
@echo "--> Build/Configure enter"
|
||||||
touch configure.in ; \
|
$(call Build/Configure/fuse24)
|
||||||
touch aclocal.m4 ; \
|
|
||||||
touch Makefile.in ; \
|
|
||||||
touch include/config.h.in ; \
|
|
||||||
touch configure ; \
|
|
||||||
)
|
|
||||||
$(call Build/Configure/Default)
|
$(call Build/Configure/Default)
|
||||||
|
@echo "--> Build/Configure leave"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
@echo "--> Build/Compile enter"
|
||||||
ARCH="$(LINUX_KARCH)" \
|
$(call Build/Compile/fuse24)
|
||||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
$(call Build/Compile/Default)
|
||||||
DESTDIR="$(PKG_INSTALL_DIR)" \
|
@echo "--> Build/Compile leave"
|
||||||
AM_CFLAGS="$(TARGET_CFLAGS) -DDISABLE_COMPAT=1" \
|
|
||||||
EXTRA_DIST="" \
|
|
||||||
all install
|
|
||||||
endef
|
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
|
define Build/InstallDev
|
||||||
|
@echo "--> Build/InstallDev enter"
|
||||||
mkdir -p $(1)/usr/include
|
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
|
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
|
mkdir -p $(1)/usr/lib/pkgconfig
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fuse.pc $(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,-I$$$${includedir}/fuse,,g' $(1)/usr/lib/pkgconfig/fuse.pc
|
||||||
$(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/fuse.pc
|
$(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/fuse.pc
|
||||||
|
@echo "--> Build/InstallDev leave"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/fuse-utils/install
|
define Package/fuse-utils/install
|
||||||
|
@echo "--> Package/fuse-utils/install enter"
|
||||||
$(INSTALL_DIR) $(1)/usr/bin
|
$(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
|
endef
|
||||||
|
|
||||||
define Package/libfuse/install
|
define Package/libfuse/install
|
||||||
|
@echo "--> Package/libfuse/install enter"
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(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
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,fuse-utils))
|
$(eval $(call BuildPackage,fuse-utils))
|
||||||
|
|
|
@ -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`
|
|
|
@ -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
|
|
|
@ -1,6 +1,7 @@
|
||||||
--- fuse-2.7.3.orig/util/Makefile.in 2008-02-19 15:00:55.000000000 -0500
|
diff -Nurp fuse-2.8.1.orig/util/Makefile.in fuse-2.8.1/util/Makefile.in
|
||||||
+++ fuse-2.7.3/util/Makefile.in 2008-03-17 14:14:10.000000000 -0400
|
--- fuse-2.8.1.orig/util/Makefile.in 2009-09-11 12:50:00.000000000 +0200
|
||||||
@@ -528,7 +528,7 @@
|
+++ 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:
|
install-exec-hook:
|
||||||
-chown root $(DESTDIR)$(bindir)/fusermount
|
-chown root $(DESTDIR)$(bindir)/fusermount
|
||||||
-chmod u+s $(DESTDIR)$(bindir)/fusermount
|
-chmod u+s $(DESTDIR)$(bindir)/fusermount
|
||||||
|
|
|
@ -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");
|
|
|
@ -1,6 +1,7 @@
|
||||||
--- fuse-2.7.3.orig/lib/helper.c 2008-11-22 03:25:11.000000000 +0100
|
diff -Nurp fuse-2.8.1.orig/lib/helper.c fuse-2.8.1/lib/helper.c
|
||||||
+++ fuse-2.7.3/lib/helper.c 2008-11-22 04:06:35.000000000 +0100
|
--- fuse-2.8.1.orig/lib/helper.c 2009-06-18 13:14:09.000000000 +0200
|
||||||
@@ -178,13 +178,41 @@
|
+++ 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 fuse_daemonize(int foreground)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
|
@ -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))
|
|
|
@ -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
|
|
||||||
}
|
|
Loading…
Reference in a new issue