Michael Tokarev:
[using "unix" instead of "fifo"]
> And yes, I verified the socket code (instead of pipe code) on linux
> a few days ago and it appears to work fine there too.  So indeed, this
> is a very good possibility too, but it does not cover solaris well.

The preferred pickup/qmgr IPC type (fifo or unix) can be a main.cf
parameter setting (with an OS-dependent default value, e.g., fifo
for Solaris and unix for everything else), and post-install can be
updated to edit master.cf accordingly.

This solves the "idle" mtime update problem a manner that is 100%
maintainable. It involves adding one configuration parameter to
main.cf, and adding a few lines to post-install that edit master.cf
accordingly.

> By default these dirs -- /var/spool/postfix/run/{pid,private,public} -
> should be created at install time just like now these dirs are create
> in /var/spool/postfix.  The only change I'm asking about is to move
> the "runtime" directories into a subdir (suggesting to name it "run"),
> I don't ask to mount anything in there or to create these on boot.

Sorry, that is not how Postfix is maintained.

All aspects of Postfix are meant to be for general use, so that
they are widely used, so that they can be routinely tested during
development, so that they can be properly supported, and so that
they don't break as Postfix evolves.  

Also, mounting stuff over Postfix directories breaks the basic model
of how Postfix manages its files, and I definitely don't want some
(Linux) distro maintainer to pick up on the idea.  I have enough
work on my hands to deal with damage control of (Linux) distro
maintainers.

[empty run directory]
You seem to believe that Postfix IPC endpoints don't need to exist
while Postfix is not running.

> the mix -- pid, private, public -- the directories where the files
> makes any sense at all till postfix is running _only_.  Files in
> there does not exist, so to say, when it is not running - even if
> formally corresponding inodes do exist.

That is incorrect. 

For example, the postdrop program will produce a warning message
if the public/pickup node does not exist. By design this program
MUST be able to run without errors while NO Postfix daemons are
running.  Normally, a missing public/pickup node is a sign of great
trouble (mail would be queued forever) and it would therefore be
wrong to shut up the error message.

> [waiting for SSD to become a commodity product]

An SSD has a write cycle limit of a million times or so. It should
last forever with one mtime update per 5 minutes.

        Wietse

Reply via email to