_ [comp] hiki 設置作業

docs とか projects を hiki に移してみようと画策。hiki 自体は以前 deb を作っていたのでこれを使用。 以前は local ViewCVS と cvs の組み合わせ で運用のテストをしたが、今回は deb で入れた ViewCVS と subversion の組み合わせで管理してみようと思う。 ところが、ViewCVS は install 時に設定ファイルの場所とか決め打ちしてくれるので、何とかして個々人の viewcvs.conf を使えないかと思ったが、Python 触ったことないし挫折。まぁ個々人が repository 持つほうが特殊用途なのかもしれないけど。仕方ないので、/usr/lib/python2.3/viewcvs/ を手元に cp し、中の CONF_PATHNAME を書き換え。python のバイトコンパイルは

/usr/bin/python2.3 /usr/lib/python2.3/compileall.py -q ./viewcvs/

か。そして viewcvs.cgi の LIBRARY_DIR も書き換え。さらに viewcvs.conf のある directory で ln -s /etc/viewcvs/templates。かなり負け。と思ったら、#232461 というヒントが。手元に置いた viewcvs.cgi を編集。

+import os
+os.environ['CONF_PATHNAME'] = '/XXXXXXX/viewcvs.conf'

viewcvs/{cvsdb,query,viewcvs}.py を編集。

-CONF_PATHNAME = "/etc/viewcvs/viewcvs.conf"
+import os
+CONF_PATHNAME = os.environ.get('CONF_PATHNAME')

これはいい感じ。 さて個人用の ViewCVS が準備できたので、早速 subversion repo を表示させてみようと思ったら、#220107, #231364 (#232365, #232366, #232591) 及び #231982 に当たってしまって駄目。とりあえず libswig1.3 を 1.3.21-1 から 1.3.19-2 に downgrade してかろうじて突破。 ひとまず最初の状態で import。

  1. mkdir SVN
  2. svnadmin create SVN/repo
  3. cd /XXXXXXXX/hiki/data/text
  4. svn import -m ‘import Kip Hiki’ file:///XXXXXXXX/SVN/repo/hiki

次に co。

  1. mv /XXXXXXXX/hiki/data/text /XXXXXXXX/hiki/data/text.ORIG
  2. svn co file:///XXXXXXXX/SVN/repo/hiki
  3. mv hiki /XXXXXXXX/hiki/data/text

まぁもっといい方法がありそうだけどこれで。 hikiconf.rb に $repos_root を設定。

$repos_root = 'file:///XXXXXXXX/SVN/repo/hiki'

plugins/ に /usr/share/hiki/misc/plugin/svn.rb への symlink を張る。plugins/00default.rb の hiki_menu メソッド中の適当な位置に

if( @page != nil )
  s = @page.escape.escapeHTML
  s.gsub!(/%/, '%25')
  menu << %Q!<a accesskey="v" href="viewcvs.cgi/hiki/\#{s}">ViewCVS</a>!
end

を追加。

_ [comp] hiki private 化

BASIC 認証を用いて、他者は閲覧のみ可能という偏屈モードにしてみた。 まず、plugin/00default.rb の hiki_menu メソッド中の cgi_name を変更(例えば admin/)。admin/ 以下に、元の hiki ディレクトリ中のファイルを複製する。元の hiki.cgi を次のようにいじる。

   cgi = CGI::new
+  cgi.params.delete( 'c' )
+  cgi.params.delete( 'p' )

これで元の hiki.cgi はコマンドを一切受け付けなくなる。後は admin/ 以下に .htaccess でも仕込めばよい。 plugin/svn.rb での commit log に ENV[‘REMOTE_USER’] を書き出すようにすれば、誰が変更したかばっちり残る。 それにしても、めっちゃ手抜き。つか、ここまでするんなら何も Wiki じゃなくてもいいような気がしてきたが…。

_ [debian] viewcvs 0.9.2+cvs.1.0.dev.2003.08.26-1vd1

viewcvs-install-debian で CONF_PATHNAME を設定する SetConfPath を除去しないと、折角書き換えたところが上書きされてしまった。また、viewcvs.conf のある場所に templates/ があることが前提になっているようだけれど、そこまで追い切れないので、symlink を張ってお茶を濁す。

_ [comp] makehina-di 更新

1.32 が出ていたので更新。