On Thu, 20 Feb 2003, Charlie Brady wrote:
>On Thu, 20 Feb 2003, Andreas Aardal Hanssen wrote:
>> The problem with not prepending each folder with a dot '.', is that it 
>> breaks Maildir++.
>> http://www.inter7.com/courierimap/README.maildirquota.html
>> Although I'm no fan of Courier-IMAP, this is the closest thing we have to
>> a Maildir subfolder standard, and we have to conform to it to work well
>> together with other Maildir++ applications.
>As far as I can tell the leading period is arbitrary and unnecessary.  

It's the only standard notation we have. If we change this, then Binc 
IMAP will no longer be a drop-in replacement for Courier-IMAP. Anyway - 
who cares what the first character is? The only program that hides '.' 
files are shells and some unconfigured file explorers.

"find" reports them, and "find -d" is the most commonly used UNIX tool for 
processing directories recursively. I can' see any reason to break 
Maildir++ just to avoid the leading dot.

>- A maildir is a directory containing directories called ""tmp", "new" and
>  "cur". 
>- A maildir subfolder is a maildir contained within another maildir.

A Maildir has no subfolders, period. An _extension_ of Maildir, called
Maildir++, allows subfolders. We can either follow this extension, or 
define our own extension. I will not break Maildir++.

>This maildir++ feature appears unnecessary to me:
> Within each subdirectory there's an empty file, maildirfolder. Its 
> existence tells the mail delivery agent that this Maildir is a really a 
> folder underneath a parent Maildir++.

Agreed, it is quite unnecessary and any sane client would also check for
new/, tmp/ and cur/. But being a standard feature means that Binc IMAP
will follow it.

>[Which mail delivery agents care whether a maildir is a folder underneath 
>a parent maildir++?]

I guess some Maildir++ tools that have the feature to descend into parent
directories.

>One could argue for this as a useful optimisation - testing for a single
>file is quicker than checking for three directories. I'd like to see
>benchmarking evidence before accepting that argument. And what use is 
>the maildirfolder file if "tmp", "new" and "cur" don't exist?

The presence of maildirfolder means that this is a subfolder. Lack of 
maildirfolder means that this is the root folder.

>The following seems to be another arbitrary and unnecessary restriction:
> Can folders have subfolders, defined in a recursive fashion? The answer 
> is no. If you want to have a client with a hierarchy of folders, emulate 
> it. Pick a hierarchy separator character, say ":". Then, folder foo/bar is 
> subdirectory .foo:bar.
>Am I missing something?

If you have IMAP folders a, a/b and a/b/c, then remove a/b, then a, a/b
and a/b/c should still be visible, but a/b should be marked with
\NoSelect. How can this be accomplished if the storage method is that of
folders within folders?

>Disclaimer: I am not at all advocating breakage of compatibility with 
>Courier. I am hoping, however, that slavish adherence to that 
>compatibility is avoidable.

Compatibility with standards is absolutely vital this project. Maildir++
may be a lousy standard, it may not even fulfill the requirements to be
called a standard yet, but it's all we've got right now.

So that's it - we can discuss creating a new mailbox format, creating a
new extension to Maildir or we can find ways to accomplish exactly what we
want by still complying to Maildir++.

I will not have this list flamed by creators of Maildir++ patches to
various clients, that are unable to find folders they created with Binc
IMAP just because Binc doesn't follow Maildir++.

Sticking to the subject - it is completely possible to:

 1) make the delimitor configurable
 2) display both root folders and INBOX subfolders through Binc
 3) be compliant with Maildir++

The question should rather be how we can make this work than in how many 
ways we can break Maildir++.

Andy

-- 
Andreas Aardal Hanssen | http://www.andreas.hanssen.name/gpg
Author of Binc IMAP    | Nil desperandum

Reply via email to