そろそろ夏祭りです。

夏祭りには、デジタルなカタログデータを Linux Zaurus SL-C700で持っていきたい。 といっても、ビューア作るほど時間も暇もないので、既存の検索システムにデータを変換して載せるのが現実的かな。
web検索すると昨年冬祭り(C63)で既に FreePWING を使って、EPWING辞書形式に変換して、qtjitenで検索するのを実践されていた方がいた 。 残念ながら使用された変換フィルターは公開されていなかったので、 日記に書いてあった内容(12月21日) を参考に同じようにデッチあげて、サークルカットにも対応してみた。:)

無保証,動かなくても自分でなんとかしてねってことで、参考程度に作った 変換フィルターなどをセットにして置いて( c64eb-kit.tar.gz/7KB )おきます。 このキットを使って変換するには、以下ファイル/ツールが必要です。 開発/変換した環境は Redhat Linux 9 + perl 5.8.0 です。 機種依存やOS依存の記述はしていないので、他のOSでも変換出来るかもしれませんが、 C7x0上で自前作成するには大量の空きディスク容量を必要としますので現実的では ありません。
参考までにこのキットを使って作成されるEPWINGファイルサイズは以下の通りです。 テキスト版で約9MB,サークルカット対応版では約200MBの保存領域が必要です。
-テキスト版の場合(参考)
   % du -k c64
   3108    c64/ROM1/data
   4       c64/ROM1/gaiji
   3116    c64/ROM1
   3140    c64/ROM2/data
   4       c64/ROM2/gaiji
   3148    c64/ROM2
   3008    c64/ROM3/data
   4       c64/ROM3/gaiji
   3016    c64/ROM3
   9288    c64
                                                                               
-サークルカット対応版の場合(参考)
   % du -k c64
   75740   c64/ROM1/data
   4       c64/ROM1/gaiji
   75748   c64/ROM1
   62328   c64/ROM2/data
   4       c64/ROM2/gaiji
   62336   c64/ROM2
   62916   c64/ROM3/data
   4       c64/ROM3/gaiji
   62924   c64/ROM3
   201016  c64

よくある質問(FAQ)


どんなOSで変換実績がありますか?
個人的に確認したものや、友人に確認してもらったものなどを含めてこんな感じです。
Redhat Linux 9
FreeBSD 3.5 Release
Solaris9(intel)
cygwin(windows2000)
cygwin(windows XP)
windows(cygwin)で変換するにはどんな設定が必要ですか?
cygwinは適当なページを探して導入してください。注意事項としては コマンドコンパイルが必要なので gcc,perl,ライブラリ系(libiconv等) は必ず入れておいてください。

参考までに cygwinに導入したパッケージは以下の通り(このくらいあれば 作れたよって参考でこの通りにしないとダメって訳ではない。) インストールしたファイルリストは /etc/setup 配下で確認できます。

ash.lst.gz          libPropList.lst.gz    login.lst.gz
base-files.lst.gz   libbz2_1.lst.gz       lynx.lst.gz
base-passwd.lst.gz  libcharset1.lst.gz    m4.lst.gz
bash.lst.gz         libdb3.1.lst.gz       make.lst.gz
binutils.lst.gz     libgdbm-devel.lst.gz  mingw-runtime.lst.gz
bison.lst.gz        libgdbm.lst.gz        ncurses.lst.gz
byacc.lst.gz        libgdbm3.lst.gz       openssh.lst.gz
bzip2.lst.gz        libgdbm4.lst.gz       openssl.lst.gz
cygwin.lst.gz       libiconv.lst.gz       openssl096.lst.gz
diff.lst.gz         libiconv2.lst.gz      patch.lst.gz
diffutils.lst.gz    libintl.lst.gz        pcre-doc.lst.gz
fileutils.lst.gz    libintl1.lst.gz       pcre.lst.gz
findutils.lst.gz    libintl2.lst.gz       perl.lst.gz
flex.lst.gz         libjpeg62.lst.gz      readline.lst.gz
fvwm.lst.gz         libjpeg6b.lst.gz      regex.lst.gz
gawk.lst.gz         libncurses5.lst.gz    sed.lst.gz
gcc-mingw.lst.gz    libncurses6.lst.gz    sh-utils.lst.gz
gcc.lst.gz          libncurses7.lst.gz    tar.lst.gz
gdbm.lst.gz         libpcre.lst.gz        tcsh.lst.gz
gettext.lst.gz      libpcre0.lst.gz       termcap.lst.gz
gnugo.lst.gz        libpng10.lst.gz       terminfo.lst.gz
grep.lst.gz         libpng12.lst.gz       texinfo.lst.gz
gzip.lst.gz         libreadline4.lst.gz   textutils.lst.gz
installed.db        libreadline5.lst.gz   tiff.lst.gz
installed.db.old    libtiff-devel.lst.gz  timestamp
jpeg.lst.gz         libtiff3.lst.gz       w32api.lst.gz
last-cache          libtiff4.lst.gz       which.lst.gz
last-mirror         lists                 zlib.lst.gz
cygwinのパッケージで提供されていないツールで、変換するのに必要な ツールを導入します。
  1. freepwingのコンパイル/install
    普通にコンパイル,インストールできるので略
     % tar xzf freepwing-1.4.3.tar.gz
     % cd freepwing-1.4.3
     % ./configure
     % make ; make install
    
  2. eb-3.3.4のコンパイル/install
    一箇所修正が必要だけど、普通にコンパイル,インストールできるので略
     % tar xzf eb-3.3.4.tar.gz
     % cd eb-3.3.4
    
      http://www.sra.co.jp/people/m-kasahr/ndtpd/ml-archives/msg01805.html
     を参考に、libebutils/Makefile.in を編集する。
    
     % ./configure
     % make ; make install
    
  3. InfoMagickをバイナリキットでインストールする。
    たとえばImageMagick-i686-pc-windows.exe このへんとかから持ってくる。 インストール後、cygwinから使えるように pathを通す。(例はbash時)
      % PATH=$PATH:/cygdrive/c/Program\ Files/ImageMagick-5.5.3-Q16
    
  4. jcodeのインストール
    適当にもってきてインストール。正規にやるのがめんどくさいのなら
      % tar xzf c64eb-kit.tar.gz
      % cd ccc2ep
      % cp [ダウンロードしたjcode.pl] .
      % ln -s  ../jcode.pl ROM1/jcode.pl
      % ln -s  ../jcode.pl ROM2/jcode.pl
      % ln -s  ../jcode.pl ROM3/jcode.pl
    
    あたりでも対応はできます。

    以降は作成キット添付のREADMEを参照すれば作れる筈。

全日程ではなく、特定の日(例えば3日目だけ)のみEPWING辞書を作りたい。
./configureした後に2つのファイルを修正する。修正が終われば普通に ./make-ebで変換を始めると良い。修正するのは以下2ファイル。
  1. make-eb
    「cd ROM? … cd ..」が1日分のワンセットになっているので不要な部分を ファイルから抹消する。たとえば3日目だけ作るのなら以下のように不要部分 を修正する(削る)。
     
    #!/bin/sh
    cd ROM3
    fpwmake png
    fpwmake
    mv honmon data
    fpwmake clean
    cd ..
    fpwmake catalogs
    ebzip --level 2 --keep --force-overwrite --output-directory c64 .
    
  2. catalogs.txt
    ここも不要部分を削除する。3日目だけなら以下のようなイメージ。 気をつけるのは、[book]の直前行は必ず空行(改行のみ)にすること、 white space(空白)等が入ってると ファイルが作れねーぞと怒られるので要注意。
     
    [Catalog]
      FileName   = catalogs
      Type       = EPWING1
      Books      = 3
    
    [Book]
      Title      = "コミケ64−3"
      BookType   = 6001
      Directory  = "ROM3"
    
これで作成した場合、1日分のデータだけならサークルカット込みでも 70MB前後で収まるはず。あまりにサイズが違う場合は ImageMagickの convertか、eblib圧縮に失敗している可能性が高い。