torutkのブログ

ソフトウェア・エンジニアのブログ

Bazaarのリポジトリビューア loggerhead

CVSSubversionにおけるViewVCのように、Bazaarのリポジトリ情報をWebブラウザで可視化するツールが、loggerheadです。

https://launchpad.net/loggerhead/+download

依存パッケージのインストール

pythonで書かれており、以下のpythonパッケージが必要です。

python-simpletal以外は、[EPEL]yumリポジトリからrpmパッケージをインストール可能です。python-simpletalは、Fedora 7に標準搭載なので、Fedora 7〜9のミラーサイトからSRPMを入手し、rpmbuildでRPMを作成してインストールしました。

なお、Fedora 10以降のpython-simpletalのSRPMCentOSだとrpmbuildでエラーとなりました。

loggerheadのインストール

まずはダウンロードして展開します。中にあるserve-branchesを実行すれば、Webアクセスが可能となります。

$ ./serve-branches --port=8765 ~/bzr/myrepo

apacheから起動することもできるようです。

loggerheadの自動起動

loggerheaddを/etc/init.dディレクトリにコピーし、内容を修正します。

LHUSER=loggerhead      <--- loggerheadデーモンのユーザを指定
URL_PREFIX=/repos      
PORT=8765                   <-- loggerheadのポート番号
BZRROOT=/path/to/bzr_repos  <-- Bazaarリポジトリ(ブランチ)パスを指定

修正後、chkconfigコマンドで登録します。

# chkconfig --add loggerheadd
serviceコマンドではOKだが自動起動でエラー

CentOSの場合、initからsudoで実行すると以下エラーが発生しました。

sudo: sorry you must have a tty to run sudo

暫定回避策は、/etc/sudoersのDefaults requiretty行をコメントアウトすることですが、セキュリティが弱くなるようです。あるべき解決策は調査中。

json違いでエラー

python-simplejsonではなく、python-jsonパッケージをインストールしていたら、履歴表示でエラーが発生します。

apacheからloggerheadによる表示

/etc/httpd/conf.d/loggerhead.confを作成します。

<Location "/repos/">
  ProxyPass http://127.0.0.1:8765/
  ProxyPassReverse http://127.0.0.1:8765/
</Location>