Skip site navigation (1)Skip section navigation (2)
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

This is a multipart MIME message.

--==_Exmh_6442233800
Content-Type: text/plain


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>


--==_Exmh_6442233800
Content-Type: text/plain ; name="in_cksum_patch"
Content-Description: in_cksum_patch
Content-Disposition: attachment; filename="in_cksum_patch"

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) */

--==_Exmh_6442233800--






To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200007050852.BAA10480>