Subject: Re: Messy, messy upgrade from 1.0->current!
To: Jake Hamby <jehamby@lightside.com>
From: Alistair G. Crooks <agc@uts.amdahl.com>
List: current-users
Date: 09/26/1995 03:49:22
> I know this has probably been mentioned before, and it certainly won't be 
> the last, but I had a HORRIBLE time in the process of upgrading my 
> SPARCstation 2 from NetBSD 1.0 to current (and I'm still compiling!)..  
> Here are a couple of "gotchas" that I want to point out, perhaps the more 
> incentive to release an official 1.x snapshot binary for all platforms 
> and prevent more trouble from new users such as myself:
> 
> [Tale of woe deleted...]
>
> Anyway, thanks for listening to me whine.  I am reasonably happy with
> NetBSD now, but if I may say so, you could REALLY learn something from
> FreeBSD.  I know the job is 10x as difficult since NetBSD supports so many
> different platforms (a problem FreeBSD has never had since it only runs on
> PC's), but if you'd like to see more users, for God's sake, make a new
> release once in a while.  1.0 is almost a year old, and there are clearly
> some significant benefits to running current.  It's too bad the process of
> getting from 1.0 to current is SO traumatic.  I think that if you don't
> make a new official release soon, a lot of would-be NetBSD users are going
> to tear their hair out and abandon it from the experience... 

Well, thanks for your constructive criticisms.  Usually, I reply to
people asking for help upgrading to -current from 1.0, but I've just
returned from a two week vacation to find your complaints.  This
situation isn't helped by the fact that I still haven't managed to
wake up the people who are now handling the firewall systems here in
Amdahl.

At the risk of repeating myself, the following instructions might have
helped you - I've heard of other people using these to upgrade on the
Sparc platform.  Paul Kranenburg doesn't like the window below when
there isn't a working ld.so on the system, but it worked for me.

The following instructions have helped other people upgrade to -current

[The last update of these instructions was at Wed Aug  9 16:58:24 BST 1995]

[Remember to make yourself a new config (not config.old) kernel config file.]
[Make sure you have COMPAT_10 as part of your kernel config options.]
[This assumes that the -current source is in /usr/src]

# Hopefully, this will do away with the subsequent mkdir's below... - agc
# from Mark Willey (mwilley@mwilley.sc.intel.com)
(cd /usr/src/etc; make DESTDIR=/ distrib-dirs)

(cd /usr/src/usr.sbin/config ; make && make install && make cleandir)
# if you don't do this, config of your kernel config file will
# fail with errors in files.i386

(cd /usr/src/gnu/usr.bin/gas ; make && make install && make cleandir)
# if you don't do this, you won't be able to build locore.s, with
# errors about cpuid instruction not found

(cd /sys/arch/i386/conf ; config MYKERNEL)
(cd /sys/arch/i386/compile/MYKERNEL ; make depend && make)
# copy  new kernel to /, and boot off it

(cd /usr/src/share/mk ; make install)
# if you don't do this, you'll get errors building gcc, when it
# doesn't know how to make the manual pages (don't know how to make gcc.0)

(cd /usr/src/gnu/usr.bin/gcc2 ; make && make install && make cleandir)

(cd /usr/src/usr.bin/rpcgen ; make && make install && make cleandir)
# this makes the new (ANSI-C) rpcgen and installs it. Otherwise you'll
# have problems with any programs that use it, like rpc.rstatd etc

(cd /usr/src/lib/csu; make && make install)
# Otherwise ld will fail not finding scrt0.o
# from David Jones (dej@eecg.toronto.edu)

# Bernd Wiserner says that the ld.so that will be built next will
# work only with libc.so.12.0, not with libc.so.12.3
# His instructions to make a working ld.so follow:
# Do NOT run ldconfig while doing the following 7 lines ...
(cd /usr/src/include ; make && make install)
cp -p /usr/libexec/ld.so /usr/libexec/ld.so.good
(cd /usr/src/gnu/usr.bin/ld ; make && make install && make cleandir)
cp -p /usr/libexec/ld.so.good /usr/libexec/ld.so
(cd /usr/src/lib/libcurses ; make && make install)
# otherwise libterm won't be made correctly - invalid prototype
(cd /usr/src/lib ; make && make install && make cleandir)
# Then build ld.so again ...
(cd /usr/src/gnu/usr.bin/ld ; make && make install && make cleandir)  
# Thanks, Bernd...

# it was at this stage that I got REALLY fed up with the
# sh: warning: running as root with dot in PATH
(cd /usr/src/bin/sh ; make && make install &&  make cleandir)

# and now back to the beginning and make the world
(cd /usr/src/bin ; make && make install && make cleandir)
(cd /usr/src/sbin ; make && make install && make cleandir)

mkdir /usr/share/doc/usd/13.viref
# otherwise "make install" in /usr/src/usr.bin will fail because
# the destination directory doesn't exist - from Tom Thai

# if you're using the obj directory hierarchy, use
(cd /usr/src/usr.bin/lex ; cp initscan.c obj/scan.c)
# otherwise (i.e. no obj directory hierarchy)
(cd /usr/src/usr.bin/lex ; cp initscan.c scan.c)
# if you don't, then lex won't be built

# Bootstrap xlint
mkdir -p /usr/libdata/lint
(cd /usr/src/usr.bin/xlint ; make ; make install ; make ; make install)

(cd /usr/src/usr.bin ; make && make install && make cleandir)
(cd /usr/src/usr.sbin ; make && make install && make cleandir)
(cd /usr/src/libexec ; make && make install && make cleandir)
(cd /usr/src/gnu ; make && make install && make cleandir)
(cd /usr/src/share ; make && make install && make cleandir)

mkdir /usr/share/doc/usd/30.rogue /usr/share/doc/usd/31.trek
# otherwise "make install" in /usr/src/games will fail
# actually, last time I tried this, the dirs were already there - agc

(cd /usr/src/games ; make && make install && make cleandir)

Cheers,
Alistair
--
Alistair G. Crooks (agc@uts.amdahl.com)			   +44 125 234 6377
Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK.
[These are only my opinions, and certainly not those of Amdahl Corporation]