NetBSD 6.1.5 → 7.0.1

(先月書いた記事だが公開を忘れていた)

今回は pkgsrc/sysutils/sysbuild を使ってみた。sysbuild は The NetBSD Guide にも載っている。CVS でソースを取得してビルドコマンドを実行するってのをやってくれるそうだ。いつから載ってたんだろう? 気づかなかったな。

sysbuild の細かい設定は /usr/pkg/etc/sysbuild/default.conf で行う。今回はソースの置き場と作業ディレクトリを変更するために BUILD_ROOT, SRCDIR, XSRCDIR を変更した。

一般ユーザでビルドするため The NetBSD Guide に従って事前に src, xsrc ディレクトリを用意したら、最初の fetch で cvs update を実行しようとして失敗する。どうやら src があると cvs update になる仕様のようだ。src ディレクトリを削除したら無事 cvs checkout が実行された。

ちなみに CVS で取得する際のタグは CVSTAG で指定する。つまりソース取得だけならこう、

$ sysbuild -o CVSTAG=netbsd-7-0-1-RELEASE fetch

いきなりビルドするならこうだ。

$ sysbuild -o CVSTAG=netbsd-7-0-1-RELEASE build

で、root になって sysupgrade だそうだ。

# sysupgrade auto ~/sysbuild/release/$(uname -m)

実行するとインストールの後に etcupdate が走って各種ファイルのマージ。それが終わると postinstall が実行された。


...
postinstall checks failed: varshm
To fix, run:
sh /usr/sbin/postinstall -s /var/cache/sysupgrade/etc.tgz -d / fix varshm
Note that this may overwrite local changes.
sysupgrade: E: Some postinstall(8) checks have failed

追加で postinstall を手動で実行するところはこれまでと同じ

$ sudo sh /usr/sbin/postinstall -s /var/cache/sysupgrade/etc.tgz -d / fix varshm