FreePWINGで4GB以上の書籍を作成する
JIS X 4081では理論上は1ファイル約190GBまでの書籍が構築可能ですが、EBStudioやFreePWINGではそのような大きな書籍は作成できません。 作成するのにどの程度手間がかかるか、wikipedia-fpwが2GBの壁に届く前にちょっと試してみました。
まず、FreePWINGにパッチをあて、4GB超の書籍を作成できるようにしてみました。
- 必要なもの
- large fileをサポートし、64ビットintなperl
-
perl -V等で、Compile-time optionsにUSE_64_BIT_INTとUSE_LARGE_FILESが存在している事を確認してください。
- large fileをサポートするファイルシステム
-
例えばFAT32では4GBを超えるファイルを作成できません。
- パッチ
-
FreePWING 1.5にあてるパッチです。 もうちょっと工夫すれば32ビットintなperlでも大丈夫そうな気がしますが今回は見送ります。
oald7-fpwで、テキスト登録時にテキストを水増しして4GB超の書籍を作成してみたところ、エラーも起きずにそれっぽいものが作成されました。 次にブラウザ側の検証です。
-
4GB超の書籍を扱える(であろう)アプリケーション
- EB Libraryを利用するアプリケーション
-
64ビット環境の場合はebzip以外は動作すると思いますが未確認です。 32ビット環境でoff_tが64ビット以上の場合は、パッチが必要ですが動作しました (NetBSD 4.0_BETA2)。
- 4GB超の書籍を扱えないアプリケーション
- EB Libraryを利用するアプリケーション
-
Windows環境 (Cygwin + MinGWでビルドしたもの) では扱えませんでした。 ちょっとした小細工で何とかなりそうな気はしますがまだ未検証です。
- ebzip
-
4GBまでのファイルしか想定されていません。
- EBWin
-
正しく扱えませんでした (2.09)。
- DDWIN (おそらく)
-
未確認です。
(追記) Cygwin + MinGWではMinGWのインクルードファイルにパッチをあてれば_FILE_OFFSET_BITSを設定することでoff_tを64ビットにできるので何とかなりました。
(追記の追記) EB Libraryとebzipは4.4以降で、EBWinは3.01以降で4GB超の書籍に対応しました。
タグ:FreePWING EB Library EPWING