2nd-source †
2nd-source は、通常の ptexlive の tar 玉ではなく、
コンパイル済パッケージ製作を意識した配布形態です。
http://tutimura.ath.cx/~nob/tex/ptexlive/2nd-source/
で配布しています。
通常の tar 玉の問題点 †
通常の ptetex3/ptexlive は、make すると裏でスクリプトがいろいろと実行されます。
単なる実行ファイル生成だけでなく、環境検査やフォント検索も行います。
通常の ./configure && make するタイプのソフトとは毛色が違います。
環境検査などのお陰で、単に make したいユーザにとっては便利になってますが、
コンパイル済パッケージ作成には余計な動作となっていることでしょう。
また、元々 teTeX / TeX Live のパッケージがある場合、それらと共存ができず、
新たな独立したパッケージとしなければなりません。
このことが海外にも通用するパッケージ作成の足かせとなっていました。
配布形態のバリエーション †
そこで、パッケージ製作を前提とした配布形態を設けることにしました。
名付けて 2nd-source です。やはりソースコードによる配布です。
通常の ptexlive がパッチ類をそのまま含むのに対し、
2nd-source ではパッチ類を一度展開してひとつに再構成しました。
ptexlive-src-20YYMMDD.patch.gz (1.5MB)
ptexlive-texmf-20YYMMDD.tar.gz.gz (1.1MB)
ptexlive-src-20YYMMDD.patch.gz は、TeX Live へのパッチになっており、
TeX Live のコンパイル済パッケージを作れる環境であれば、
パッチを1つ追加するだけで ptexlive 相当のパッケージになります。
ptexlive-texmf-20YYMMDD.tar.gz.gz は $TEXMF に展開する、
追加のマクロ・仮想フォント類です。
ptexlive-texmf は gzip で二重に圧縮しています。
これは圧縮すると 11MB → 4.6MB → 1.1MB と2段階目に 1/4 のサイズになるからです。
展開には次の2通りの方法のどちらかが便利だと思います。
- 前もって "gzip -d ptexlive-texmf-20YYMMDD.tar.gz.gz" で
一段階展開しておいてから、
通常の "tar xzvf ptexlive-texmf-20YYMMDD.tar.gz" で展開する。
- "zcat ptexlive-texmf-20YYMMDD.tar.gz.gz | tar xzvf -" で展開する。
RPM のソースパッケージでは、収録される tar 玉はもう一度 gzip 圧縮されるので、
1. のように展開しておいても不利にはなりません。
3段階目の gzip 圧縮ではサイズはほとんど変化しないので、
2. のようにしてもサイズでのメリットはありませんが、
更新作業は少なくて済みます。
通常の tar 玉との違い †
- コンパイル方法が違います。
TeX Live のやりかたに従って、./Build スクリプトを用いることになります。*1
- md5(sum), patch などの外部コマンドが不要です。
- 日本語対応版は pdvips, pxdvi に固定です。
- 同じコマンド名で日本語対応版を上書きすることを極力やめます。
- フォントの自動検索がなくなります。
- ドキュメントはなるべく UTF-8 に変換しています。
- オリジナルのコマンドの拡張やバグフィックスなんかも
(日本語に無関係ならば)削除します。
ebb-artbox patch がこれに該当します。
- セキュリティーバグの修正も削除します。
ptetex3 でも 2nd-source を細々と作っていました。
この時はセキュリティーバグの修正を含めていましたが、
ptexlive では、純粋に pTeX 対応だけに絞ることにしました。
teTeX と異なり TeX Live は1〜2年で更新され、
このようなバグ修正も取り込まれているので、
方針を変更することにしました。
- 収録物に関して
- UTF package, Babel 対応が入っています。
- OTF package ははずしています。追加することは困難です。
- nkf を同梱していません。
- updmap のみ、オリジナルのコマンド名のままで日本語パッチが当たっています。
- ofm2opl あたりをオリジナルのものに戻しました。
このためこの環境で UTF/OTF package を自力で生成するのは困難です。
UTF package は生成済フォントを配布しているので影響はないでしょうが、
OTF package には影響があります。
- 構成物の一部であるパッチ類が更新された場合、
2nd-source は直接は更新を反映できず、
通常の配布物から再生成しなければなりません。
そのため、更新頻度や信頼性は若干劣るかもしれません。
設定 †
./configure に増えるオプションは以下の通りです。
--without-pdvipsk
--without-pxdvik
--without-ptex
--without-ptexenc
make install 後の設定は以下のとおりです。