Postfix と Ultrix


Ultrix での Postfix

Ultrix バージョン4は1990年代初めにさかのぼるものであるため、この ドキュメントはおそらく歴史的な価値しかありません。しかし Wietse が SunOS4 で Postfix を生かし続ける限り、非常にわずかな変更だけで Ultrix 4 で 動くはずです。いずれかのバージョンの Ultrix で Postfix を実際に使い続けて いる人がいたら、フィードバックを歓迎します。

このドキュメントの元になったのは、1999年6月2日に送られた、Christian von Roques によるEメールメッセージです。

私は Ultrix4.3a が動いている DECstation-3100 の MTA を postfix-19990317- pl05 にアップグレードしました。Ultrix で動かすのに必要だったパッチを 送ります。

. . .

Ultrix の /bin/sh のバグの一つに、`:' の引数のシェル変数セットが ヒアドキュメント内で展開されると、ゴミに展開されるというものがあります。 別のシェルの助けを借ります。全ての Makefile.in で全ての ``sh .../makedefs'' コールを ``$(SHELL) .../makedefs'' で置き換える必要があり、現在は ``make SHELL=/bin/sh5'' または zsh が使えます。

. . .

Ultrix の FD_SET_SIZE は 4096 ですが、新しいカーネルを構築して増やして いない限り、getdtablesize() はデフォルトでは 64 を返します。getrlimit() は RLIMIT_NOFILE を知りません。そのため、event_init() は常に警告をログに 記録します: `could allocate space for only 64 open files (64 ファイルだけを開くためのスペースを割り当てることができました。)'。

私は閾値を 256 から 64 に減らしただけですが、これはよくありません。 最初の問題がまだ残っています: Ultrix でソースを汚くせずにこの警告を なくす方法は?

最初の問題を回避するには、`sh' の代わりに `$(SHELL)' を使うように、 すべての Makefile.in ファイルを更新します。つまり Ultrix シェルトラブルを なくすには、非デフォルトシェルを与える必要があるだけです。

後者を回避するには、Ultrix の util/sys_defs.h を更新して、デフォルトの FD_SETSIZE を 100 にします。これはワークステーションでは十分なはずです。 1999年の時点ですら、誰も重要なメールハブを Ultrix 4 では動かそうとは していませんでした。