Mutt

FreeBSD 9.2 が出たので早速入れて遊んでいますが、packages に ja-mutt-devel が見つからない。そういえば 9.1 のときに ports を make しようとしたらエラーを吐いてしまい、そのときは packages にあった ja-mutt-devel-1.5.21.j2.tbz を安易に使っていたことを思い出しました。楽な道ばかりだとアレなので、今回はちょっと追いかけてみます。

結局のところ、Mutt の ports Makefile の CONFIGURE_ENV で _DONT_USE_CTYPE_INLINE_ が define されていて、/usr/include/_ctype.h の #include <runetype.h> が通らず、その先の /usr/include/xlocale/_ctype.h で _RuneLocale が未定義になって、怒られているようでした。

これは FreeBSD 固有の問題ですね。試しに CONFIGURE_ENV から -D_DONT_USE_CTYPE_INLINE_ を削って make してみると、今度は redefinition of ‘__wcwidth’ でエラーになるので、そう単純にはいきません。なんとなく /usr/include/_ctype.h の ifdef の位置が間違ってる悪寒がするので、_DONT_USE_CTYPE_INLINE_ が define されていても runetype.h を include するように書き換えてみたら、make が通りました。起動してみると、特に文字化けなどは無く、普通に日本語が表示できています。

動いてはいますが、これでいいのかどうか、まったく自信ありません(^^;

関連しそうな情報: 野良犬日記さんfreebsd-bugsのmisc/180413

(2013-Dec-13追記) 12/7 に ports が更新されていたので覗いてみると、-D_XLOCALE_CTYPE_H が追加で定義されるようになっていました。なるほど、これで xlocale/_ctype.h の大部分が make されなくなるので、上記の問題の部分は通らなくなりそう。確認のため make してみたらすんなり正常終了。めでたしめでたし。

コメントを残す

あなたのコメント

*