3 If you get afuse from SVN, run add-cruft.sh to generate various autotool
4 scripts and config. If your version of the autotools generates files not
5 listed in the 'svn:ignore' property or the remove-cruft.sh script, and
6 you have SVN write access please add them.
11 While afuse is basically usable, there are a huge number of things which need
12 doing to afuse to make it "good". Here are a list of some of these:
14 * Support multi-threading - Internatal Data structures need to guarded
17 * Eliminate the proxying - In theory it should be possible for afuse
18 to mount filesystems within itself. However this seems to cause a
19 really nasty deadlock. It might be possible for this to work using
20 multi-threading or rebinding/moving mount points (needs changes to
23 * Rather than umounting an FS to ensure directory changes are flushed,
24 it should be possible to flush a handle to the parent dir instead.
26 * More complex automounting schemes
27 * Different commands based on regex's of virtual directories.
28 * Use a static list of automountable virtual directories.
29 * Scriptable multi-level virtual directory hierachy.
32 * Code should be split into multiple files (could be more efficient too).
33 * Some internal terminology can be confusing.
34 * alloca's should be converted to VLAs as alloca is non-portable.
35 * Code should in general be made more portable with the help of the
38 * More extensive documentation.
40 * GUI for interactive automounting. For example we could pop up
41 an X11 window, or switch to other VTs on a Liunx console. This needs some
42 thought to be implemented well, maybe it should be done with plug-ins/ scripts
45 * Better debugging output.
47 * Autotool'ed environemnt needs lots of work.
49 * Exit on signal often isn't clean (directory should be unmounted)
50 (actually this seems to work with FUSE 2.3?)
52 * Mouting can sometimes happen in silly situations, for example touching
53 a file in the afuse root will cause a filesystem of that filename
54 to be automounted. This does not seem to be avoidable in earlier
55 versions of FUSE (2.3 for example) as getattr is always called on
56 the virtual directory on any operation and if this fails the whole
57 operation is aborted. So it is impossible to distinguish a getattr for
58 [non]-mounting operations.
60 Hopefully I'll get to some of these things in my spare time, however
61 if you're interested in helping jump on the mailing list at the SF page.