2018-03-05 :-)
_ [pkgsrc][pbulk][バルクビルド][NetBSD]pkgsrc bulk build
基本的にはこの手順通りなんだけどいくつかハマったのでメモしておく。
Chapter 7. Creating binary packages for everything in pkgsrc (bulk builds)
(cd /usr && ftp -o - http://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz | tar -zxf-)
sh pbulk.sh -n -l
pbulk.sh のオプションは以下の意味。-l しないと limited_list の PATH が /limited_list となってしまう。-l しておくと /usr/pbulk/etc/limited_list が使われるようになる。ようするに PREFIX が適用される。
- n: native(NetBSD)
- l: use limited_list
/usr/pbulk/etc/pbulk.conf を編集。ignore_missing_dependencies は依存関係でエラーになる場合があるので無視する( ref. Re: pbulk dependency resolution failed )
ignore_missing_dependencies=yes
/usr/pbulk/etc/pbulk.list を編集する。バルクビルドの対象とするパッケージを書く。例えばこう。これを書かない場合は全部のパッケージをビルドするハメになるので注意。
devel/git
/usr/pkgsrc を chown しておく。理由は後述。
chown -R pbulk:users pkgsrc
ビルド
/usr/pbulk/bin/bulkbuild
レポートは以下のディレクトリに HTML とか dot とか txt で保存される。
/mnt/bulklog/meta/report.*
chown
chown しないと怒られる。pbulk:users で /usr/pkgsrc を変更しようとするのでそりゃまあ。unprivileged とはなんだったのか。
===> Skipping vulnerability checks. WARNING: No /var/db/pkg/pkg-vulnerabilities file found. WARNING: To fix run: `/usr/sbin/pkg_admin -K /var/db/pkg fetch-pkg-vulnerabilities'. mkdir: /usr/pkgsrc/pkgtools/cwrappers/work: Permission denied *** Error code 1 Stop. make: stopped in /usr/pkgsrc/pkgtools/cwrappers
レポートしちゃうんですけど
コンソールログに以下のように印字される。
Building pkg_summary... Building SHA512... Build reports... Sending report mail... <=== Uploading report... Uploading packages...
メール送信処理はここ。なお report_recipients はデフォルトだと "pkgsrc-bulk@netbsd.org" に設定されている。
/usr/pbulk/libexec/pbulk/report
echo "Sending report mail..." cat ${loc}/report.txt | ${mail} -s "${report_subject_prefix} ${platform} ${build_start_iso}" ${report_recipients}
この処理は無条件に実行される。libexec/pbulk/report も無条件に実行される。pbulk.conf にレポート送信有無を設定する変数は無いので上記処理をコメントアウトしておく。