]> CyberLeo.Net >> Repos - SourceForge/afuse.git/blob - HACKING
Ignore afuse distribution archives.
[SourceForge/afuse.git] / HACKING
1 CVS Build
2 ---------
3 If you get afuse from CVS, run add-cruft.sh to generate the autotool crap.
4 If your version of the autotools generates files not picked up in the 
5 various .cvsignore files or the remove-cruft.sh script, and you have
6 CVS write access please add them. Not that add-cruft.sh is likely
7 to work on your system anyway as the autotools seem to do completely
8 different things distro to distro.
9
10 I really hate the way the autotools require all these stupid random
11 files be created for operation and included in releases. Why can't it
12 just be an actual program used to build source distributions based on
13 the canonicalised config information?
14
15
16 TODO
17 ----
18 While it is basically usable, there are a huge number of things which need
19 doing to afuse to make it a "good" project. Here are a list of some of
20 these:
21
22 * Support multi-threading - Internatal Data structures need to guarded
23   before we allow this.
24
25 * Eliminate the proxying - In theory it should be possible for afuse
26   to mount filesystems within itself. However this seems to cause a
27   really nasty deadlock. It might be possible for this to work using
28   multi-threading or rebinding/moving mount points (needs changes to
29   fusermount).
30
31 * Auto-unmounting on inactivity.
32
33 * More complex automounting schemes
34   * Different commands based on regex's of virtual directories.
35   * Use a static list of automountable virtual directories.
36   * Scriptable multi-level virtual directory hierachy.
37
38 * Refactoring
39   * Code should be split into multiple files (could be more efficient too).
40   * Some internal terminology can be confusing.
41   * alloca's should be converted to VLAs as alloca is non-portable.
42   * Code should in general be made more portable with the help of the
43     autotools.
44
45 * More extensive documentation.
46
47 * GUI for asking for interactive automounting. For example we could pop up
48   an X11 window, or switch to other VTs on a Liunx console. This needs some
49   thought to be implemented well, maybe it should be done with plug-ins/
50   scripts on a per FS basis.
51
52 * Better debugging output.
53
54 * Autotool'ed environemnt needs lots of work.
55
56 * Exit on signal often isn't clean (directory should be unmounted)
57   (actually this seems to work with FUSE 2.3?)
58
59 * Mouting can sometimes happen in silly situations, for example touching
60   a file in the afuse root will cause a filesystem of that filename
61   to be automounted. This does not seem to be avoidable in earlier
62   versions of FUSE (2.3 for example) as getattr is always called on
63   the virtual directory on any operation and if this fails the whole
64   operation is aborted.  So it is impossible to distinguish a getattr for
65   [non]-mounting operations.
66
67 Hopefully I'll get to some of these things in my spare time, however
68 if you're interested in helping jump on the mailing list at the SF page.