tlptexlive on FreeBSD その2

松田様より有用な情報をメールで送って頂きましたので、ご本人の許可を得て転載します。
portshakerでfreebsd-texlive-tlptexliveのportをうまく管理する方法についてです。

3) freebsd-texlive-tlptexlive の port ファイル群を手動で /usr/ports/print/texlive-tlptexlive などにコピーしている場合に、
portshaker
とやって target をアップデートすると、これらの手動で導入されたファイルが消されてしまいちょっと面倒です。そこで何とか tlptexlive の port も portshaker で管理できないかと試行錯誤してみたところ、以下のような方法でとりあえずうまくいくようになりました

3-a) /usr/local/etc/portshaker.conf の main_merge_from の行を以下のように編集して source としてtlptexlive エントリを追加します。

main_merge_from="ports freebsd_texlive freebsd_texlive_releng tlptexlive"

3-b) 以下の内容で /usr/local/etc/portshaker.d/tlptexlive を作成します。このファイルは他の portshaker.d 内のファイルと同様に実行ビットを立てておきます。

-----------------------------ここから--------------------------
#!/bin/sh

. /usr/local/share/portshaker/portshaker.subr

tlptexlive_category="print"
tlptexlive_portname="texlive-tlptexlive"

method="git"
git_clone_uri="git://github.com/HirotoKagotani/freebsd-texlive-tlptexlive.git"

extra_info="/$tlptexlive_category/$tlptexlive_portname"
if [ $1 = "merge_to" ]; then
  extra_info=""
fi

info "$tlptexlive_category/$tlptexlive_portname : args = $*"

tlptexlive_postmerge_to()
{
  rm -rf /usr/ports/$tlptexlive_category/$tlptexlive_portname/.git
}

run_portshaker_command $*
-------------------------------ここまで---------------------------------

3-c) devel/git をインストールしておきます。

以下は私のメモ。なお、zfsを使っている場合、例えば

use_zfs="yes"
mirror_base_dir="/tank/portshaker"

としている場合は、予め

zfs create tank/portshaker/tlptexlive
zfs create tank/portshaker/tlptexlive/print
zfs create tank/portshaker/tlptexlive/print/texlive-tlptexlive

としておく必要があるようです。