の方法ではコンパイルエラーが出ました。修正コンパイルするのに手間取ったので備忘録として残しておきます。
コンパイルエラー
../../lib/libtls.a(tls_dh.o): In function `tls_auto_eecdh_curves':
postfix-3.2.0/src/tls/tls_dh.c:291: undefined reference to `SSL_CTX_set1_curves'
postfix-3.2.0/src/tls/tls_dh.c:307: undefined reference to `SSL_CTX_set1_curves'
collect2: ld returned 1 exit status
make: *** [smtpd] Error 1
make: *** [update] Error 1
修正
src/tls/tls.h
#include <openssl/ssl.h> の下に
#undef OPENSSL_VERSION_NUMBER
#define OPENSSL_VERSION_NUMBER 0x10000002L
を入れること。
このバージョン「0x10000002L」は,
#if OPENSSL_VERSION_NUMBER < 0x10100000L
#if OPENSSL_VERSION_NUMBER >= 0x0090707fL
の2つの条件に当てはまる必要がある模様。 0x10100000L を超えると、OPENSSL_VERSIONが定義されないとエラーがでて、定義してもこんどは別のエラーがでると。。。 他のソースでもバージョンチェックによっていろいろ場合分けが増えたのが原因かなぁと思います。
確認
ldd src/postfix/postfix
libssl.so.39 => /usr/local/lib/libssl.so.39 (0x00007fd811de7000)
のように、 /usr/local/lib 以下のものを使っていれば、自前でしか入れていないので、LibreSSLを使っていると判断できるでしょう。
アップグレード
コンパイルは
を参考にしてみてください。
アップグレードは
- /etc/postfix (設定)フォルダのバックアップ
- /etc/init.d/postfix stop
- make upgrade
- /etc/init.d/postfix start
LibreSSL と付き合うのは大変ですが、頑張りまーす〜。
2017年3月1日 @kimipooh
0 件のコメント:
コメントを投稿