next up previous contents
Next: 6.3 メール環境の設計 Up: 6.2 sendmail 8.9.x Previous: 6.2.1 source code

6.2.2 手順と注意

まず、db を作成します。db-2.4.14/build.unix/ の下で、../dist/configure を実行した後、make を実行すればカレントディレクトリに libdb.a が出来上がり ます。システムにインストールしても構いませんが、sendmail のライブラリの指定 をすればそのままでも構いません。

参考
db.1.85,1.86,2.3.14 などを利用する場合には特別な注意が必要です。 まず、1.8x の場合は、 PORT/[architecture name]/Makefile の OBJ1= の項目の中の ndbm.o を削除 しておきます。2.3.14 の場合には、ar を用いて libdb.a から dbm.o を削除 します。 同時に、PORT/[architecture name]/include/ndbm.h を参照されないように、移動 させておきます(こうすることで、標準の ndbm.h を参照します)。 これは、Sun の ndbm と Barkeley の ndbm とが、API 互換 ではあるが生成される database format が異なっているからで、その為に Berkeley ndbm を用いると aliases の NIS map を Sun の NIS が取り扱えなく なるからです。db.2.4.14 以降を利用する場合には、この心配は有りません。

次に、sendmail.8.9.1 を解凍し、sendmail-8.9.1/src の下に移り、 WIDE patch を当てます。 sendmail.8.8.x とは違い、sendmail の作成は全て Build スクリプトを通じて 行います。 但し、幾つかの設定が標準と違うので注意が必要です。8.9.x からは、 sendmail-8.9.1/BuildTools/Site/ に標準との相違を記述したファイルを用意します。 ここでは、sendmail-8.9.1 と同じディレクトリに db や bind のソースが あると仮定し、mx 用と nomx 用に2つのファイルを BuildTools/Site/ 以下に作成します。

[site.SunOS.5.5.mx.m4 ファイルの中]
define(`confMAPDEF', `-DNEWDB -DNDBM -DNIS')
APPENDDEF(`confLIBS', `-ldb')
APPENDDEF(`confINCDIRS', `-I../../../db-2.4.14/build.unix')
APPENDDEF(`confINCDIRS', `-I../../../named/')
APPENDDEF(`confLIBDIRS', `-L../../../db-2.4.14/build.unix')
APPENDDEF(`confLIBDIRS', `-L../../../named/')

[site.SunOS.5.5.nomx.m4 ファイルの中]
define(`confMAPDEF', `-DNEWDB -DNDBM -DNIS -DNAMED_BIND=0')
APPENDDEF(`confLIBS', `-ldb')
APPENDDEF(`confINCDIRS', `-I../../../db-2.4.14/build.unix')
APPENDDEF(`confINCDIRS', `-I../../../named/')
APPENDDEF(`confLIBDIRS', `-L../../../db-2.4.14/build.unix')
APPENDDEF(`confLIBDIRS', `-L../../../named/')

ここで、ファイル名の mx と nomx は環境変数 SENDMAIL_SUFFIX に指定(mx 又は nomx) した方が使われるという意味です。m4 ファイルの意味は、BuildTools/README を 読んで下さい。基本としては、APPENDDEF では指定したものが追加されるのに対して、 define では上書きされるという事です。

以上の準備が終わったら、環境変数 SENDMAIL_SUFFIX に mx, nomx の いずれかを指定して、src ディレクトリで Build を実行するだけです。 (但し、gcc は 2.7 以上のものがなければなりません。) ほどなくすると、src/obj.SunOS.5.5.sun4.mx (obj.[architecture name].mx) にバイナリが出来ます。

インストールは obj.SunOS.5.5.sun5.mx ディレクトリで make install を動かせば 出来ますが、これを何度も動かすと以前の sendmail が失われるので、 今回は手で行います。 インストールについては、後でもう一度解説をします。

最後に、CF を解凍して、sendmail.cf の作成に入ります。

参考
Berkeley new database を使わない場合は、db は必要ありません。その場合は、

define(`confMAPDEF', `-DNDBM -DNIS -DNAMED_BIND=0')
APPENDDEF(`confINCDIRS', `-I../../../named/')
APPENDDEF(`confLIBDIRS', `-L../../../named/')

として、Build すれば良いでしょう。



Noriyo Kanayama