cvsを認証必須のプロキシ経由で使いたい
目的
id:taiyo:20080401#p1 を参照。
結果
社内プロキシの設定では、CVSプロトコルを用いての取得はムリ(80番以外のポートへのCONNECTメソッドを許可していないため)。
ViewCVSなどのWebインターフェースを経由してのアクセスなら可能なはず(CVSGrabを使用)。ただし未だ成功せず。
CVSの仕様
CVSのドキュメントには、proxyについての記載なし。また、ソース中にもそれらしき箇所はない。
参考情報(Jim White - Using CVS via HTTP proxy)によると、
cvsのプロキシも今の状況では使えない
CVSにプロキシパッチをあてれば良いか?
しかし、社内プロキシは、cvspserver(2401番ポート)でのCONNECTメソッドは許可していない。
% (printf "CONNECT cvs.ruby-lang.org:2401 HTTP/1.0\n\n\n"; sleep 1 ) |\ > telnet abcproxy.examlple.com 8080 | grep '^HTTP' Connection closed by foreign host. HTTP/1.0 403 Forbidden
cvsとproxy関連で cvsproxy(http://www.sra.co.jp/people/m-kasahr/cvsproxy/)というツールもあるが、このツールはプロキシサーバで動かす必要があり、それも出来ない(プロキシサーバのログインアカウントは持っていない)。
CVSプロトコル以外ではどうか?
CVSGrab(CVSGrab - CVSGrab - Read sources stored in CVS behind a firewall)というツールがある。
これは、ViewCVSなどのウェブインターフェースからCVSツリー全体を落とすためのツール、のよう。
httpなら普通にアクセスできるはず。
ドキュメントにあるように試してみるものの、
% sh ../cvsgrab-2.3/cvsgrab.sh \ -url http://cvs.sourceforge.net/viewcvs.py/cvsgrab/cvsgrab/ \ -destDir . \ -packageDir CVSGrab \ -proxyHost abcproxy.examlple.com \ -proxyPort 8080 \ -proxyUser 4000000 \ -proxyPassword PassWord CVSGrab - -Using proxy abcproxy.examlple.com:8080 CVSGrab - -Login on the proxy with user name 4000000 ←ここで停止
なんでだろうなぁ。
その他の情報
http://cvs.m17n.org/cvs/committer.ja.html
committer の生活(http://cvs.m17n.org/cvs/committer.ja.html)というページが、CVSでファイアウォールを越えるための一般的な方法が種々書かれていて、検討の参考になった。
ただしいずれの方法も、ファイアウォールサーバでの設定か、外部の中継サーバか、SOCKS接続環境が必要なため、使用できない。悲しい。