2017年3月1日水曜日

【備忘録】Postfix 3.2.0 with LibreSSL をコンパイルしてインストールしてみた

postfix 3.2.0 + LibreSSL は、


の方法ではコンパイルエラーが出ました。修正コンパイルするのに手間取ったので備忘録として残しておきます。

コンパイルエラー


../../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 件のコメント: