On Sun, Feb 28, 2021 at 01:35:40AM -0500, JF Mezei wrote:
> Situation: OS-X Snow Leopard server, with Postfix that came built by Apple.
> According to postconf -d , Mail version: Postfix 2.5.14
Is that still your target platform, or are you now building for a newer
Apple machine?
> do postconf -a and -m yield all options I need to be concerned about, or
> are there many other portions I need to check to ensure that what I
> build from source (3.5.9) has the same functionality as what Apple had
> provided last decade?
You should compare the outputs of "postconf -d" between the two
versions. FWIW, I compared "postconf -d" between MacOS Catalina and the
latest Postfix 3.6 snapshot (which is what I am running), and saw no
substantive ommisions (just some new things that you weren't using).
> postconf -a
> cyrus
> dovecot
>
> velo:perl-5.32.1 $ postconf -m
> btree
> cidr
> environ
> hash
> pcre
> proxy
> regexp
> static
> unix
Indeed the lists of supported SASL mechanisms and map types are also
well worth checking.
> My SASL goes though Dovecot. From what I read, this is all done through
> pipes, so I assume both are independantr of each other when one is
> upgraded ?
Postfix uses a stable protocol to communicate with Dovecot, you should
be fine.
> Secondly, what is the recommended/best practice to document the build?
Postfix saves the build parameters in the install "makedefs.out" file,
but by all means put your build command into a shell script. I do
the same:
#! /bin/sh
make -f Makefile.init dynamicmaps=yes shared=yes pie=yes \
'CCARGS=-DDEF_MAIL_OWNER=\"postfix\" -DDEF_SGID_GROUP=\"maildrop\"
-DHAS_EAI -DUSE_SASL_AUTH -I/usr/local/include -DHAS_PCRE -DUSE_CYRUS_SASL
-I/usr/local/include/sasl -DUSE_TLS -I/usr/local/include/db5 -DHAS_CDB
-DHAS_LMDB' \
'AUXLIBS=-L/usr/local/lib -lsasl2 -lpam -lcrypt
-Wl,-rpath,/usr/local/lib -fstack-protector-strong -lssl -lcrypto
-L/usr/local/lib/db5 -ldb-5.3' \
'AUXLIBS_CDB=-L/usr/local/lib -Wl,-R,/usr/local/lib -lcdb' \
'AUXLIBS_PCRE=-L/usr/local/lib -Wl,-R/usr/local/lib -lpcre' \
'AUXLIBS_LMDB=-L/usr/local/lib -Wl,-R/usr/local/lib -llmdb' \
command_directory=/usr/local/sbin \
config_directory=/usr/local/etc/postfix \
daemon_directory=/usr/local/libexec/postfix \
data_directory=/var/db/postfix \
mailq_path=/usr/local/bin/mailq \
newaliases_path=/usr/local/bin/newaliases \
queue_directory=/var/spool/postfix \
sendmail_path=/usr/local/sbin/sendmail \
shlib_directory=/usr/local/lib/postfix \
html_directory=/usr/local/share/doc/postfix \
manpage_directory=/usr/local/man \
readme_directory=/usr/local/share/doc/postfix \
makefiles
> Create a shell file into which the make makefile arg1=x arg2=y etc are
> written? is there a recommended name? (since that would become the
> de-facto record of options used to build that version, useful when
> building next).
You can always recover the settings from "makedefs.out", unless that's
also lost.
> just upgraded openssl to 1.1.1j and it sits in /usr/local hiearchy
> (leaving the original elderly Apple version in /usr).
You can generally use homebrew if you don't want to build it yourself.
> While the $PATH is set to put /usr/local/bin ahead of /usr/bin, I am not
> aware of what mechanism exists to tell "make" where to find the new
> libraries against which to link Postfix. ( looks in the install page and
> didn't find such reference). Any pointer ?
See AUXLIBS above. This is document in the INSTALL tutorial.
http://www.postfix.org/INSTALL.html
http://www.postfix.org/INSTALL.html#build_other
> Third question: Install location.
>
> I know of the shlib_directory option. However, if I do a "make upgrade"
> does this imply that it will replace the original Apple-supplied
> executables in directories that are now SIP protected (Snow Leopard
> doesn't have SIP, but would still want to know).
Well, it can't replace these, so the installation would fail if you
tried. However, if you correctly configure config_directory,
command_directory, daemon_directory, ... to all be under
/usr/local/{etc,sbin,libexec,...}, you won't have that problem.
See above.
> Is there an easy mechanism to get the "make upgrade" to send
> everything to /usr/local equivaent of the original?
See above.
--
Viktor.