SvnAuthzAdminPluginを0.10で動かす

昨日の続き...http://d.hatena.ne.jp/kanu-orz/20080930/1222769321


Trac Lightningでは便利に動いているSvn Authz Admin Plugin。
0.10でもとTracHacksから落としてきても手元の環境*1では上手く動かなかったのは昨日書いた通り。そもそもTracHacksには0.10用しか無く、0.11は有志によるPatchが提供されている状態。そんな状態なのに0.10で動かないのは納得でき〜んということで調べてみました。*2
pythonは(も?)良く分からないので、そこはグーグル大先生頼り。


エラーメッセージを頼りに色々みていくとどうも、pathname2url/url2pathnameの辺りがwindows環境で問題になっているのを発見。
んで、Trac Lightningの方のソースを確認すると使わないように修正されている。
「これだ!」
ということで早速、admin_ui.pyを開いて14行目にある

from urllib import pathname2url, url2pathname

をサックリ削除。
次にエディターで「pathname2url」をサックリとnullに全置換(つまりは削除)
続いて「url2pathname」もサックリとnullに全置換。
編集を保存したら

setup.py install

としてプラグインをインストール後、Apache再起動して無事に動作することを確認。


以上で対応は完了。
お好みによってtemplates/admin_authz.csを修正して日本語化すると、プロジェクトでの株が上がるかも(笑)


注意事項として、trac.iniのtracのセクションに

authz_file = C:\trac\projects\svn.authz
authz_module_name = SampleProject

な感じで「authz_file」「authz_module_name」の指定が必要。


当然のことながらSubversionでauthzを使うように設定しないと駄目なのでApacheの設定も忘れずに行いましょう。


とここまでやって自力解決したのは良いけど、TracLightningの1系にSvnAuthzAdminPluginって入ってたりするんだっけかな?

*1:手元の環境はWinswos2003 Apache/2.0.59 SVN/1.4.2 Python/2.4.3 mod_python/3.2.8 Trac/0.10.4

*2:もしかすると他の環境では問題なく動くのかもしれない。Linux環境では問題なく動く可能性が高い