svn commit: r358411 - head/contrib/sendmail/src

John Baldwin jhb at FreeBSD.org
Tue Mar 3 17:08:35 UTC 2020


On 3/3/20 6:48 AM, Cy Schubert wrote:
> On March 2, 2020 2:50:47 PM PST, Hiroki Sato <hrs at FreeBSD.org> wrote:
>> Jung-uk Kim <jkim at FreeBSD.org> wrote
>>  in <8e60a869-fe1e-9314-ffdc-76ed3e2dc081 at FreeBSD.org>:
>>
>> jk> > I merely try to understand how to unbreak upgrade path for
>> 11.2-STABLE workstations
>> jk> > with stock sendmail and SSL support that also has many ports
>> installed including
>> jk> > ports requiring new openssl API. Because buildworld fails and
>> upgrade is broken.
>> jk> I am also trying to understand your problem.  Which port is
>> specifically
>> jk> requiring new OpenSSL API for you?
>>
>> The problem eugen@ is trying to explain is (correct me if this is
>> wrong):
>>
>> 1. One needs to install OpenSSL from ports if she wants to install
>>    software which depends on it.  deskutils/nextcloudclient, for
>>    example.  Setting DEFAILT_VERSION+=ssl=openssl is strongly
>>    recommended in this case for consistency.
>>
>> 2. Handbook says enabling SMTP AUTH requires the following in
>> make.conf:
>>
>>     SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
>>     SENDMAIL_LDFLAGS=-L/usr/local/lib
>>     SENDMAIL_LDADD=-lsasl2
>>
>>    However, this variables make the buildworld target to pick up
>>    OpenSSL from ports if installed, not from base, in the middle of
>>    building sendmail.  "make buildworld" will always fail.  There is
>>    no way to avoid OpenSSL from ports if she wants software such as
>>    deskutils/nextcloudclient.
>>
>> This build breakage occurs with sendmail + openssl from ports, not
>> related to cyrus-sasl2.  A shlib mismatch between sendmail and
>> cyrus-sasl2 in terms of OpenSSL library is another issue.
>>
>> I think there are several workaround, but the primary problem is that
>> people can get confused with instructions in the handbook.  I suggest
>> to update the handbook:
>>
>> a) If you do not have security/openssl on your system, set the
>>    following in make.conf and rebuilt the world:
>>
>>     SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
>>     SENDMAIL_LDFLAGS=-L/usr/local/lib
>>     SENDMAIL_LDADD=-lsasl2
>>
>> b) If you have security/openssl, sendmail in the base system does not
>>    support SMTP AUTH because of incompatibility with the newer
>>    versions of OpenSSL.  Use mail/sendmail from ports.
>>
>> I still feel that b) is sub-optimal, but it would be too complex to
>> make them coexist with each other.  The attached patch and putting
>> SASLBASEDIR=/usr/local into /etc/make.conf instead of the SENDMAIL_*
>> variables should mitigate the first problem but if
>> security/cyrus-sasl2 was built with OpenSSL from ports, the shlib
>> mismatch still occurs.
>>
>> -- Hiroki
> 
> Buildworld should only use libraries in /usr/obj. I've found and fixed these in ntp, Heimdal and amd. Base sendmail build shouldn't use installed libraries or headers.
> 
> The implications are obvious. 

While that rule is true in general, the SMTP AUTH bits for base sendmail have
always been a special case like this.  I switched to postfix several years
ago, but prior to that I was doing the same thing on my mail server.

I think hrs' new text for the handbook is probably the right answer.

-- 
John Baldwin


More information about the svn-src-head mailing list