FreeBSD 9.xまで/usr/srcの入手のために長らくお世話になっていたcvsupが引退し、subversionベースのsvn(svnlite)に変更になりましたが、慣れるまでついやり方を忘れてしまうので自分メモ。
手順はいつも通り、困った時のハンドブックから。
(1) /usr/srcの掃除と初期展開
一番最初は/usr/srcをきれいにするために/usr/srcの下を全て削除。
rm -rf /usr/src とやりたいところだが、zfsで切ってあるので地道に
# cd /usr/src # rm -rf .* *
(2) 近くのミラーサイトを探す。
ハンドブックのA.6. Subversion ミラーサイトから近くのアメリカ東海岸のサイトを選ぶ。
(3) /usr/srcの展開
ミラーサイトを指定してソースを展開する。今回は10.0のReleaseなので、releng/10.0。
# svnlite checkout https://svn0.us-west.FreeBSD.org/base/releng/10.0 /usr/src
初回はFingerprintの確認があるので良ければ”t” (今回のみ)か”p” (次回以降もOK)のどちらかで受け入れる。
# svnlite checkout https://svn0.us-west.FreeBSD.org/base/releng/10.0 /usr/src Error validating server certificate for 'https://svn0.us-west.freebsd.org:443': - The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! - The certificate hostname does not match. Certificate information: - Hostname: svnmir.ysv.FreeBSD.org - Valid: from Jul 29 22:01:21 2013 GMT until Dec 13 22:01:21 2040 GMT - Issuer: clusteradm, FreeBSD.org, (null), CA, US (clusteradm@FreeBSD.org) - Fingerprint: 1C:BD:85:95:11:9F:EB:75:A5:4B:C8:A3:FE:08:E4:02:73:06:1E:61 (R)eject, accept (t)emporarily or accept (p)ermanently? p A kerberos5 A kerberos5/doc A kerberos5/lib A kerberos5/lib/libheimbase A kerberos5/lib/libheimntlm A kerberos5/lib/libhx509 A kerberos5/lib/libroken ...
(3) ソースツリーの更新
2回目以降は以下でOK。
# svnlite update /usr/src
(4) FreeBSD10.01へのリポジトリ変更
こんな感じで。
# svnlite switch ^/releng/10.1 /usr/src
しばらくするとソースツリーの更新が始まって、終わったらこんな感じになりました。
# svnlite info /usr/src Path: . Working Copy Root Path: /usr/src URL: https://svn0.us-west.freebsd.org/base/releng/10.1 Relative URL: ^/releng/10.1 Repository Root: https://svn0.us-west.freebsd.org/base Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f Revision: 274647 Node Kind: directory Schedule: normal Last Changed Author: gjb Last Changed Rev: 274401 Last Changed Date: 2014-11-12 04:52:24 +0900 (水, 12 11月 2014)
通常ならここからmake buildkernelとやっていけばいいのですが、実行すると以下の様にエラーが発生。どうやら10.0環境では10.1のソースbuildに使用するtoolが対応していない模様…。
# make buildkernel -------------------------------------------------------------- >>> Kernel build for GENERIC started on Wed Nov 26 10:31:19 JST 2014 -------------------------------------------------------------- ===> GENERIC mkdir -p /usr/obj/usr/src/sys -------------------------------------------------------------- >>> stage 1: configuring the kernel -------------------------------------------------------------- cd /usr/src/sys/amd64/conf; PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin config -d /usr/obj/usr/src/sys/GENERIC -I '/usr/src/sys/amd64/conf' '/usr/src/sys/amd64/conf/GENERIC' config: illegal option -- I usage: config [-CgmpV] [-d destdir] sysname config -x kernel *** Error code 64 Stop. make[1]: stopped in /usr/src *** Error code 1 Stop. make: stopped in /usr/src
仕方ないので、一旦freebsd-update -r 10.1-RELEASE upgradeの方法で10.1に上げた後、再度svnlite checkout~で10.1のソースを展開し、buildkernelからやり直しました。