*BSD News Article 19203


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!darwin.sura.net!math.ohio-state.edu!cs.utexas.edu!natinst.com!hrd769.brooks.af.mil!hrd769.brooks.af.mil!not-for-mail
From: burgess@hrd769.brooks.af.mil (Dave Burgess)
Newsgroups: comp.os.386bsd.questions
Subject: Re: 0.9?  Best way to get "most current" and stay there with NetBSD?
Date: 5 Aug 1993 17:38:19 -0500
Organization: Armstrong Laboratory, Brooks AFB, TX
Lines: 112
Message-ID: <23s25a$4mk@hrd769.brooks.af.mil>
References: <23pe1i$2t3@genesis.mcs.com>
NNTP-Posting-Host: hrd769.brooks.af.mil

In article <23pe1i$2t3@genesis.mcs.com> karl@genesis.MCS.COM (Karl Denninger) writes:
>I have an 0.8 system loaded with an 0.9 kernel on it.
>
>This is not a good thing, as I discovered.  In particular, the "ps" command
>seems not to know about some changed kernel structures.  Boo hiss.
>
>Now, the question is:
>
>How do I get current with NetBSD?  And should I even do that?  Or is there
>something else out there (like 386BSD) which I should run instead?
>
>Can someone send me a FAQ or something that outlines the differences behind
>the different "free" BSDs?  I am looking into the possiblity of committing
>to one of them for a relatively major project, which means among other
>things that I'll start maintaining software packages and the like for the OS
>(and will likely put up an FTP server for this stuff as well).
>
>Thanks!

One question at a time, please :-)

Getting current with NetBSD was a nightmare for me about three weeks
ago.  I think I have finally gotten all the significant parts in place
to post a sort of 'roadmap' to migrating from 0.8 to 0.9 (without
waiting for the next release).

NOTE:

This procedure is likely to mess you up.  If you aren't really ready to
make a commitment to moving forward the hard way, you really might want
to consider waiting until the 0.9 release is actually out.

On to the show:

Assumption #1:

  You have been using FTP or 'sup' to keep your source tree current.
This (to me) means that ALL of the sources have been updated, including
the sources for the compiler and all of the other tools.

Assumption #2:

  You are still using the compiler that came with the 0.8 release.  One
of the early steps in this process will be to upgrade that, so be
careful.

Steps:

1.  Using the 1.38 compiler, recompile and install the following 
programs so that they will be able to understand the 'z-whatever' 
format for the new executables:

	/usr/src/*/ar
	/usr/src/*/tsort
	/usr/src/*/nm
	/usr/src/*/ranlib
	/usr/src/*/dbsym  NOTE:  dbsym may have a reference to 
		_err() that is undefined in the libc.a that came 
		with your system.  I changed the one reference 
		to err() to an fprintf(stderr...) and it seemed 
		to work fine.
	/usr/src/*/ld

2.  Using the 1.38 compiler, compile a new kernel.  Reboot.  

3.  DO NOT PROCEED BEYOND THIS POINT UNLESS YOU ARE SURE THAT YOU ARE
REALLY READY TO DO SO.  If there were any warnings or errors, make sure
they are cleared up before you continue.  Once you have replaced gcc
with gcc2, you might well be completely hosed if you are not really
ready to roll.

4.  During the fsck portion of the boot up, interrupt with ^C.  This
will return you to single user mode.  Take whatever steps are needed to
mount all of your disk partitions and bring up your network (if you have
NFS partitions to mount).  Stay in single user mode.

5.  cd to the /usr/src/gnu/gcc2 and /usr/src/gnu/gas directories and 
recompile that.  

6.  Install gcc2.

7.  cd to the /usr/src/include directory and make ; make install.  
This will ensure that your include files are up to date.  This step
could probably have been safely moved to 2.5, but this is where I did
it.

8.  cd /usr/src/lib and make ; make install.

9.  cd /usr/src/{bin,sbin,usr.bin,usr.sbin,libexec) and make ; make
install ; make clean.  During this phase, things may or may not stop
working.  NetBSD will not let you overwrite an executing program, so try
to make sure that the system is as quiet as possible.

10.  vipw, and change something.  This will build you a new passwd
database so that you can get back into the system when you reboot.  If
you want to do it the sexy way, run pwd_mkdb -p /etc/master.passwd.

11.  By the time you are finished, you should have recompiled just about
everything in the system.  This is not a 'coffee break' operation.  It
took me two solid work days to get it all squared away, and I still
managed to miss a half dozen utilities....

12.  Once you have everything recompiled, reboot.  Let the machine come
up into multi-user mode, and fix the mistakes as they turn up.


If you try this
-- 
------
TSgt Dave Burgess
NCOIC AL/Management Information Systems Office
Brooks AFB, TX