Date: Wed, 5 Jul 2000 01:52:05 -0700 (PDT) From: <jkoshy@FreeBSD.org> To: freebsd-stable@FreeBSD.org Cc: jkoshy@FreeBSD.org Subject: Upgrading from 3-STABLE to 4-STABLE from sources Message-ID: <200007050852.BAA10480@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Oops, `make world' doesn't work as an upgrade mechanism from
3-STABLE to 4-STABLE :(.
Here is a possible way to upgrade via sources which should avoid the
pitfalls that I encountered.
1. First, bring your 3-STABLE system uptodate, if it already isn't so.
# cd /usr/src
# cvs -q update -PAd -rRELENG_3
# make world
# cd /usr/src/sys/i386/conf
# config YOURKERNEL
# cp YOURKERNEL /root # a backup
# cd ../../compile/YOURKERNEL
# make depend all install
# reboot
2. Checkout a 4-STABLE source tree
# mv /usr/src /usr/src-3X # (optional)
# cd /usr && cvs -q checkout -rRELENG_4 src
3. Do a `buildworld'
# script /var/tmp/make-buildworld make -DNOPERL buildworld
4. BEFORE the `installworld' step, you need to do a few things :(.
4a. Install a new version of `install-info'
# cd /usr/src/gnu/usr.bin/texinfo
# make install
`install-info' in 4-STABLE has a --defsection option that is
used in a number of places.
4b. Install a new version of `config'. This is needed for the next
steps.
# cd /usr/src/usr.sbin/config
# make install
4c. Apply the patch included in this mail. This patch is needed
because the 4-STABLE kernel sources rely on a feature not
present in 3-STABLE's GCC.
# cd /usr/src/sys/i386/i386
# patch < in_cksum_patch
4d. Build and install a new kernel
# cd /usr/src/sys/i386/conf
# cp GENERIC YOURKERNEL
# vi YOURKERNEL # edit to suit
# config -r YOURKERNEL
# cd ../../compile/YOURKERNEL
# make depend all install
4e. Save the contents of /bin to /bin.3X, just in case
# mkdir /bin.3X
# cp /bin/* /bin.3X
5. Reboot with the new 4.0 kernel. You need the new kernel because
the 4.0 versions of /bin/sh and other essential utilities use the
new sigaction system call (syscall #342) that is not present in a
3-STABLE kernel.
6. Complete the installworld. This should now hopefully complete.
# cd /usr/src
# script /var/tmp/make-installworld make -DNOPERL installworld
7. Run `mergemaster' and upgrade "/etc", etc.
8. Revert the change to /usr/src/sys/i386/i386/in_cksum.c.
From now on, the regular `make world' procedure should be sufficient to
keep uptodate.
Regards,
Koshy
<jkoshy@freebsd.org>
[-- Attachment #2 --]
Index: in_cksum.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/in_cksum.c,v
retrieving revision 1.17.2.2
diff -u -r1.17.2.2 in_cksum.c
--- in_cksum.c 2000/05/25 02:15:07 1.17.2.2
+++ in_cksum.c 2000/07/08 21:33:43
@@ -235,7 +235,7 @@
}
if (len)
- printf("%s: out of data by %d\n", __func__, len);
+ printf("cksum: out of data by %d\n", len);
if (mlen == -1) {
/* The last mbuf has odd # of bytes. Follow the
standard (the odd byte is shifted left by 8 bits) */
@@ -423,7 +423,7 @@
}
if (len)
- printf("%s: out of data by %d\n", __func__, len);
+ printf("cksum: out of data by %d\n", len);
if (mlen == -1) {
/* The last mbuf has odd # of bytes. Follow the
standard (the odd byte is shifted left by 8 bits) */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200007050852.BAA10480>
