On Tue, 29 Mar 2011 00:52:29 +1300, Anshul Singhle <xashck@xxxxxxxxx> wrote:
Hi,I'm Anshul Singhle, a sophomore undergraduate student at Indian Instituteof Technology, Kharagpur. I'm interested in taking a project from your organization for GSoC. As described by your Ideas page, the project would allow users to mount their IMAP accounts as a Filesystem . I have developed filesystems using FUSE in the past. I very recently developed a FUSE-based versioning filesystem with COW(Copy-on-Write ) functionality. The Filesystem was basically a wrapper on Git with sometweaking to allow versioning of individual files instead of directories. I had a look at userlandFS and default I was thinking of implementing the IMAPfilesystem using userlandFS. Do you think that is wise? I could not findmuch documentation on userlandFS so if someone could help, that'd be great.I'm currently going through the book on filesystem design by DominicGiampaolo . I have an inkling that the userlandFS implementation would be apreliminary step and eventually i would have to write a kernel level implementation. Comments and feedback wou;d be greatly appreciated Thanks, Anshul
Hi Anshul, very cool that you are interested in this project!I recently wrote the imap implementation for the Haiku mail client. This lib should be easy to reuse and I certainly can help you there.
I also think that using userlandFS in the first place is the way to go. For the IMAP FS you need a kind of cache for the already downloaded mails. These mail should also be accessible if you not connected to the server. Furthermore, it is a requirement that theses mails have fs attributes and that you can query them. Luckily, there is already a BeFS RAM FS that maybe could be reused to do this kind of stuff. What's missing is to store the cache persistently and put everything together...
You ask for some bugs you can work on, Stippi mentions that there are some issues with userlandFS but I'm don't know exactly what's missing in detail. Maybe you can setup a userlandFS environment and look what's missing to integrate it better into the OS. For example, to use it in tracker (right click on the desktop -> mount).
What also could be interesting would be a simple port of a fuse network FS, e.g. FTP which hopefully has not many dependencies. This should give you an overview of the Haiku build system and maybe reveal some bugs in the userlandFS/fuse implementation.
Please ask if you need more info! When I wrote the IMAP lib we agreed that an IMAP FS would be the cleaner solution so I'm looking forward to hear from you :-)
cheers, Clemens