2003/ 9/ 9

地雷踏みまくり

9/15 にサーバ置き換えを目標に、色々と作業したりしていた訳ですが、なんか微妙な地雷を踏みまくってみたり。

まずはメールサーバを POP3 から IMAP4/POP3 に変えるために cyrus-imapd を入れようとしたらこけて入らない。見てみると databases/db3 の build がこけてる。

ume さんから -pthread 問題でそ、というツッコミが入り、つーわけで、send-pr よろしくということで、send-pr。

nork さんに協力してもらいながら突っ込んでもらう。

Cc: maintainer し忘れてしまったのにがっくり。

次に SpamAssassin を sendmail と連動させるために mail/spamass-milter を入れてみたところ、また -pthread 関係でこけてみたり。

今度はそのまま追い掛けて突き止めたところで、ume さんに添削してもらってから send-pr。今度は Cc: に maintainer を忘れずに付けて送る。

こちらは放置状態だけど、手元では build できてるのでおっけ~。

最後に、sys/mac.h や sys/mac_policy.h を C++ なコードで #include すると libc とリンクされないぞ問題。単に extern "C" で括るのが忘れられているだけ。

とりあえず __BEGIN_DECLS/__END_DECLS で関数群を括るようにして解決。

work around としては extern "C" { ... } の中に #include を入れる。ダメすぎ。

なんというか、簡単なものばかりを地味に踏んでて寂しかったり。まぁ、大きいのを踏んでも困るだけなのですが。

2003/ 9/11

mac_portacl

mac_portacl は、特定のユーザ/グループに対してのみ tcp/udp での bind を許可する、という事が行えます。

ということで、ちょいちょいっと定義を書こうと思うとしたところ、やり方としては sysctl MIB の security.mac.portacl.rules に列挙、という事になっています。

その書式は idtype:id:protocol:port[,idtype:id:protocol:port,...] という形になってますが、いざこれを書こうとすると半端でなく面倒。

idtype が uid/gid の指定。id は UID/GID を番号で指定。protocol は tcp/udp。port はポートを番号で指定。文字での指定は許されません。さらにこれを延々と列挙。あとでメンテナンスするにしても面倒です。

ということで、簡単に書けて sysctl を発行してくれるスクリプトをざくっと書いてみたり

(uid|gid):id (tcp|udp|both):port[,port,...] ってのを列挙したらいいだけにしたので、結構楽かな、という感じ。

ユーザ/グループ ID とポートは、名称指定も可能にしたので、それなりに見やすい/書きやすい感じにはなったかな。

2003/ 9/15

w3m

w3m で IPv4/IPv6 固定でアクセスしたいっという需要を満たすための patch。ports で www/w3m/files 以下に置けば自動的に当たります。

ただし、always M17N=yes しか考えていません。関わる部分はコード的にはないはずなので、M17N=yes じゃなくても当たると思います。行は違うかもしれませんが。

メインサーバの置き換え

置き換えてみたものの、予想外のトラブルに見舞われてみたり。3Com の NIC に ADSL モデムを繋いだらパケットロスしまくりとは……。

5-CURRENT が悪いのかな、と思いつつ色々試してみたところ、単に Intel の NIC に繋ぎ直せば ok ということで……なんというか。

とりあえずは、安定稼働に移ったので ok ……と思いきや、昼過ぎにいきなり kernel panic。がっくり。

とりあえず様子を見てみて、ダメだったら旧サーバに戻す、かなぁ。