Tracの複数プロジェクトまとめ(TraM)

CentOS5.4+Trac0.11.2.1.ja1 を使って、1サーバで複数のTracを運用しています。
svnのリポジトリは /var/svn/hoge1, /var/svn/hoge2 みたいな感じで
それぞれのsvnに対して /var/trac/hoge1, /var/trac/hoge2 とTracを設定しています。

んで、複数プロジェクトの進行をチェックするのがちょっと面倒なので、Tracの複数プロジェクトをまとめるのをやってみました。
ちょっと調べてみると、こちらのリポジトリからTraM0.3をチェックアウトできるみたい。

svn checkout http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/TraM/branches/genshi-ja
cd genshi-ja
python setup.py install

で、インストール。ここまでは問題なし(本当は別のサイト見て0.2をインストールしちゃったので、一回やり直した)
あとチェックアウトしたリポジトリに入ってた t7823-genshi_modpython-r8333-011.diff を tracのソースにパッチ当て。trac/web/__init__.py のパッチみたいなので、pythonのsite-packagesのtracのディレクトリに移動して

patch < t7823-genshi_modpython-r8333-011.diff

設定ですが、同じくRyuzeeさんの所を参考にして作業。

まとめ用のsvn(/var/svn/all)とまとめ用のtracを作成(/var/trac/all)

svnadmin create /var/svn/all
chown -R apache /var/svn/all
trac-admin /var/trac/all initenv (リポジトリは/var/svn/all を指定、他は適当)
chown -R apache /var/trac/all

まとめたいTracプロジェクトの /var/trac/hoge1/conf/trac.ini とかに

tramplugin.* = enabled

の記述を追加。

最後に httpd.conf の設定ですが、ココでハマりました。

Alias /trac/hoge1 "/var/www/cgi-bin/trac.cgi"
<Location /trac/hoge1>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /var/trac/hoge1
</Location>
Alias /trac/hoge2 "/var/www/cgi-bin/trac.cgi"
<Location /trac/hoge2>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /var/trac/hoge2
</Location>

こんな感じの設定にしておいて、複数Tracのディレクトリを分けて管理してたので。ここにTramの設定を追加。

#All Project (TraM)
Alias /trac/all "/var/www/cgi-bin/trac.cgi"
<Location /trac/all>
    SetHandler mod_python
    PythonHandler tram.web.modpython_frontend
    PythonOption TracEnvParentDir /var/trac
    PythonOption TracUriRoot /trac
</Location>

としたら「Internal Server Error」
ログ見ると 「PythonHandler tram.web.modpython_frontend: ImportError: No module named web」
と。

んで、ココでしばらく悩んだ(setuptools辺りとかclearsilver入れ直したり、思い誤ってweb.pyインストールしたり)のですが。
tramの中見たら、tram直下にmodpython_frontend.pyが有ったので

Alias /trac/all "/var/www/cgi-bin/trac.cgi"
<Location /trac/all>
    SetHandler mod_python
    PythonHandler tram.modpython_frontend
    PythonOption TracEnvParentDir /var/trac
    PythonOption TracUriRoot /trac
</Location>

と変更したらそのまま動いた…
その他使い勝手とかまだ見てないけど、それは後日にしようかと。TracLightningくらい予めプラグイン乗っかってるパッケージ、Linuxに無いのかなぁ。

(追記)
何か統合タイムラインがエンコード関係の問題で動いてなかったので。site-packages/sitecustomize.py に

import sys
sys.setdefaultencoding('utf-8') # cp932 でも良いかな。

を書いて動かした。いやでもこの対応で良いのかな?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です