From 5972198b0f23ca7a248247b0c8a91e565eaa30c2 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Wed, 14 Aug 2013 06:30:54 +0000 Subject: fuse: move to meta-filesystems and upgrade - Move fuse from meta-oe to meta-filesystems - Upgrade fuse to 2.9.3 [YOCTO #4178] Signed-off-by: Hongxu Jia Signed-off-by: Martin Jansa --- .../recipes-support/fuse/files/aarch64.patch | 33 ++++++++ .../fuse/files/gold-unversioned-symbol.patch | 92 ++++++++++++++++++++++ .../recipes-support/fuse/fuse_2.9.3.bb | 43 ++++++++++ .../recipes-support/fuse/fuse-2.9.2/aarch64.patch | 20 ----- .../fuse/fuse-2.9.2/gold-unversioned-symbol.patch | 60 -------------- meta-oe/recipes-support/fuse/fuse_2.9.2.bb | 40 ---------- 6 files changed, 168 insertions(+), 120 deletions(-) create mode 100644 meta-filesystems/recipes-support/fuse/files/aarch64.patch create mode 100644 meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch create mode 100644 meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb delete mode 100644 meta-oe/recipes-support/fuse/fuse-2.9.2/aarch64.patch delete mode 100644 meta-oe/recipes-support/fuse/fuse-2.9.2/gold-unversioned-symbol.patch delete mode 100644 meta-oe/recipes-support/fuse/fuse_2.9.2.bb diff --git a/meta-filesystems/recipes-support/fuse/files/aarch64.patch b/meta-filesystems/recipes-support/fuse/files/aarch64.patch new file mode 100644 index 0000000000..050d1146a9 --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/files/aarch64.patch @@ -0,0 +1,33 @@ +fuse: add aarch64 support + +u64/u32 is not defined in sys/types.h, include linux/types.h like +the kernel version of fuse.h does. Patch sent to upstream mailing list. + +Upstream-Status: Submitted +Signed-off-by: Riku Voipio +Signed-off-by: Hongxu Jia +--- + include/fuse_kernel.h | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h +index c632b58..e804278 100644 +--- a/include/fuse_kernel.h ++++ b/include/fuse_kernel.h +@@ -88,12 +88,7 @@ + #ifndef _LINUX_FUSE_H + #define _LINUX_FUSE_H + +-#include +-#define __u64 uint64_t +-#define __s64 int64_t +-#define __u32 uint32_t +-#define __s32 int32_t +-#define __u16 uint16_t ++#include + + /* + * Version negotiation: +-- +1.8.1.2 + diff --git a/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch b/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch new file mode 100644 index 0000000000..d47f692c0e --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/files/gold-unversioned-symbol.patch @@ -0,0 +1,92 @@ +fuse: Fix linking issues with gold linker + +fuse has problems when linking with gold since it uses version +scripts in a way thats so perticular to bfd ld + +/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstro +error: symbol __fuse_exited has undefined version +| collect2: ld returned 1 exit status +| make[1]: *** [libfuse.la] Error 1 +| make[1]: *** Waiting for unfinished jobs.... + +For more details + +http://blog.flameeyes.eu/2011/06/01/gold-readiness-obstacle-2-base-versioning +http://sources.redhat.com/bugzilla/show_bug.cgi?id=10861 +http://comments.gmane.org/gmane.comp.file-systems.fuse.devel/9524 +http://www.airs.com/blog/archives/300 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +Signed-off-by: Koen Kooi +Signed-off-by: Hongxu Jia +--- + lib/fuse.c | 10 +++++----- + lib/fuse_mt.c | 2 +- + lib/fuse_versionscript | 3 +++ + lib/helper.c | 6 +++--- + 4 files changed, 12 insertions(+), 9 deletions(-) + +diff --git a/lib/fuse.c b/lib/fuse.c +index 067d0dc..6d27711 100644 +--- a/lib/fuse.c ++++ b/lib/fuse.c +@@ -4873,11 +4873,11 @@ struct fuse *fuse_new_compat1(int fd, int flags, + 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_exited,__fuse_exited@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2"); + + #endif /* __FreeBSD__ || __NetBSD__ */ +diff --git a/lib/fuse_mt.c b/lib/fuse_mt.c +index f6dbe71..fd5ac23 100644 +--- a/lib/fuse_mt.c ++++ b/lib/fuse_mt.c +@@ -119,4 +119,4 @@ int fuse_loop_mt(struct fuse *f) + return res; + } + +-FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@"); ++FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED"); +diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript +index 8d91887..de16ab2 100644 +--- a/lib/fuse_versionscript ++++ b/lib/fuse_versionscript +@@ -1,3 +1,6 @@ ++FUSE_UNVERSIONED { ++}; ++ + FUSE_2.2 { + global: + fuse_destroy; +diff --git a/lib/helper.c b/lib/helper.c +index b644012..c5349bf 100644 +--- a/lib/helper.c ++++ b/lib/helper.c +@@ -436,10 +436,10 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[]) + return fuse_mount_compat22(mountpoint, NULL); + } + +-FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@"); ++FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED"); + 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_teardown,__fuse_teardown@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2"); + + #endif /* __FreeBSD__ || __NetBSD__ */ +-- +1.8.1.2 + diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb new file mode 100644 index 0000000000..358b58eb54 --- /dev/null +++ b/meta-filesystems/recipes-support/fuse/fuse_2.9.3.bb @@ -0,0 +1,43 @@ +SUMMARY = "With FUSE it is possible to implement a fully functional filesystem in a userspace program" +DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \ +programs to export a virtual filesystem to the Linux kernel. FUSE \ +also aims to provide a secure method for non privileged users to \ +create and mount their own filesystem implementations. \ +" +HOMEPAGE = "http://fuse.sf.net" +SECTION = "libs" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/fuse-${PV}.tar.gz \ + file://gold-unversioned-symbol.patch \ + file://aarch64.patch \ +" +SRC_URI[md5sum] = "33cae22ca50311446400daf8a6255c6a" +SRC_URI[sha256sum] = "0beb83eaf2c5e50730fc553406ef124d77bc02c64854631bdfc86bfd6437391c" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-kernel-module" + +PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg" + +RRECOMMENDS_${PN} = "kernel-module-fuse" + +FILES_${PN} += "${libdir}/libfuse.so.*" +FILES_${PN}-dev += "${libdir}/libfuse*.la" + +FILES_libulockmgr = "${libdir}/libulockmgr.so.*" +FILES_libulockmgr-dev += "${libdir}/libulock*.la" +FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*" + +# Forbid auto-renaming to libfuse-utils +FILES_fuse-utils = "${bindir} ${base_sbindir}" +FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug" +DEBIAN_NOAUTONAME_fuse-utils = "1" +DEBIAN_NOAUTONAME_fuse-utils-dbg = "1" + +do_install_append() { + rm -rf ${D}${base_prefix}/dev +} diff --git a/meta-oe/recipes-support/fuse/fuse-2.9.2/aarch64.patch b/meta-oe/recipes-support/fuse/fuse-2.9.2/aarch64.patch deleted file mode 100644 index 180f544f40..0000000000 --- a/meta-oe/recipes-support/fuse/fuse-2.9.2/aarch64.patch +++ /dev/null @@ -1,20 +0,0 @@ -Upstream-Status: Submitted - -Signed-off-by: Riku Voipio - ---- a/include/fuse_kernel.h -+++ b/include/fuse_kernel.h -@@ -88,12 +88,7 @@ - #ifndef _LINUX_FUSE_H - #define _LINUX_FUSE_H - --#include --#define __u64 uint64_t --#define __s64 int64_t --#define __u32 uint32_t --#define __s32 int32_t --#define __u16 uint16_t -+#include - - /* - * Version negotiation: diff --git a/meta-oe/recipes-support/fuse/fuse-2.9.2/gold-unversioned-symbol.patch b/meta-oe/recipes-support/fuse/fuse-2.9.2/gold-unversioned-symbol.patch deleted file mode 100644 index 8ee97dff0f..0000000000 --- a/meta-oe/recipes-support/fuse/fuse-2.9.2/gold-unversioned-symbol.patch +++ /dev/null @@ -1,60 +0,0 @@ -Index: fuse-2.8.6/lib/fuse.c -=================================================================== ---- fuse-2.8.6.orig/lib/fuse.c 2011-09-13 00:23:14.000000000 -0700 -+++ fuse-2.8.6/lib/fuse.c 2011-10-19 09:20:27.537099939 -0700 -@@ -3947,11 +3947,11 @@ - 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_exited,__fuse_exited@FUSE_UNVERSIONED"); -+FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED"); -+FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED"); -+FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED"); -+FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED"); - FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2"); - - #endif /* __FreeBSD__ */ -Index: fuse-2.8.6/lib/fuse_mt.c -=================================================================== ---- fuse-2.8.6.orig/lib/fuse_mt.c 2011-09-13 00:23:14.000000000 -0700 -+++ fuse-2.8.6/lib/fuse_mt.c 2011-10-19 09:20:27.537099939 -0700 -@@ -113,4 +113,4 @@ - return fuse_session_loop_mt(fuse_get_session(f)); - } - --FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@"); -+FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED"); -Index: fuse-2.8.6/lib/fuse_versionscript -=================================================================== ---- fuse-2.8.6.orig/lib/fuse_versionscript 2011-09-13 00:23:14.000000000 -0700 -+++ fuse-2.8.6/lib/fuse_versionscript 2011-10-19 09:20:27.541099939 -0700 -@@ -1,3 +1,6 @@ -+FUSE_UNVERSIONED { -+}; -+ - FUSE_2.2 { - global: - fuse_destroy; -Index: fuse-2.8.6/lib/helper.c -=================================================================== ---- fuse-2.8.6.orig/lib/helper.c 2011-09-13 00:23:14.000000000 -0700 -+++ fuse-2.8.6/lib/helper.c 2011-10-19 09:20:27.541099939 -0700 -@@ -409,10 +409,10 @@ - return fuse_mount_compat22(mountpoint, NULL); - } - --FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@"); -+FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED"); - 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_teardown,__fuse_teardown@FUSE_UNVERSIONED"); -+FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED"); - FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2"); - - #endif /* __FreeBSD__ */ diff --git a/meta-oe/recipes-support/fuse/fuse_2.9.2.bb b/meta-oe/recipes-support/fuse/fuse_2.9.2.bb deleted file mode 100644 index b6c2a9e53f..0000000000 --- a/meta-oe/recipes-support/fuse/fuse_2.9.2.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "With FUSE it is possible to implement a fully functional filesystem in a userspace program" -HOMEPAGE = "http://fuse.sf.net" -SECTION = "libs" -LICENSE = "GPLv2 & LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -PR = "r1" - -SRC_URI = "${SOURCEFORGE_MIRROR}/fuse/fuse-${PV}.tar.gz \ - file://gold-unversioned-symbol.patch \ - file://aarch64.patch \ -" -SRC_URI[md5sum] = "7d80d0dc9cc2b9199a0c53787c151205" -SRC_URI[sha256sum] = "81a728fb3f87da33063068735e2fb7e2cd89df207d32687d3d3278385279cefc" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--disable-kernel-module" - -PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg" - -RRECOMMENDS_${PN} = "kernel-module-fuse" - -FILES_${PN} += "${libdir}/libfuse.so.*" -FILES_${PN}-dev += "${libdir}/libfuse*.la" - -FILES_libulockmgr = "${libdir}/libulockmgr.so.*" -FILES_libulockmgr-dev += "${libdir}/libulock*.la" -FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*" - -# Forbid auto-renaming to libfuse-utils -FILES_fuse-utils = "${bindir} ${base_sbindir}" -FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug" -DEBIAN_NOAUTONAME_fuse-utils = "1" -DEBIAN_NOAUTONAME_fuse-utils-dbg = "1" - -do_install_append() { - rm -rf ${D}${base_prefix}/dev -} -- cgit v1.2.3-54-g00ecf