Subject: Re: road map for new immigrants?
To: Ted Spradley <>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: current-users
Date: 09/14/1998 21:38:55
First, the bad news is that NetBSD-current is in the middle of
reworking the kernel and userland signal code, and -current doesnt'
acutally build right now anyway :).  Wait a day or so or wait for
Jason Thorpe's announcement that it's fixed.

[ compile_et not present ]

This is telling you that the utility used to build part of KerberosIV
(the table that maps Kerberos error numbers to strings) isn't present.
I beleve this is fixed in -current (it uses a compile_et built during
the build) but you need to get to -current before it works.

You can either build with EXPORTABLE_SYSTEM set (disables Kerberos),
or you can build compile_et from /usr/src/domestic/usr.bin/compile_et
(against your existing libc) install it by hand, and try the build
again.  As Perry said:

	 cd /usr/src/domestic/usr.bin/compile_et 
	 make depend
	 make install

I think there's a second program-generator in kerberosIV; it'll
probably have the same symptoms.  Repair the same way.

>WARNING: if you are running a 1.3.2 machine, and building -current
>sources, you MUST first install a new kernel. Otherwise, your libc,
>which refers to new system calls, and your userland, which uses those
>calls, will not work. Building a -current kernel from 1.3.2 sources
>will almost doubtless require that you manually rebuild and install

Both true. Cannot be repeated enough. 

>If you are building 1.3.2 sources with a 1.3.2 kernel, or if you
>already running a -current kernel, ignore that warning.

[Use "make build"]

Some people say that ``make build'' is normal practice.  I've found it
can be near-suicidal, especially if you use "make -k". It's like the
FreeBSD "make World". But by default, it does an install over your
current, live system.

I always (always!) do

    make build DESTDIR=/somewhere/

which does a make build, but installs the newly-built tree under
/somewhere instead of over my running system.  Iterate until the
entire build completes cleanly.  Then, and only then, do a "make
install" (no DESTDIR) or a "make build UPDATE=1" (again, no DESTDIR).

The first step of "make build" removes all existing objects and
.depend files from your source tree; UPDATE=1 just stops it from
doing that.

BTW, in case you switched for the multi-arch support: if you want to
compile again for a second architecture, you can create a separate
object hierarchy for your i386 .o files by creating /usr/obj.i386 and
then "make obj", before the "make build".  That lets you compile for
other arches from the same source tree.