current 1st cvsup2006年04月01日 13時08分42秒

current は qemu 上で動かす予定。そのため /usr/src は使いたくない。また、6.1-BETA4の環境にはなるべく手を付けたくないので、

# mkdir /usr/tmp/mnt/current
# dd if=/dev/zero of=/usr/tmp/current.md seek=1023 bs=1M count=1
# mdconfig -a -t vnode -f /usr/tmp/current.md
1
# newfs -U /dev/md1
# mount /dev/md1 /mnt/current

# chflags nodump /usr/tmp/current.md

と取り合えず設定する。これは、/usr を dump したときには除外したいので、chflags を設定する。man chflags を見ると、どれだけサポートされているか少々怪しい気がするが。

話は変わるが 6.1 のリリースが結構遅れている。三月二十日にリリースの予定だった。もう、四月を迎えている。

current-supfile を以下のように設定。


# cvsup standard-supfile
# cvsup -g -L 2 standard-supfile
*default host=CHANGE_THIS.FreeBSD.org
#*default base=/var/db
*default base=.
#*default prefix=/usr
*default prefix=.
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
src-all

CHANG_THIS を近場の cvsup server に変えること。これを /mnt/current から実行する。そうすると、以下のような構成で cvsup が出来る。

man cvsup は様々な事が書かれていて初めて使うには使いづらい。検索すれば、例はいろいろ見つかるが standard-supfile とほぼ変わらないので、期待通りにはいかなかった。昔、初めて設定しようとした時に base と prefix でとても混乱したのをよく覚えている。


# ls -sl
2 drwxrwxr-x   2 ... .snap
2 -rw-r--r--   1 ... current-supfile
2 drwxr-xr-x  18 ... src

2 drwxr-xr-x   3 ... sup

ここで、試しに buildworld をしてみると、

# make buildworld

--------------------------------------------------------------
>>> Rebuilding the temporary build tree
--------------------------------------------------------------
rm -rf /usr/obj/mnt/current/src/tmp
mkdir -p /usr/obj/mnt/current/src/tmp/legacy/usr/bin
mkdir -p /usr/obj/mnt/current/src/tmp/legacy/usr/games
^C

さて、困った。/mnt/current/obj にうまく作れないみたいだ。man make と man make.conf を見ながら少しいじってみたが、思い通りにはいかなかった。man make には生成ファイルの置場としては、
1. ${MAKEOBJDIRPREFIX}/`pwd`
2. ${MAKEOBJDIR}
3. obj.${MACHINE}
4. obj
5. /usr/obj/`pwd`
の様に説明があるから、sh -c 'for i in `find . -type d`; do mkdir $i/obj; done' などとやってみたけど、やはり無理だった。

今日はここで諦めることにする。