epubcheckで「mimetypeファイルエントリが存在しないか、アーカイブの先頭以外の場所に存在しています.」

epubcheckというEpub向けのW3C製の構文チェッカーがあります。 実行するとありがたい指摘をしてくれるのですが、次のエラーだけは原因が分かりませんでした。

$ java -jar epubcheck.jar ~/tmp/main.epub 
EPUB version 3.2 のルールを使って検証します.
ERROR(PKG-006): /home/Artisan/tmp/main.epub(-1,-1): mimetypeファイルエントリが存在しないか、アーカイブの先頭以外の場所に存在しています.

チェックは終了しましたがエラーが検出されました
メッセージ: 0 件の致命的エラー / 1 件のエラー / 0 件の警告 / 0 件の情報

EPUBCheck 完了

調べたところ、次のようなやりとりを発見。

github.com

どうやら、mimetype を圧縮せずに zip し、その後その他のリソースを圧縮して追加せよとのことらしい。 詳細はよくわからんが、次のようにすればOKらしい。本当はしっかりオプションを理解しないとだめなんだろうけど…。

$ zip -X0 ../main.epub mimetype
$ zip -9 -r ../main.epub META-INF OEBPS