私家版 CVSweb 〜 XHTML1.1 準拠の試み



CVSweb とは

CVSweb は、Bill Fenner 氏が FreeBSD プロジェクト での使用を想定して作成した CVS のレポジトリをウェブブラウザで閲覧できるようにするための CGI スクリプ トを基に、Henner Zeller氏、Henrik Nordström氏、Ken Coar氏、Dick Balaska氏、Jens-Uwe Mager氏らが機能拡張を行ったものです。

この CGI は大変優れたもので、レポジトリ内のファイルの一覧、ファイルの 内容、ファイルの変更履歴、任意バージョン間の差分などさまざまなものの閲 覧機能を平易なインターフェースで提供してくれます。

なお、本家の最新版は、 Hen's cvsweb から取得することができます。

また、本家版の別の拡張として、 FreeBSD CVSweb Project というものもあり、こちらの版の方が最終更新 日が新しいものになっています。

目指すもの

CVSweb はすばらしいソフトなのですが、 HTML4.0 Transitional なんていう腑抜けた HTML を吐き出します。ポリシーとして、そんな腑抜けた HTML が自分の管理下にあるのは許せません。そこで、これをより厳格な HTML を出力するように変更しようと企図しました。

当初は、 HTML4.01 Strict なものにしようと思って触り始めたのですが、思ったより作業が大変だったこ と、そして HTML はすでにもっと柔軟性のある XML への発展の道を辿り始め ていることを鑑みて、HTML 系言語の最新版である、 XHTML1.1 に準拠した HTML を出力することを目指しました。

そうはいっても、所詮は HTML4.0 で書くことのできた程度のものですから、 現状では、タグが大文字か小文字かくらいの違いしか現れていません。今後、 何か画期的な変更がしたくなったときにいいことがあるかもしれないしないか もしれないという程度の問題にすぎません。

第1段階として、XHTML1.1 の文法に抵触しないコードを生成するように調整す ることを目指します。それができた暁には、意味的な部分を再調整し、内容的 にも XHTML1.1 に適合したものとすることを最終到達点とします。

ダウンロードとインストール

現在、第1段階の作業中です。ぼちぼち、エラーがあまり発生しなくなったの で、これを公開します。ベースにした本家版は、 cvsweb-1.112.tar.gz です。

インストールの仕方は本家版と同じです。

  1. CVS のレポジトリのあるサーバで CGI を利用可能な Web サーバを立ち上げる。
  2. Perl のバージョン 5 以降を準備する。
  3. CVS が入ってないことはないはず。
  4. GNU RCS を準備する。
  5. 配布パッケージの icons ディレクトリに収録されている画像データの うち、必要なものを Web サーバが /icons/hanamoge.gif でアクセスできるように配置する。画像データのうち、 cvsweblogo.png は本配布パッケージ独自ファイルだが、それ以外は、 Apache の配布物にも含まれ ている。必要に応じて利用されたい。
  6. cvsweb.conf を適当に編集する。変更しないと、そもそも動作しないと 思われるのは、ファイルの冒頭にある CVSROOT の場所の指定と各種の コマンドへのパス設定である。
  7. cvsweb.conf を適当なディレクトリに配置する。
  8. cvsweb.cgi の $config を設定している部分を編集し cvsweb.conf を 配置した場所に変更する。
  9. cvsweb.cgi を CGI 実行が可能な適当なディレクトリに配置する。
  10. Enjoy!!

cvsweb.conf を変更する際、HTML コードを記述する必要のある部分や、設定 された値がそのまま CSS の パラメータとして利用される部分があります。HTML を記述する部分は、その HTML が XHTML1.1 準拠でない と出力されるコードは当然 XHTML1.1 準拠になりません。また、値が CSS の パラメータに利用される部分は、適切なパラメータを指定しないと、意図通り の表示になりません。

判明している不具合

動作上の不具合は以下のものです。

直したいと思っている項目は以下のものです。

思いつくものだけでもこのくらいあります。

本家との違い

XHTML1.1 準拠にするために、 行った変更は、次のような点です。

使用許諾条件等

本配布物の使用許諾条件は、本家と同じく、 The BSD License とするつもりですが、まだ、わたし自身の著作権表示等をしていないので、本 家版の License に抵触していそうな気がしなくもありません。次の版で修正 します。

なお、本配布物は、わたしが有益であるように努力して改変を行い配布してい るものですが、だからといって何らかの特定の目的に適合しているとか、何ら かの利益をもたらすとか、そういったことを保証するものではありません。本 配布物を使用したりしなかったりすることにより発生したりしなかったりする かも知れない損害やら利益やらそういったことに対してわたしは何らの責任も 負いかねます。

セキュリティ

十分気をつけているつもりですが、Perl による CGI プログラミングの経験が 浅いので、本家版よりも脆弱点が増えている可能性は否定できません。また、 本家版にあるかもしれない脆弱性を修正できた部分はないと思います。したがっ て、本家版より危険なことはあっても安全なことはないと思われます。

謝辞

なによりも、CVSweb というすばらしいソフトを開発し公開してくださった方々 に深く感謝します。

生成する XHTML1.1 コードの確認のために、 W3C の公開している Web Browsing & Authoring ツールである、 Amaya を使用しました。Amaya の 文書構造表示機能は、ほかのどんな方法よりも的確に誤りを指摘し、作業効率 を大きく向上してくれました。なお、レンダリングに難がある部分の確認には、 Netscape 7.0 を使用しました。

動作検証のためのサーバ環境には、FreeBSD 4.6-RELEASE + Apache 1.3.27 + perl 5.005_03 を使用しました。

上記のすべてのフリーソフトウェアの作者および配布に係わる方々に感謝しま す。


このページに関するお問い合わせは iorin@chibutsu.org 宛にお願いします
最終更新: Wed Mar 26 22:09:04 2003