Subject: Re: road map for new immigrants?
To: None <richard.earnshaw@arm.com>
From: Thor Lancelot Simon <tls@panix.com>
List: current-users
Date: 09/15/1998 11:50:03
> > There are a few tools which have to be built before you can use them to
> > build other tools.  The easy solution is sometimes 'make depend', but in
> > this case, I think (the first time only, luckily) you have to go into
> > /usr/src/domestic, find the directory with all the compile_foo* in it,
> > and run 'make && make install' there.
> > 
> 
> /usr/src/domestic????????  *Please* tell me this is a joke.
> 
> $ cd /usr/src/domestic
> bash: cd: /usr/src/domestic: No such file or directory
> 
> Just in case people have forgotten, this directory is supposed to contain 
> code that can't be exported from the US because it contains 
> export-restricted cryptography code and the like.  The domestic source 
> isn't even kept on most of the ftp mirrors for this reason.  I can see no 
> reason why it should contain the main entry points for bootstrapping the 
> source tree.
> 
> No wonder I've found it such a pain to try and get things bootstrapped.

If something's making it a pain for you to bootstrap the system, it's either
your having the -domestic sources _even though_ you're not in the U.S., or
your misinterpretation of the advice you've been given on this list.

As has been pointed out earlier in this thread, if you don't have
/usr/src/domestic, nothing _needs_ compile_et, so your build won't blow up
if you don't have it.

If you _do_ have /usr/src/domestic, but you want to build an "exportable
system", define "EXPORTABLE_SYSTEM" and the system won't try to build anything
in there.

If you have /usr/src/domestic, but for some reason you didn't install
the binaries that are byilt from there when you installed the system, you
are effectively "upgrading" from an "exportable" to a "domestic" system.  I
don't think it's unreasonable to expect the user, in that case, to have to
go build and install /usr/src/domestic first so that the system he runs the
"make build" on is a sane, supported configuration.

To wit:

* You can build an "exportable" system on a "domestic" system.

* You can build an "exportable" system on an "exportable" system.

* You can *not* build a "domestic" system on an "exportable" system, unless
  you somehow convert it to a "domestic" system first.  This is because
  the "domestic" build process relies on the presence of binaries which
  aren't in the "exportable" system at all, and whose source is in
  /usr/src/domestic.

At one point, when Kerberos IV was first integrated into the system, the
top-level Makefile in /usr/src did, if the directories were there, go
build and install compile_et and mk_cmds before trying to run a "make depend"
over /usr/src/domestic.  This was ugly, but it was a reasonable migration step
since those binaries weren't in any binary distribution set for any NetBSD
release.

There is no longer any reason for that; if you want to be able to rebuild
/usr/src/domestic, we assume that your system already has the "domestic"
set of binaries installed on it.  If it doesn't, you have to go build and
install a few of the support tools first.  I completely fail to see what's
wrong with this.

If you don't install the "text" set, you'll have trouble rebuilding the
entire system from source, too, you know, unless you set "NOMAN" during
the make process -- which is pretty much analogous to either not having
a /usr/src/domestic or setting "EXPORTABLE_SYSTEM".

--
Thor Lancelot Simon	                                      tls@rek.tjls.com
	"And where do all these highways go, now that we are free?"