OldType解剖メモ

OldTypeのバックエンドをいろいろ覗いてみる。

Kahuaをインストール

今回使ったのは 1.0.7.2。はじめてのKahua

sourceforgeからソースをもってくる

今回いろいろいじったバージョンはこれ。

URL: http://svn.sourceforge.jp/svnroot/oldtype
リポジトリのルート: http://svn.sourceforge.jp/svnroot/oldtype
リポジトリ UUID: f630802a-1f37-0410-bb6b-cab20af607b7
リビジョン: 295
ノード種別: ディレクトリ
準備中の処理: 特になし
最終変更者: kiyoka
最終変更リビジョン: 295
最終変更日時: 2008-03-01 11:07:47 +0900 (土, 01  3月 2008)

OldTypeを動かしたい

/oldtype/trunk/Kahua/oldtype にあるメモを参考にインストールしてみる。

$ ./DIST gen
$ ./configure --with-site-bundle=$HOME/site/oldtype
$ make
$ make install

で、make installのところでエラー。

/usr/local/bin/kahua-install -S /home/haya/site/oldtype2 -t script --no-overwrite 
Usage: kahua-install [<options>] file ...
options:
  -c conf-file     specify configuration file.
  -S path-to-site  specify path to a site bundle.
  -U               uninstall files instead of installing.
  -t type          specify install type:
                   script|static|base|plugin|template.  static by default.
  -r rename        rename file to name.  When this option is given,
                   only one file can be specified.
  --no-overwrite   if the target file exists, the file won't be installed.
make: *** [install] エラー 1

Makefileを修正。

 install: 
        $(KAHUA_INSTALL) $(KAHUACONFIG) -t script $(SCRIPTFILES)
-       $(KAHUA_INSTALL) $(KAHUACONFIG) -t script --no-overwrite $(LOCALSCRIPTFILES)
+       # $(KAHUA_INSTALL) $(KAHUACONFIG) -t script --no-overwrite $(LOCALSCRIPTFILES)
        $(KAHUA_INSTALL) $(KAHUACONFIG) -t static --no-overwrite $(STATICFILES)
        for f in $(PLUGINFILES); do \
          $(KAHUA_INSTALL) $(KAHUACONFIG) -t plugin -r $$f $(PLUGINDIR)/$$f;\

これでインストールされたらしい。

しかし、$HOME/site/oldtype以下にあるファイルがどうも足りていないらしい。よくわからないけど、Kahuaでスケルトンを予め作っておいて、そこにインストールすればいいんじゃないかと考える。

Kahuaでスケルトン作成

kahua (Kahua Project) · GitHub あたりを参考に。

$ cd $HOME/site
$ kahua-package create oldtype
$ cd $HOME/sourceforge/oldtype/trunk/Kahua/oldtype/
$ make
$ make install

これで必要なファイルが揃ったらしい。make installのログに表示される指示に従い、site/oldtype/app-serversに以下のエントリを追加。

(oldtype :arguments () :run-by-default 1)

サーバーを起動してみる。

$ sudo kahua-spvr -S . --httpd 8080
*** ERROR: Compile Error: cannot find file "oldtype/parse.scm" in *load-path* ("/home/haya/site/oldtype/app" "/usr/local/lib/kahua" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.8.13/lib")

Stack Trace:
_______________________________________
  0  (eval '(use oldtype.parse) m)
        [unknown location]
  1  (initialize-plugins)
        At line 210 of "/usr/local/lib/kahua/kahua-server.scm"

サーバーを起動してみる。

$ sudo kahua-spvr -S . --httpd 8080
*** ERROR: Compile Error: cannot find file "oldtype/parse.scm" in *load-path* ("$HOME/site/oldtype/app" "/usr/local/lib/kahua" "/usr/local/share/gauche/site/lib" "/usr/local/share/gauche/0.8.13/lib")

Stack Trace:
_______________________________________
  0  (eval '(use oldtype.parse) m)
        [unknown location]
  1  (initialize-plugins)
        At line 210 of "/usr/local/lib/kahua/kahua-server.scm"

どうもロードされているライブラリが、あるべき場所にないらしい。$HOME/site/oldtype/app が load-path にあるので、そこに色々投げこめばいいらしい。

$ cd $HOME/site/oldtype
$ cp $HOME/sourceforge/oldtype/trunk/Kahua/oldtype/oldtype/* app/oldtype/ -r
$ sudo kahua-spvr -S . --httpd 8080

起動成功? エラーで落ちる気配はない。ブラウザで http://localhost:8080/ を表示してみる。

動いた。

http://gyazo.com/0f73f4903297c574ffd085df54dc0b9c.png

でも画像ファイルが読みこまれていない。調べてみると、どうも静的なファイルは $HOME/site/oldtype/static/oldtype/ 以下を読んでいるらしい。そこで、$HOME/site/oldtype/app/oldtype 以下の静的なファイルを移動する。

$ cd $HOME/site/oldtype
$ mv app/oldtype/oldtype.js app/oldtype/staticimg app/oldtype/import static/oldtype/

http://gyazo.com/87dbf5957eafebcdd3f947c53a3164cd.png

ちゃんと画像が読めるようになった。

(つづく)