Subject: Re: how should I make kernels to have it work under build.sh
To: George Michaelson <ggm@apnic.net>
From: Luke Mewburn <lukem@NetBSD.org>
List: netbsd-help
Date: 11/18/2005 12:33:21
--qoa3+4LHNtB0VmQh
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Fri, Nov 18, 2005 at 10:00:47AM +1000, George Michaelson wrote:
| > | nice ./build.sh -u -x -M /data/Build/obj -T /data/Build/tools
| > build \ | > /var/tmp/build.log 2>&1 & tail
| > -f /var/tmp/build.log | $=20
| > |=20
| > | where /usr/src is a RO mount of the src hierarchy
| > | (from /data/NetBSD/src, which is where I make kernels by hand)
| >=20
| > For that matter, I recommend using "distribution" instead of "build",
| > and I also add "sets" and "sourcesets" as well...
|=20
| Can you explain why? build makes a destdir.${ARCH} for me, which I can
| put in-place via (single user)=20
|=20
| (cd /data/Build/obj/usr/src/destdir.${ARCH}; \
| tar cBpf - . | (cd /; tar --unlink -xBpvf -)
|=20
| what does sets/sourcesets give me?
"build" populates DESTDIR with the system binaries.
"distribution" does a "build" then populates DESTDIR/etc (et al).
"sets" creates the installation sets from a "distribution"
in a manner that supports MKUNPRIVED=3Dyes builds. Those sets
can then been installed in single user as root.
"sourcesets" creates the source sets so that I have a copy
of the sources I built the installation with (rather than
guestimating based on source date).
Your build & install mechanism doesn't allow you to build as
non-root (MKUNPRIVED=3Dyes).
Using "build.sh -uU distribution sets" creates the sets
without requiring root privileges.
I use
build as nonroot:
nonroot% ./build.sh [...] -u -U distribution sets \
kernel=3DMYKERN releasekernel=3DMYKERN
upgrade as root,=20
gunzip RELEASEDIR/i386/binary/kernel/netbsd-MYKERN.gz to /
reboot to single user
root# pax -zrpe -f /path/to/base.tgz
root# pax -zrpe -f /path/to/comp.tgz
root# pax -zrpe -f /path/to/games.tgz
root# pax -zrpe -f /path/to/man.tgz
root# pax -zrpe -f /path/to/misc.tgz
root# pax -zrpe -f /path/to/text.tgz
root# postinstall -s /path/to/etc.tgz fix
(verify postinstall looks ok)
root# reboot
I find this to be a much safer way of upgrading.
I often burn a copy of the kernel, sets and sourcesets
to a CD so I have a "snapshot" of what I installed.
--qoa3+4LHNtB0VmQh
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (NetBSD)
iD8DBQFDfS9hpBhtmn8zJHIRArnsAJwPw/wt9TKOH9INlNZFytVLbXDtJACfeLBy
k0rKlUOdfGQQVkort4w+Tvs=
=J8s+
-----END PGP SIGNATURE-----
--qoa3+4LHNtB0VmQh--