Hi,

Thanks for the guidance Viktor.  I wanted to share what worked for me.  I was 
able to get Postfix compiling and working on High Sierra with the following 
command:

make -f Makefile.init makefiles \
CCARGS='-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\" 
-DDEF_COMMAND_DIR=\"/usr/local/sbin\" 
-DDEF_CONFIG_DIR=\"/usr/local/etc/postfix\" 
-DDEF_DAEMON_DIR=\"/usr/local/libexec/postfix\" -DUSE_TLS -DHAS_PCRE 
-I/usr/local/include -DHAS_SSL -I/usr/local/include/openssl -DHAS_MYSQL 
-I/usr/local/mysql/include' \
AUXLIBS='-L/usr/local/lib -lssl -lcrypto -L/usr/local/mysql/lib -lmysqlclient 
-lz -lm' \
AUXLIBS_PCRE='-L/usr/local/lib -lpcre’

This configuration includes PCRE, MySQL, and OpenSSL for SASL and TLS.  I found 
that I had to be very careful with the line continuations.  Either bash on High 
Sierra is very picky or my formatting was poor but I had to play with running 
the command until I was sure all of my options were being read correctly.

Hopefully this helps someone else.  I’d love to hear if someone figured out to 
get logging on MacOS back to normal.  It’s something I might investigate 
further.


On Nov 20, 2017, at 9:28 PM, Viktor Dukhovni <postfix-us...@dukhovni.org> wrote:



> On Nov 20, 2017, at 10:46 PM, AnotherGuyFromAlberta <crmckin...@shaw.ca> 
> wrote:
> 
> I recently upgraded a Mac server to 10.13 (High Sierra).  This server
> has been running for about 5 years and hosts Postfix.  After upgrading the
> OS I upgraded:
> 1.  dovecot to 2.2.33.2
> 2.  openssl to 1.1.0g
> 3.  pcre to 8.41
> 4.  postfix to 3.2.4
> 
> Everything appears to compile and work except TLS on Postfix.  It crashes
> with the same error
> every few minutes.  Here's a snippet of the crash:
> 
> Assertion failed: (ctx->pctx == NULL || ctx->pctx_ops != NULL), function
> EVP_MD_CTX_cleanup, file
> /BuildRoot/Library/Caches/com.apple.xbs/Sources/boringssl/boringssl-109.20.5/crypto/digest/digest.c,
> line 98.

The "BoringSSL" library is derived from and conflicts with OpenSSL.
With some care in the compiler options you may be able to build
a version of Postfix that is using OpenSSL and not Boring SSL.

I have (my own build of) OpenSSL 1.1.0 installed in /opt/openssl/1.1.0
and after configuration makedefs.out has:

 CCARGS=-I/opt/openssl/1.1.0/include -DUSE_TLS -DHAS_PCRE -DHAS_CDB 
-I/usr/local/include
 AUXLIBS=-L/opt/openssl/1.1.0/lib -lssl -lcrypto -L/usr/local/lib -ldb
 AUXLIBS_PCRE=-L/usr/local/lib -lpcre
 AUXLIBS_CDB=-L/usr/local/lib -lcdb
 shared=yes
 dynamicmaps=yes

This appears to produce a working Postfix with TLS.

 $ otool -L .../libexec/smtpd
 .../libexec/smtpd:
       @rpath/libpostfix-master.dylib (compatibility version 0.0.0, current 
version 0.0.0)
       @rpath/libpostfix-tls.dylib (compatibility version 0.0.0, current 
version 0.0.0)
       @rpath/libpostfix-dns.dylib (compatibility version 0.0.0, current 
version 0.0.0)
       @rpath/libpostfix-global.dylib (compatibility version 0.0.0, current 
version 0.0.0)
       @rpath/libpostfix-util.dylib (compatibility version 0.0.0, current 
version 0.0.0)
       /opt/openssl/1.1.0/lib/libssl-opt.1.1.dylib (compatibility version 
1.1.0, current version 1.1.0)
       /opt/openssl/1.1.0/lib/libcrypto-opt.1.1.dylib (compatibility version 
1.1.0, current version 1.1.0)
       /usr/local/opt/berkeley-db/lib/libdb-6.2.dylib (compatibility version 
0.0.0, current version 0.0.0)
       /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 
1.0.0)
       /usr/local/opt/icu4c/lib/libicui18n.59.dylib (compatibility version 
59.0.0, current version 59.1.0)
       /usr/local/opt/icu4c/lib/libicuuc.59.dylib (compatibility version 
59.0.0, current version 59.1.0)
       /usr/local/opt/icu4c/lib/libicudata.59.1.dylib (compatibility version 
59.0.0, current version 59.1.0)
       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 
1252.0.0)

The "posttls-finger" command works, and connecting to a loopback server yields:

 $ posttls-finger -c -l may "[127.0.0.1]"
 posttls-finger: Anonymous TLS connection established to 
127.0.0.1[127.0.0.1]:25: TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 
bits)
 posttls-finger: Server is anonymous

That said, it has become increasingly difficult to support Postfix
on Apple's most recent operating systems.  I think you should either
run the Postfix supplied by Apple, or choose a different O/S (a BSD
or Linux) for your mail server.

-- 
        Viktor.


Reply via email to