*BSD News Article 24974


Return to BSD News archive

Xref: sserve comp.os.386bsd.misc:1723 comp.os.386bsd.questions:7433
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!newsflash.concordia.ca!sifon!homer.cs.mcgill.ca!storm
From: storm@cs.mcgill.ca (Marc WANDSCHNEIDER)
Newsgroups: comp.os.386bsd.misc,comp.os.386bsd.questions
Subject: Re: Updating to current
Date: 14 Dec 1993 04:28:03 GMT
Organization: SOCS, McGill University, Montreal, Canada
Lines: 138
Message-ID: <2ejfcj$d09@homer.cs.mcgill.ca>
References: <2ej7v4INN75v@flop.engr.orst.edu>
NNTP-Posting-Host: mnementh.cs.mcgill.ca

In article <2ej7v4INN75v@flop.engr.orst.edu>,
Jason R. Thorpe <thorpej@xanth.CS.ORST.EDU> wrote:
>Does anyone have a canned procedure for updating to current?
>
>I'd appreciate it...

	I work with NetBSD, so I will describe this for NetBSD-current.

	The following is exactly what I did to upgrade to the
	tar files from saturday morning.  I make no guarnatees 
	as to it's working with anything more recent (the tar
	files are only updated every saturday morning):


	1.  There was NO /usr/src tree---Mine was completely removed/
	trashed.  This ends up being big as certain files have moved, and 
	if you just copy over an old tree, things will get screwed up with
	miltiple copies of things. [okay,. I lied, keep the TOP level Makefile,
	since the current tar files don't come with it.]

	2.  I extracted the newest tar_files.

	3.  Ran the following guantlet: (I use csh)

	% setenv MACHINE_ARCH i386
	% cd /usr/src/include; make && make install
	% cd /usr/usr/share/mk; make install
	% cd /usr/src/include; make && make install # don't ask--i just did it
	% setenv LDSTATIC -static
	% setenv NOPIC
	% cd /usr/src/lib/libc; make && make install
	% cd /usr/src/gnu/lib/libmalloc; make && make install
	% cd /usr/src/gnu/usr.bin/gas; make && make install
	% cd /usr/src/gnu/usr.bin/ld; make && make install
	# Things WILL barf while building rtld (ld.so).  Just ignore
	# it and type make install (where things will barf again, because they
	# can't find ld.so :-)), and you will be okay.
	% cd /usr/src/gnu/usr.bin/gcc2; make && make install
	% unsetenv LDSTATIC NOPIC
	% cd /usr/src/lib; make && make install
	% cd /usr/src/gnu/lib; make && make install
	% cd /usr/src/gnu/usr.bin/ld; make && make install


	4.  Now, here is where things get messy.  Most suggestions
	I saw recommend now just going to /usr/src, and then
	typeing make && make install.  However, there will be a few
	barfs along the way, and you will want to rebuild the kernel.

	The top level Makefile builds things in this order:

      lib include bin libexec sbin usr.bin usr.sbin share games gnu sys

	Thus, what I did was to go to each directory, one at a time
	and build with make && make install.

	Ie (from /usr/src)

	% cd lib; make && make install
	% cd ../include; make && make install
	% ...

	AFTER building sbin, I then went and rebuilt a new kernel,
	because the 0.9 kernel has a bug which will cause extremely
	frequent kernel panics during long builds. 

	TO do this, use the exact same procedure you used in 0.9 to build
	a new kernel, EXCEPT YOU MUST INSTALL A NEW CONFIG FIRST.

	Ie,

	% cd /usr/src/usr.sbin/config; make && make install
	% cd /sys/arch/i386/conf
	% $EDITOR MYCONFIGFILE
	% config MYCONFIGFILE
	% cd ../compile/MYCONFIGFILE
	% make depend && make
	% cp /netbsd /wumpus
	% cp netbsd /netbsd
	% reboot

	# AFTER REBOOTING< DON'T FORGET TO  setenv MACHINE_ARCH i386

	You can then continue building where you left off (ie
	/usr/src/usr.bin).  Please note the following (READ ALL FIRST):

	a. in usr.bin, tn3270 will not build.  I have never been
	able to get this to build, and couldn't be bothered figuring
	out how to fix it, thus, I just removed it temporarily from
	the usr.bin Makefile so that the rest would work fine. The old
	statically linked one will still be there, and (allah willing)
	should work fine.

	b. When in gnu/usr.bin/lex, things will vomit left and right. To
	get it to work, read the Makefile 
	[basically, cd lib, make && make install; cd .. ; cp initscan.c
	 scan.c; make && make install]

	c. Things in share will vomit left and right, and again, I couldn't
	have been bothered to fix them up, as much of the stuff was already
	there.   After the first death in share, I just aborted, and went
	back to install the games tree.  This might not be a great idea :-)

	d. in games, if you do NOT use the obj/ stuff, (as I do not), then
	fortune will vomit during the build.  I fixed this by removing
	any obj/ from the Makefile.  Everything worked fine after
	that.



	Finally, please note the following:

	1.  Please do not attempt this if you are not patient, and willing
	to tolerate a sudden loss of a lot of data.

	2. You might want to have a copy of old binaries lying around.  I
	 trashed  up a few here and there with really stdupid moves, and 
	had to get a new (old) ld and make.

	3. Kneeling towards the east before starting might help
	a little.  this stuff is quite amusing.

	4. I don't speak for the NetBSD core team, and might very well get
	flamed for being an ignorant little twip for this post.  Use at your
	own risk.


	Right now, I'm having a gas with this thing.  I just got a 1,8GB disk,
	and now, with the -current up and running, have even MORE space
	free :-)


						Marc 'em.
-- 
-----------------------------------------------------------------------------
Marc Wandschneider					    Seattle, WA
Barney the Dinosaur sings! You faint... Barney sings!  Barney sings! --More--
You Die... --More--