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。がっくり。
とりあえず様子を見てみて、ダメだったら旧サーバに戻す、かなぁ。