Hi J,

On Wed, Apr 27, 2016, at 06:04, J Mo wrote:
> Ondrej, I have some questions
> 
> Why were the old courier init scripts discarded in favor of using the 
> init-d-script method/system?

The sysvrc script update were done as part of updating courier with
systemd service files. I understand you are using sysvinit-core on your
system.

> Were there some bugs related to them which needed to get fixed?

Just the need to keep the two init systems in sync and accumulated
baggage in the scripts.

> And, was there a particular reason why the init-d-script method was used over 
> writing stand-alone init scripts?

init-d-script method is almost "declarative", so it was chosen for
overall simplicity.

> Historically, Courier uses it's environment to determine configuration 
> parameters, which, admittedly, is weird/questionable/ugly.

There are even more horrible things in the courier upstream package like
having configure.ac in every freaking subdirectory.

> All of those config files in /etc/courier are just shell fragments specifying 
> parameters. The old init scripts sourced those parameters into the 
> environment before execution and passed them down.

That can still be done, but from what I recall those are sourced by the
shell wrappers around every daemon?

/usr/sbin/esmtpd-msa is launched from /etc/init.d/courier-msa and
sources:

        . ${sysconfdir}/esmtpd
        . ${sysconfdir}/esmtpd-msa

So I believe this should be covered.

> Additionally, daemons were customarily executed as part of a pipeline 
> involving courierlogger 
> and couriertcpd. The new init scripts don't do this. Was that on purpose, or 
> were you unaware of any of this?

Again this is done via upstream wrapper scripts, in
/usr/sbin/esmtpd-msa, I see:

        echo ${sbindir}/couriertcpd $TCPDOPTS $PORT \
                ${sbindir}/courieresmtpd'>/dev/null 2>&1 </dev/null'

So I believe this is taken care by upstream shell wrapper scripts.

> Before I propose any changes, I'd like to find out what your ideas were.

Thank you very much for helping making courier packages better.

If you are going to propose any changes, please try to make them both in
.init and .service files at the same time. Or at least explain, so I can
keep it in sync. Also you know the courier* packages could use a
co-maintainer who runs the packages in the production.

I can definitely help with the packaging bits, but as I don't run
courier myself, and was just asked by some courier users, to help
improving this, I am at severe disadvantage here.

Cheers,
-- 
Ondřej Surý <[email protected]>
Knot DNS (https://www.knot-dns.cz/) – a high-performance DNS server

Reply via email to