subversion/apache と Redmine のユーザを同期

同期というか、apacheの認証情報にredmineで使っているデータベースを使う方法。
Redmine には Apache-perlモジュールとして Redmine.pm というのがある。
http://www.redmine.org/wiki/1/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl
例えばredmineを /sites/redmine にインストールしたとすると /sites/redmine/extra/svn/Redmine.pm がそれ。
centos の場合は

yum install httpd-devel mod_perl

あと

yum install perl-Digest-SHA1 perl-DBI

これだとDBIが古くてDBD::SQLiteが入れられないようなので(sqliteをデータベースに使ってない人は他のモジュールを入れよう)

cpan install DBI
cpan install DBD::SQLite

とかで目的のモジュールをインストールした後

mkdir /usr/lib/perl5/site_perl/5.8.8/Apache/Authn
cp /sites/redmine/extra/svn/Redmine.pm /usr/lib/perl5/site_perl/5.8.8/Apache/Authn

とかして、Redmine.pm のヘッダに書かれているように httpd.conf を設定すればよい。(バージョンによってちょっとずつ違うみたい)

<Location /svn>
  SVNParentPath "/var/svn"

で、

svnadmin create /var/svn/hoge

がしてある場合、

http://xxxx/svn/hoge

にアクセスすると、ダイアログが出て redmine 上のプロジェクト hoge においてリポジトリの閲覧権限があるかどうかを調べてくれる(redmineのプロジェクト名とsvnリポジトリ名は合わせないといけない)。
動作が気に入らなければRedmine.pm をカスタマイズすればいいじゃなーい