Subject: Re: the best way to stay current
To: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
From: George Michaelson <ggm@apnic.net>
List: current-users
Date: 03/04/2005 08:57:27
I do:
-1) mount srcs on some realpath /data/src
mount /usr/src ro,null from /data/src
0) If worried /usr/obj is corrupt/changed (eg racoon/racoon/
occluding making a file called racoon/racoon)
cd /usr/obj; rm -rf ./*
(but if no indications this is needed, skip this step)
1) cd /usr/src
nice ./build.sh -u -x -M /usr/obj build >& /var/tmp/build.log &
2) if 1) completes
halt
3) boot -s, remount the fs rw
4) cd /usr/obj/data/src/destdir.<arch>
tar cBpf - . | (cd /; tar --unlink -xBpf -)
5) cd /
etcupdate -s /data/src/etc
6) cd /data/src/sys/arch/<arch>/conf
config <KERNEL>
cd ../compile/<KERNEL>
make depend && make && make install
This is a sequence Luke Mewburn suggested to me. making /usr/src ro traps
things writing in the 'apparent' path of the src. the explicit use of
/data/src above is caused by the /usr/obj linking off the real mountpath
not the apparent mountpath, and etcupdate needs write perms into its src
tree for reasons I don't understand. Kernel build seems to work best in the
true mountpath for src as well.
This sequence makes the decision to commit a build state manual. This is
deliberate: you get to decide if you feel like loosing your running
machine.
-George