This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /perl/trunk/README

Parent Directory Parent Directory | Revision Log Revision Log

Revision 19 - (hide annotations)
Tue Dec 27 12:47:00 2005 UTC (18 years, 3 months ago) by dpavlin
File size: 3092 byte(s)
Changes from Mark Glines in preparation for 0.07
- Remove the FUSE_DEBUG constant; we never actually implemented
  it to begin with.
- "make test" now uses the version of Fuse you've just built,
  not the one installed in /usr/lib/perl5.
- getattr test now allows blksize to vary between host and fuse
  fs, as this is not a bug.
- Add experimental support for threading.  The following minor
  API changes accommodate this:
- The nonexistent (yet documented) "unthreaded=>1" attribute
  has been replaced with the "threaded=>1" attribute, and this
  time it actually exists.
- Symbolic refs like "main::e_getattr" are now allowed for
  callbacks, because threaded mode needs to share() the
  callbacks, yet perl 5.8.7 does not allow share()ing code
  refs yet.  Direct code-refs are still supported as much
  as possible (currently, non-threaded mode).
- testsuite uses a multithreaded loopback.pl, when available.
- Update docs accordingly.  Update examples accordingly.

1 dpavlin 15 Fuse version 0.06
2 mszeredi 4 =================
4 dpavlin 15 Fuse is combination of Linux kernel module and user space library which
5     enables you to write user-space filesystems. This module enables you to
6     write filesystems using perl.
7 mszeredi 4
8 dpavlin 15 Additional file-systems using Fuse module are released on CPAN using Fuse::
9     namespace. Currently that includes only Fuse::DBI which allows you to mount
10     database as file system, but there will be more.
11 mszeredi 4
12 dpavlin 15 This is a pre-production release. It seems to work quite well. In fact, I
13     can't find any problems with it whatsoever. If you do, I want to know.
16 mszeredi 4 INSTALLATION
18     To install this module type the standard commands as root:
20     perl Makefile.PL
21     make
22     make test
23     make install
28 dpavlin 18 This module requires the FUSE C library and the FUSE kernel module.
29 dpavlin 12 See http://fuse.sourceforge.net/
30 mszeredi 4
31 dpavlin 18 If you intend to use FUSE in threaded mode, you need a version of Perl which
32 dpavlin 19 has been compiled with USE_ITHREADS. Then, you need to use threads and
33     threads::shared.
34 mszeredi 4
35 dpavlin 18
38     This is contributed to the FUSE project by Mark Glines <mark@glines.org>,
39     and is therefore subject to the same license and copyright as FUSE itself.
40     Please see the AUTHORS and COPYING files from the FUSE distribution for
41     more information.
46     There are a few example scripts. You can find them in the examples/
47     subdirectory. These are:
49     * example.pl, a simple "Hello world" type of script
51     * loopback.pl, a filesystem loopback-device. like fusexmp from
52     the main FUSE dist, it simply recurses file operations
53     into the real filesystem. Unlike fusexmp, it only
54     re-shares files under the /tmp/test directory.
56     * rmount.pl, an NFS-workalike which tunnels through SSH. It requires
57     an account on some ssh server (obviously), with public-key
58     authentication enabled. (if you have to type in a password,
59     you don't have this. man ssh_keygen.). Copy rmount_remote.pl
60     to your home directory on the remote machine, and create a
61     subdir somewhere, and then run it like:
62     ./rmount.pl host /remote/dir /local/dir
64     * rmount_remote.pl, a ripoff of loopback.pl meant to be used as a backend
65     for rmount.pl.
68     BUGS
70 dpavlin 19 At time of writing, Perl (5.8.7) did not support shared subroutine references.
71     Symptoms include a cryptic error message like "Invalid value for shared scalar"
72     from Fuse.pm. Until this is fixed, if you use threaded mode, you need to use
73     symbolic references (i.e. passing "main::cb" instead of \&cb). This doesn't
74     allow things like closures, lexical subs and that sort of thing, but it does
75     work for me.
76 mszeredi 4
77     The current test framework seems to work well, but the underlying mount/
78 dpavlin 19 unmount infrastructure is a crock. I am not pleased with that code.
79 mszeredi 4
80     While most things work, I do still have a TODO list:
81     * "du -sb" reports a couple orders of magnitude too large a size.
82     * need to sort out cleaner mount semantics for the test framework
83     * figure out how to un-linuxcentrify the statfs tests
84     * test everything on other architectures and OS's

  ViewVC Help
Powered by ViewVC 1.1.26