[Dovecot] 1.0.rc30 released

Justin McAleer justin at fehuq.com
Fri Apr 6 21:14:57 EEST 2007


Timo Sirainen wrote:
> On 6.4.2007, at 17.55, Justin McAleer wrote:
>
>> Timo, in rc30, deliver is not creating user directories properly. It 
>> looks like it goes straight to creating the maildir, without creating 
>> the home directory first if it doesn't exist. It also seems to be 
>> doing this before chrooting, as the following errors occur even after 
>> manually creating the home directory (with proper permissions):
>>
>> Apr  6 10:26:23 node7 postfix/qmgr[21815]: D2242D39A5: from=<>, 
>> size=556, nrcpt=1 (queue active)
>> Apr  6 10:26:23 node7 deliver(user at example.com): mkdir(/cur) failed: 
>> Permission denied
>
> Looks like deliver doesn't chroot at all if you did chrooting by using 
> /./ in the home directory. Since deliver doesn't work that great 
> chrooted anyway (can't send bounces by running sendmail), maybe this 
> is a good thing.
>

For the record, I was not using /./ in the home directory. For this user 
the home directory (and maildir) is /var/mailstore/af/4f/510590. While 
that may be a good thing, that deliver fails to create a user's maildir 
is a big problem for me, as I will have to actively provision maildirs 
for all new accounts before they can receive mail (or be converted)... 
so for the record, can I no longer count on dovecot to create user 
directories that don't exist?

>> Also, the convert plugin seems to assume the home dir exists when it 
>> tries to create it's lock file. However, manually creating the home 
>> dir does allow convert to continue successfully.
>
> This happens only if it the source storage creation succeeds. So 
> you're moving user's home directory also?
>

All I'm dealing with here is mail. I'm converting from CommuniGate 
mailboxes to dovecot, so the whole concept of a home directory is just a 
technicality. In fact, I was initially just setting users' home to '' 
and using the mail_location setting to generate the path. The only 
reason I went back to setting home is because convert seems to create 
it's lock file in the home dir (so lock creation was failing trying to 
open /.temp...).  Here is what I'm feeding to convert:

convert_mail = 
mbox:/var/mailstore/%d/%1n.sub/%1.1n.sub/%n.macnt:INBOX=/var/mailstore/%d/%1n.sub/%1.1n.sub/%n.macnt/INBOX.mbox

And an example of the user's home/maildir:

/var/mailstore/af/4f/510590
mail_location = maildir:%h:INDEX=/var/indexes/%2Mi/%2.2Mi/%i

The index location here would be /var/indexes/af/4f/510590 (local disk).

One of the source hacks I've made for the CommuniGate format was setting 
a mask of *.mbox rather than just * when calling the 
mail_storage_mailbox_list_init functions... I didn't think that could 
cause a problem like this though. I also strip off the .mbox extension, 
and any occurance of .folder in the dest_name string in 
mailbox_name_convert(). All of that works perfectly so far in my 
testing, though, as long as the user's home directory already exists :)


> Anyway, I don't think I'll be changing any of this code in v1.0 
> branch. But the subscription name changing .. yea, I'll fix that for 
> v1.0. Guess I'll still have to put out rc31 :(
>

-- 
Justin McAleer
Director of Development
Neonova Network Services



More information about the dovecot mailing list