tlptexliveリポジトリとfreebsd_texlive

tlptexliveリポジトリでバイナリを募集しているそうなので、FreeBSD/i386 9.0-RC3 と FreeBSD/amd64 9.0-STABLE(12月中旬くらい)のやつでビルドして、バイナリを置いて、持っていってね、と英語でメールを書きました。英語でメール書いたのひさびさだった気がするのでやや緊張。といいつつ、ispellかけわすれていたという。。。。で、お返事は日本語でもらえました。おおすごい。実行スクリプトにひとつ恐ろしいバグが含まれており(rsyncを使ってtexliveソースツリーを持ってくると、カレントディレクトリが一掃される)、そのパッチも一緒に送りました。そういうわけで、FreeBSDのバイナリもtlptexliveリポジトリ - ptexlive Wikiに載っています。8系では使えないと思うので、注意。10系ではどうか、というと、ノートのFreeBSD/amd64 10.0-CURRENTだとweb2cのテストで2つのテストがこける。ちょっと追えていない。なぜでしょうね。。。。

ところで、なぜいまtexliveかというと、ReVIEWを使いたいな、と思ったからである。

FreeBSDではports-mgmt/portshaker{,-config}によってtexliveのportsを導入できるようだ。
portshakerのデフォルト設定では、texliveのリポジトリを/var/cacheに格納しようとするので、/varの容量に注意。
zfsを使うと便利/効率的?らしいので、/usr/portsを /tank/portsに移動、cd /usr/portsと手が打ってしまったときのために、シンボリックリンクを作成(ln -s /tank/ports /usr/ports)。zfsでtank/portshakerを用意して(zfs create tank/portshaker)、/usr/local/etc/portshaker.conf に

use_zfs="yes"

#---[ Base directory for mirrored Ports Trees ]---
mirror_base_dir="/tank/portshaker"

#---[ Directories where to merge ports ]---
ports_trees="main"
main_ports_tree="/tank/ports"
main_merge_from="ports freebsd_texlive freebsd_texlive_releng"

としておくと(設定ファイルを訂正; 2012/01/20)、portsnapで取得されたports tree(/tank/portshaker/ports)にportshakerによって取得されたスケルトンがoverlayされた状態のディレクトリが/tank/ports以下にできる。詳細は、portshaker(8), portshaker.conf(5), /usr/local/share/portshaker/portshaker.subrを見ると分かる。use_zfs=の右は単にportshaker.conf(5)ではboolと書いてあって、どうしたものか、と思ってしまうのだが、/usr/local/share/portshaker/portshaker.subrをみれば、trueでもいいし大文字小文字は気にせず、そして1でも良いらしいことが分かる。なるほど。

もし、これまで/usr/srcまたは/usr/ports以下でmakeすることでports treeを更新していた人は、/etc/make.confのPORTSSUPFILE変数を定義しない(コメントにする)ように注意。

こうやってインストールするfreebsd_texliveに、ptex化のためのパッチを当てればよいはず、だが、はてさて、どうやるのか。
本家freebsd_texliveに混ぜてもらうのか、あるいはportshakerのしくみを使って別リポジトリを作るのか(リポジトリ間で依存性があってもよいのかが問題、依存性は、いまのところあるようにしか見えないので、問題ないのかな?)、本家freebsd_texliveがどうメンテされてるかよくわかっていないし、パッチがtexliveのどのバージョン向けに作られているかもまだ把握していないので、そのあたりはこれから調べる予定。