X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=README;h=1a66bcebf3a8a388b431dfe3cc60ddc1bb39ee3f;hb=20a4ae09bd0e723a3a500193e3d2aa79d37bf669;hp=bac7fed07062d461483c4f1d3b4b96ab09775a8c;hpb=2c3682bf309dac408db9ee2e30f91a2c8f832ef4;p=perl-fuse.git diff --git a/README b/README index bac7fed..1a66bce 100644 --- a/README +++ b/README @@ -1,9 +1,18 @@ -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. + +Support for FreeBSD is experimental, so expect tests to fail. INSTALLATION @@ -17,9 +26,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 +68,35 @@ 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. +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. 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 - +* determine why getattr() test on OS X/Darwin is very slow; succeeds, but + very slowly + +Currently tests have been attempted and succeeded on: + * Ubuntu 10.10/amd64 + * Ubuntu 11.04/amd64 + * Debian 5.0/powerpc + * 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.