Subject: How to source-only upgrade from 1.2G to 1.3E
To: None <current-users@NetBSD.ORG>
From: VaX#n8 <vax@linkdead.paranoia.com>
List: current-users
Date: 06/21/1998 05:09:17
Gaps in timing below are probably due to sleeping or other unrelated tasks.

# start

First attempt (using my script make-source, available from my home page)
failed while building "make" and "as" because new header files
(/usr/include) rename syscalls to versions which don't exist in
the running kernel.

restored old include files

new binaries:
	made "make", "config", "gas"

config file changes:
	noticed ed0 changed to we0

	pms0 attachment changed

	# elapsed time 6 hours

	had to add audio*

disklabel changes:
	NetBSD now has a new "system id", or partition table entry type
	(see my homepage for more info on booting and system ids).
	compatibility mode is off by default :(

# elapsed time 10 hours (may have slept in here)

boot blocks:
	tried to compile installboot (new program for new boot blocks)
	failed; needs MAXQUOTAS and um_export fully defined

	compiled with new include files via
		make COPTS=-I/usr/include.new

	cd /sys/arch/i386/stand; make

	ran installboot from obj dir, failed because can't open boot
	raw device when securelevel=1

	I've had enough, configed new kernel with
		options         COMPAT_386BSD_MBRPART   # recognize old partition ID

	installed kernel, decided better of running it yet

	boot /netbsd.old -s # noted BIOSboot 2.1

	ran new installboot - failed, need to mount -u /
	ran again - ok, sync, reboot, boted BIOSboot 2.2

	complains about old BSD system id, but at least it works

# elapsed time 26 hours

userland:
	swapped in new /usr/include

	tried to make "make".  "make cleandir" failed with error code 1,
	even though it was using rm -f.  used "make -i cleandir" instead.

	make of "make" failed because of new system calls

	make libc (using "make -i" since it barfs on accept.o without it)
	lint-related stuff fails, barfing on unistd.h(187).

	booted with old kernel

	update source tree again

# elapsed time 29 hours

	sanity break

# elapsed time 3 days 1 hour

	make libc - failed because I need new ld

	make ld - failed because of new include files and old kernel (again)
	
	swapped in old include files

	made ld

	swapped in new include files

	make ld - failed because of lint

	make xlint - died during linking

	make COPTS=-I/usr/include.old xlint/xlint.o

	cd xlint/xlint

	make COPTS=-I/usr/include.old xlint/xlint.o # worked!

	make install

	make libc - failed because I hadn't installed lint libraries

	cd xlint; make install; make; make install
	make cleandir all install # failed but no big deal

	make libc, install it

	make share/mk templates

	make make

	reboot with new kernel

	remade world, installed
	# no going back now since /bin/sh uses new syscalls

	problems at next reboot with ed0 -> we0 renaming

# elapsed time 3 days 4.5 hours

	remade world several times

# elapsed time 7 days 16 hours

	DNS lookups are hanging
	# elapsed time 7 days 21 hours
	had to add "nameserver 127.0.0.1" to /etc/resolv.conf

	rebuilt world:

		build of /usr/src/domestic died in libss which depended on make_cmds
		make -i; make -i install; make -i; make all install

		died compiling flex; edited scan.c, removed myesc(), ndlookup,
		make all install cleandir

		gdb croaked; make gnu/lib, install to get libbfd

		# elapsed time 8 days 1 hour

unresolved issues:

	getting pas to be found during probe

	nfsd coredumps

I am not on current-users so email me directly if you need to.
Hopefully this will save other folks plenty of time.
Let me know if this was helpful to you;
if nobody replies, I won't bother to do it again.
See email headers for my home page location.