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>