-Fuse version 0.06
-=================
+Fuse perl bindings
+==================
Fuse is combination of Linux kernel module and user space library which
enables you to write user-space filesystems. This module enables you to
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
To install this module type the standard commands as root:
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.
+has been compiled with USE_ITHREADS. Then, you need to use threads and
+threads::shared.
COPYRIGHT AND LICENCE
BUGS
-Perl 5.8.7 does not support shared subroutine references. Until this is
-fixed, if you use threaded mode, you need to use symbolic references (i.e.
-passing "main::cb" instead of \&cb). This rules out closures, lexical
-subs and that sort of thing, but it does seem to work.
+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. I
-also wish there was a way to test without root permissions.
+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.
+
+Also note that on NetBSD and FreeBSD, extended attributes do not work. These
+are specifics related to the FUSE implementations on those platforms.