procmail
[Top] [All Lists]

Re: Incorrect Resolution of $HOME Variable

2009-03-31 17:12:27
On 31-Mar-2009, at 14:22, James Butler wrote:
Procmail insists on going further by adding a nest of unused
directories
within that active Maildir:

/home/user/Maildir/user = 700 <= nothing but Maildir in it
/home/user/Maildir/user/Maildir = 700 <= nothing but empty directories
/home/user/Maildir/user/Maildir/cur = 700 <= has no mail in it
/home/user/Maildir/user/Maildir/new = 700 <= has no mail in it
/home/user/Maildir/user/Maildir/tmp = 700 <= has no mail in it

/home/user on down are owned by user:USERGROUP.

This structure is very much like the output from 'procmail -v':

"Your system mailbox: $HOME/Maildir/user"

so procmail has the wrong system mailbox setting since the system
mailbox should be $HOME/Maildir/ and not $HOME/Maildir/user.

You compiled this procmail, right?

Yes.

you changed the value in both config.h and autoconf.h?

3) config.h:
#define DEFmaildir "$HOME/Maildir"

4) autoconf.h:
#define MAILSPOOLDIR "$HOME/Maildir/"

Yes: config.h was modified exactly as I wrote, and after running 'make' to
generate autoconf.h, I modified it exactly as above.

Why does one have a terminal slash and the other doesn't?  Not that it
matters, as I recall config.h is an OVERRIDE of autoconf.h.  And
pretty sure the absolute path needs a terminal /

When I tried modifying config.h as:

#define DEFmaildir "$HOME/Maildir/" <= with the trailing slash

All I got were "Cannot treat as directory" errors. As soon as I removed
the trailing slash, the error went away and procmail was able to create
subdirectories, etc. as noted in my earlier messages.

You can try it by adding a trailing slash to your ~/.procmailrc or
/etc/procmailrc, as either of those would override the compiled-in
defaults.

OTOH, I went in and looked at config.h.  Did you read config.h?

Yes. I have been reading the source files and everything I can get my
hands on that might be related to this for the past 2 weeks. I am posting
to this mailing list as a last resort. As I wrote in my last message:

"I did not modify anything in config.h or in authenticate.c (or
autoconf.h, after 'make') except for those changes dictated by the
procmail docs"

So, I would try a compile with the following:

#ifndef MAILSPOOLDIR
#define MAILSPOOLDIR    "$HOME/Maildir/"           /* watch the
trailing / */
#endif
#ifndef MAILSPOOLSUFFIX
#define MAILSPOOLSUFFIX "/"            /* suffix to force maildir or
MH style */
#endif
#ifndef MAILSPOOLHASH
#define MAILSPOOLHASH   0      /* 2 would deliver to /var/spool/mail/b/
a/bar */
#endif

and see if that works.

That is exactly how my authenticate.c looks ... with the trailing slash.

Thanks for your continued attention.

James

____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail