EHLO,

We have plans to refactor and improve the autotools/portable layer which
has grown horrible after years of copy/pasting from existing projects...

Before we open the guts and axe big chunks, we want to cleanup the parts
that are visible to users so that our other changes can happen slowly in
the background.

This will change packaging a bit and therefore here is a mail to explain
some of the changes that will start rolling in upcoming snapshots. These
are not definitive and you are free to make further suggestions but this
is the way we're going so far and we'd like to be part of next release.


1- First of all, kill the --with-mailwrapper option
---------------------------------------------------

Depending on your system, you may or may not have a `mailwrapper' system
which allows it to hide the details of which MTA is in use.

If you have one and build with --with-mailwrapper then OpenSMTPD doesn't
install mailq & newaliases as they are really special modes of smtpctl &
makemap which are handled by the mailwrapper.

If you don't have one, then OpenSMTPD creates symlinks so the newaliases
utility is linked to makemap and so mailq is linked to smtpctl.

This led to issues with `make install' and how to cope properly with the
utilities that are installed.

Furthermore, sunil@ worked to merge `makemap' inside 'smtpctl', which is
a good thing, but creates more mess when it comes with the symlink magic
mess.

We decided to kill the --with-mailwrapper option, it can't be done right
in a generic way, so OpenSMTPD will install `smtpd' and `smtpctl' and it
is up to the package maintainers to decide if `makemap' and `newaliases'
are needed and if they will be installed as symbolic/hard links, or as a
mailwrapper entry.



2- Cleanup configure flags
--------------------------

The configure options have been a big mess, all mixed up, and the naming
convention from an option to a similar option varies a lot.

here's a sample ofthe `configure --help` output of our latest release:


Optional Features:
  --enable-table-db             Enable building of table-db backend

Optional Packages:
  --with-zlib=PATH              Use zlib in PATH
  --without-zlib-version-check  Disable zlib version check
  --with-ssl-dir=PATH           Specify path to LibreSSL installation
  --without-libressl-header-check Disable LibreSSL version consistency check
  --with-pam                    Enable PAM support
  --with-pam-service=service    Specify PAM service
  --with-privsep-user=user      Specify non-privileged user for privilege 
separation
  --with-queue-user=user        Specify non-privileged user for queue process
  --with-privsep-path=xxx       Path for privilege separation chroot 
(default=/var/empty)
  --with-maildir=/path/to/mail  Specify your system mail directory
  --with-mantype=man|cat|doc    Set man page type
  --with-bsd-auth               Enable BSD auth support
  --with-sock-dir=PATH          Specify location of smtpd.sock file
  --with-ca-file=FILE           Path for certificate file 
(default=/etc/ssl/cert.pem)
  --with-spooldir=PATH          Specify location of spooler directory
  --with-libevent-dir=PATH     Specify path to libevent installation
  --with-asr=PATH               Use asr in PATH
  --with-mailwrapper            Install smtpctl and makemap utilities in libexec


libraries are mixed, some are named --with-X-dir, others not, some
contains 'lib' in the name, others not. the wording differs between
two identical options, some refer to path, others to dir.

it's just messy.



Here's a first stab at an improved configure:


Optional Packages:
  --with-mantype=man|cat|doc    Set man page type
  --with-auth-bsdauth           Enable bsd_auth(3) authentication support
  --with-auth-pam=SERVICE       Enable PAM authentication support 
(default=smtpd)
  --with-user-smtpd=user        Specify non-privileged user for smtpd 
(default=_smtpd)
  --with-user-queue=user        Specify non-privileged user for queue process 
(default=_smtpq)
  --with-group-queue=group      Specify non-privileged group for offline queue 
(default=_smtpq)
  --with-path-queue=PATH        Specify path to queue directory 
(default=/var/spool/smtpd)
  --with-path-empty=PATH        Specify path to empty directory 
(default=/var/empty)
  --with-path-mbox=PATH         Specify path to mbox directory 
(default=/var/spool/mail)
  --with-path-socket=PATH       Specify path to smtpd.sock directory 
(default=/var/run)
  --with-path-CAfile=FILE       Specify path to CA certificate 
(default=/etc/ssl/cert.pem)
  --with-libasr=PATH            Specify path to libasr installation
  --with-libevent=PATH          Specify path to libevent installation
  --with-libssl=PATH            Specify path to libssl installation
  --with-libz=PATH              Specify path to libz installation
  --with-table-db               Enable building of table-db backend (default=no)


This will require changing pretty much every option you used so far, but
the naming convention becomes more ... clear.

This is what we have in our development branch currently, it would be
really great if you could test, confirm that it works as you think it
should, etc...

I'd like our next release to ship with this.



-- 
Gilles Chehade

https://www.poolp.org                                          @poolpOrg

-- 
You received this mail because you are subscribed to [email protected]
To unsubscribe, send a mail to: [email protected]

Reply via email to