Subject: Re: nncpnet tools usage

From: "Jonathan Lane" <[email-masked]>
Date: Fri, 24 Oct 2025 13:55:55 -0700

On Sat Oct 18, 2025 at 6:05 AM PDT, John Goerzen wrote:
> I don't know what other MTAs might do, but there is a need to get this
> information out of band because the RFC822 headers don't always
> adequately cover all cases.  The simplest example is in the case of a
> Bcc; it won't be in the message headers but will be in the SMTP
> conversation (or, in this case, the NNCP parameters)

I found out that Postfix allows you to present an equivalent recipient
as a command line argument.  I don't have Salsa access so I put my fork
on Sourcehut.

https://git.sr.ht/~tidux/nncpnet

This assumes "recipient" is one big quoted string as far as argv goes.
If it's not I'll need to build iteration in it.  Adding "$RECIPIENT" to
the end of the Exim config file should perform equivalently to Postfix.

The Postfix config I'm working on doesn't rely on Dovecot since it's
getting rolled into GNOME and KDE based desktop OSes, but
Postfix+Dovecot takes about ten minutes to set up so if there's demand I
could put that in an Ansible playbook or something.

> Automatic processing of the quux nodelist was an important objective for
> the project, so that manual action would not be required from every
> participant every time a node joins or leaves.

I agree.  My idea was to treat the cfgdir as an intermediate HJSON
parser since "move one file" is a lot more atomic than "move a bunch of
files and directories."  So something like

```
nncp-cfgdir -cfg /etc/nncp.hjson -dump /tmp/nncpdir
nodelist-proc
nncp-cfgdir -load /tmp/nncpdir > /etc/nncp.hjson.new
cp /etc/nncp.hjson "/etc/nncp.hjson.$(date -Isec)"
mv /etc/nncp.hjson.new /etc/nncp.hjson
rm -rf /tmp/nncpdir
```

-- 
Jonathan Lane