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 です。
インストールの仕方は本家版と同じです。
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 を使用しました。
上記のすべてのフリーソフトウェアの作者および配布に係わる方々に感謝しま す。