文字化けするsvnクライアントを,純正に近い構成で矯正する.

OSXを含む異機種混在環境でsvnクライアントを使うとき,日本語の濁点などが混じると酷い目に遭うのは,UTF-8-MAC辺りのキーワードでぐーぐるセンセイに聞けば山のように出てくる話.

解決策は,パッチを当てること.MacPortsfinkを使え,というのが大多数の意見.
けれども,私は,MacPortsfinkが嫌い.同名コマンドが別のパスにあるのがイヤ.だから,/usr/local/bin に置くというのもダメ.

せっかく Apple が,インストールイメージの元になったソースをビルドスクリプト付きで公開しているのだ.こいつを使って,最小の変更量で SubversionUTF-8-MAC 問題を解決したい.

参考資料

私が行いたいことと,一番近いブログエントリは「Subversion の 日本語文字化け UTF-8 問題」.ほぼ同様の記述が,Googleノートブックのどこかでも見つかる.
でも,/usr/local にインストールするのと,純正環境と同じコンフィギュレーションにならないのとで,今回は参考とするに留める.

もし,上記エントリと同じ方針で行く場合は,一つ注意点がある. www.opensource.apple.com のディレクトリ構成が変更になっているので,URLはそれに合わせて変更しないといけない.

What I did.

言うまでもなく,Xcode のインストールが必要.ていうか,svn で困るということは,Xcode 入っているよね?

一連の作業の大部分は,super user でなくて構わない.最後の一瞬だけ,sudo が要る.

curl -O http://www.opensource.apple.com/tarballs/subversion/subversion-16.tar.gz
curl -O http://subversion.tigris.org/nonav/issues/showattachment.cgi/813/utf8precompose_macosx_2.patch

ん? neon? それは要らない.あれが影響するのは libsvn_ra_dav だけ.今回パッチを当てる箇所とは無関係.

tar xzf subversion-16.tar.gz
patch -p0 < utf8precompose_macosx_2.patch
cd
subversion-16
make

これで,configure から何から一気にやってくれる.
しばらくしたらビルドが終わる.

make install

インストールルートは /tmp/subversion/Release になっている.
さて,パッチが当たったコードは,libsvn_subr に含まれている.これを /usr/lib にコピーする.

sudo cp /tmp/subversion/Release/usr/lib/libsvn_subr-1.0.0.0.dylib /usr/lib/libsvn_subr-1.0.0.0.dylib

再起動の必要は,たぶんない.けれども,何かデーモンとして動いているものがあるなら,念の為リブートしてもよいかも.

これで,完了.変更量最小で,SubversionUTF-8-MAC 問題とはオサラバできる.

加筆

どうやらLeopardは10.5から10.5.6まで,subversion-16 のままのようだけれども,将来はどうなるか判らない.純正環境に入っているのが subversion-16 であることを事前に確かめた方が良いかもしれない.