Subversionがくそ重い!2

つづき。Subversionリビルドで悪戦苦闘。

これまでのあらすじ
Subversionがすごく重い!原因はどうやらNeon0.24.7にある模様。0.25.5にバージョンアップすればどうかと思うが、公式サイトで落とせるSubversionrpmは0.24.7依存なので、インストール不能Subversionをリビルドしなければならない。

さて。

とりあえずneonneon-develの0.25.5を入れた。で、subversion-1.3.0.tar.gzを落としてきてconfigure, makeでバイナリ作成、これを使ってみると、めちゃ速い。やっぱりNeon 0.24.7がなんか悪さしてる。このバイナリを使いたいところだが、このままmake installするとパッケージ管理外リソースになってしまうので、できればrpmを作りたい。

Subversionのソースアーカイブには、rpmパッケージを作るためのスクリプトが最初から入っている。例えば、packages/rpm/rhel-4/Makefileである。これを使えば、と思ったが、このスクリプトコンパイル対象がsvn管理下にあることを前提としているので、svn statusとか平気で叩いて「svn管理対象じゃない」とエラーを吐いて落ちる。

svnコマンド叩いている部分を全部固定値に書き直して、実行・・・ビルドは通る。しかし、その後のテストで落ちる。file://と、svn://のテストは成功するが、http://使う部分がダメ。またhttpか・・・。

ログを見てみると、Redhat Enterprise Linux4は、デフォルトでSELinuxが有効になっているらしく、Subversionがテストのためにhttpdを上げようとして失敗している。まったく、余計なことを・・・。setenforce 0してSELinuxの機能を殺して、再度挑戦。

これでもhttpdがあがらない。再びログを見る。UserとGroupを設定していないと起動しないらしい。rootであがるんじゃねーのかよ。ここで使っているhttpd.confはpackages/rpm/rhel-4/httpd.davcheck.confをベースにしているので、これにUserとGroupの定義を加える。

今度こそ・・・次は、"svn: Unrecognized URL scheme for 'http://localhost:15835/svn-test-work/local_tmp/repos'"などと言ってくる。何を言っているんだ、URL schemeってあんた、http://のどこがおかしいんだよ?わけがわからん。

ここで諦めて、気まぐれにsrc.rpmからの作成も試みたが、結局ビルドしているわけで、同じところで失敗する。まぁ予想通りなので落胆することも無し。

環境がどこかおかしいのだろうと思う。本当にうまく動いていないのかもしれないが、1.3系のSubversionNeon 0.25.xに対応しているのは確認している(0.25.1以降であればネットワーク使用中でも割り込みかけられる、という記述がrelease-noteにある)。

Neon 0.24.7のまま使ってしまおうか、とも思ったが、svn log叩いただけで20秒待たされるのはやはり我慢ならない。

仕方が無いので、最初に試したビルドでmake install決行。いまのところ、ご機嫌に動いているので、これで良しとする。ログは取ったから、不要になったら突っ込んだファイルを根こそぎ消せば良し。