X-Git-Url: http://git.rot13.org/?p=perl-fuse.git;a=blobdiff_plain;f=README;h=b324ce7b3172b676ee435d97f3000eab8bf3ee07;hp=bac7fed07062d461483c4f1d3b4b96ab09775a8c;hb=805a31912a12a7c8ddf8ff0922e5451f35eb7d93;hpb=2c3682bf309dac408db9ee2e30f91a2c8f832ef4 diff --git a/README b/README index bac7fed..b324ce7 100644 --- a/README +++ b/README @@ -1,9 +1,16 @@ -Fuse version 0.05 -================= +Fuse perl bindings +================== -This is a test release. It seems to work quite well. In fact, I can't -find any problems with it whatsoever. If you do, I want to know. +Fuse is combination of Linux kernel module and user space library which +enables you to write user-space filesystems. This module enables you to +write filesystems using perl. +Additional file-systems using Fuse module are released on CPAN using Fuse:: +namespace. Currently that includes only Fuse::DBI which allows you to mount +database as file system, but there will be more. + +This is a pre-production release. It seems to work quite well. In fact, I +can't find any problems with it whatsoever. If you do, I want to know. INSTALLATION @@ -17,9 +24,13 @@ To install this module type the standard commands as root: DEPENDENCIES -This module requires the FUSE userspace library and the FUSE kernel module. +This module requires the FUSE C library and the FUSE kernel module. See http://fuse.sourceforge.net/ +If you intend to use FUSE in threaded mode, you need a version of Perl which +has been compiled with USE_ITHREADS. Then, you need to use threads and +threads::shared. + COPYRIGHT AND LICENCE @@ -55,16 +66,31 @@ subdirectory. These are: BUGS -I've begun to build a formal testing framework. Currently it can mount -and unmount loopback.pl, and all of the base-level functions have test -scripts. These need to be fleshed out as problems are noticed. - -The current test framework seems to work well, but the underlying mount/ -unmount infrastructure is a crock. I am not pleased with that code. - -While most things work, I do still have a TODO list: -* "du -sb" reports a couple orders of magnitude too large a size. -* need to sort out cleaner mount semantics for the test framework -* figure out how to un-linuxcentrify the statfs tests -* test everything on other architectures and OS's - +At time of writing, Perl (5.8.7) did not support shared subroutine references. +Symptoms include a cryptic error message like "Invalid value for shared scalar" +from Fuse.pm. Until this is fixed, if you use threaded mode, you need to use +symbolic references (i.e. passing "main::cb" instead of \&cb). This doesn't +allow things like closures, lexical subs and that sort of thing, but it does +work for me. + +Currently tests have been attempted and succeeded on: + * Ubuntu 10.10/amd64 + * Ubuntu 11.04/amd64 + * Debian 5.0/powerpc + * CentOS 5.6/amd64 + * NetBSD 5.1/i386 + * NetBSD 5.1/amd64 + * FreeBSD 8.2/i386 + * FreeBSD 8.2/amd64 + * MacOS X 10.6.7 + +Note that on NetBSD, there are several bugs in libpuffs and librefuse +which prevent some tests from succeeding. There are fixes in NetBSD's +MAIN branch, specifically revisions 1.26 and 1.27 on src/lib/libpuffs/subr.c, +which correct the issues that cause the test failures. However, there is +still a bug in librefuse that causes readdir() to only be called once. +We will be addressing this with the appropriate developers in the near +future. + +Also note that on NetBSD and FreeBSD, extended attributes do not work. These +are specifics related to the FUSE implementations on those platforms.