Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 1997 15:05:31 -0700
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
To:        Joseph Stein <joes@joes.users.spiritone.com>
Cc:        docs@freebsd.org
Subject:   Re: some docs... 
Message-ID:  <7692.868572331@time.cdrom.com>
In-Reply-To: Your message of "Thu, 10 Jul 1997 12:01:18 PDT." <199707101901.MAA11945@joes.users.spiritone.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
This is cool, but could I perhaps convince you to make it into a
tutorial so that we can fold it into our mainline docs?  That would
require reformatting into Docbook, something which happily isn't
difficult (it took me about an hour with an existing tutorial to
figure it all out).

If not, perhaps there would be someone on this list willing to take up
the challenge?  It's definitely something we need!

Thanks!

					Jordan

> Here's a little contribution  (if you want it), that may help
> when people decide to take bigger chunks of their life up with
> FreeBSD... (i.e. make world)
> 
> --------cut here----------
> 
> So, you want to make world?  
> 
> While the process of rebuilding the operating system from the ground up
> is not for everybody, it can be an educational experience.  Before you
> decide to use the 'make world' process to upgrade, however, you need
> to be sure that you fully understand exactly what the implications of
> this process are.  The best way to do that is to understand the way
> the Makefile works.  (Please see man make for information, or get the
> O'Reilly and Associates book Managing Projects with make, ISBN
> 0-937175-90-0, Oram & Talbott, 1991).
> 
> Please note, however, that when you execute 'make world', you are likely
> to find all manner of hardware problems (that will usually show up as
> signal 12), but, if it completes sucessfully, you will know that your
> hardware is really "up to snuff".
> 
> The first thing you should do is to determine what branch of FreeBSD
> you'd like to create.  As you may know, there are several branches.
> The most common branches to follow are RELENG_2_2 (stable) and current
> (no tag).  You can also get releases (RELENG_2_2_2_RELEASE); but if
> you've been traking either stable or current, it is not recommended
> to downgrade.
> 
> Now you need to determine how you're going to get the sources.  There
> are several methods:
> 
>    - subscribe to the Walnut Creek CDROM FreeBSD SNAP subscriptions
>      (see http://www.cdrom.com/) and build from the sources on the
>      CDROMs.  (This assumes you want to follow 'current').
> 
>    - use CTM.  CTM is a mechanism that will keep your /usr/src tree
>      up to date using e-mail.  This is good for people that have
>      low bandwidth or high cost connectivity to the internet.
> 
>      [I am not a CTM person... Can you track either stable or current?
>       it looks like you can only track current or a release...]
> 
>    - use CVSup.  CVSup was written by John Polstra (jdp@freebsd.org)
>      and enables you to do many things (such as keeping a full copy
>      of the master CVS source repository).  You can get any sources
>      using CVSup.  This is probably the preferred method of retrieving
>      sources.
> 
> This document will assume that you are going to use CVSup to get the
> sources for the release you want to build.
> 
> The first thing you need to do is to get CVSup.  It can be built from a 
> port in the ports collection (/usr/ports/net/cvsup/); from a package
> in the packages collection, or as a standalone application 
> (ftp://ftp.freebsd.org/pub/freebsd/cvsup...)
> 
> Once you have CVSup, you need to create a supfile.  Here is an 
> example for tracking stable:
> 
> ---cut here---
> # Defaults that apply to all the collections
> *default host=cvsup.FreeBSD.org
> *default base=/usr/cvs
> *default release=cvs 
> *default use-rel-suffix
> *default compress
> 
> src-all tag=RELENG_2_2 prefix=/usr delete old
> ---cut here---
> 
> Now, execute CVSup...
> 
> # /usr/local/bin/cvsup -g -L 2 supfile
> Parsing supfile "supfile"
> Looking up address of cvsup.FreeBSD.org
> Connecting to cvsup.FreeBSD.org
> Connected to cvsup.FreeBSD.org
> Negotiating file attribute support
> Exchanging collection information
> Establishing active-mode data connection
> Running
> Updating collection src-all/cvs
>  Edit src/release/Makefile
>   Add delta 1.246.2.56 97.07.09.12.45.37 jkh
>  Edit src/sbin/ping/ping.c
>   Add delta 1.8.2.9 97.07.09.19.43.19 julian
>   Add delta 1.8.2.10 97.07.09.20.38.38 julian
>  Edit src/share/mk/bsd.port.mk
>   Add delta 1.227.2.24 97.07.10.02.30.28 asami
>  Edit src/sys/i386/isa/syscons.c
>   Add delta 1.182.2.23 97.07.09.14.13.42 brian
>  Edit src/sys/pc98/conf/Makefile.pc98
>   Add delta 1.7.2.4 97.07.10.10.52.02 kato
>  Edit src/sys/pc98/pc98/syscons.c
>   Add delta 1.13.2.18 97.07.10.10.49.43 kato
>  Edit src/sys/pc98/pc98/syscons.h
>   Add delta 1.7.2.4 97.07.10.10.48.38 kato
>  Edit src/sys/pc98/pc98/wd.c
>   Add delta 1.9.2.10 97.07.10.10.47.13 kato
>  Edit src/usr.bin/fold/fold.c
>   Add delta 1.1.1.1.8.1 97.07.10.06.31.59 charnier
>  Edit src/usr.bin/from/from.c
>   Add delta 1.3.2.1 97.07.10.06.33.16 charnier
>  Edit src/usr.bin/fsplit/fsplit.c
>   Add delta 1.2.6.1 97.07.10.06.34.54 charnier
>  Edit src/usr.bin/fstat/fstat.c
>   Add delta 1.7.2.1 97.07.10.06.35.39 charnier
>  Edit src/usr.bin/gcore/gcore.1
>   Add delta 1.2.2.1 97.07.10.06.37.09 charnier
>  Edit src/usr.bin/gcore/gcore.c
>   Add delta 1.4.2.1 97.07.10.06.37.10 charnier
>  Edit src/usr.bin/gcore/md-nop.c
>   Add delta 1.1.1.1.8.1 97.07.10.06.37.10 charnier
>  Edit src/usr.bin/gcore/md-sparc.c
>   Add delta 1.2.6.1 97.07.10.06.37.11 charnier
>  Edit src/usr.bin/gencat/gencat.c
>   Add delta 1.3.2.1 97.07.10.06.38.31 charnier
>  Edit src/usr.bin/gencat/genlib.c
>   Add delta 1.4.2.2 97.07.10.06.38.32 charnier
> Shutting down connection to server
> Finished successfully
> 
> Now, you're finally ready to build the system!
> 
> A few things here:
>   o due to a fluke in the way that the build system works, 
>     you may need (and therefore it is recommended) to rebuild
>     the include files first.
> 
> # cd /usr/src && make includes
> 
>   o Some people have taken to calling 'make world' the 'Worldstone'.
>     If you are interested in timing how long it takes to go from 
>     start to finish, you may use the time command.
> 
> # cd /usr/src && /usr/bin/time /usr/bin/make world
> 
>   o If you want to keep a record of the information that will scroll
>     by (useful if you would like a hand when the build fails), just
>     redirect the output of BOTH stdout and stderr as follows:
> 
> (/bin/csh)
> # cd /usr/src && /usr/bin/time /usr/bin/make world >& outfile &; sleep 1; \
>   tail -f /usr/src/outfile
> 
> (/bin/sh)
> # cd /usr/src && /usr/bin/time /usr/bin/make world 2>&1 outfile &; sleep 1; \
>   tail -f /usr/src/outfile
> 
> 
>   o When the 'make world' process has completed, you will see something
>     like the following:
> 
> --------------------------------------------------------------
> make world completed on Sat Jul  5 22:54:33 PDT 1997
> --------------------------------------------------------------
>     49888.34 real     36513.55 user      8131.06 sys
> 
>     At this point, every binary file that is part of the operating
>     system has been rebuilt. 
> 
>     Caveat emptor; internal kernal structures may have changed, thus
>     "breaking" some of the system utilities.   See the next step.
> 
>     If you do not get the 'make world completed' message, then there
>     was a build failure somewhere.
> 
>     Before asking for help, determine where the problem was.  Was it
>     a signal 12?  That usually indicates flaky hardware.  Was it
>     an undefined macro?  That could indicate an out of sequence
>     transfer from the repository.
> 
>     In any case, wait a day, then start the whole process over again
>     before asking for help.  Most build problems are able to be shaken
>     out within a day.
> 
>   o The last thing you should do is to rebuild your kernel and 
>     reboot.  This way, any changes made to the internal structures
>     will be caught, thus saving you a lot of grief.
> 
>     If you have configured a custom kernel, replace GENERIC below with
>     the name of your custom kernel.
> 
> # cd /usr/src/sys/i386/conf
> # config GENERIC
> Removing old directory ../../compile/GENERIC:  Done.
> Kernel build directory is ../../compile/GENERIC
> # cd ../../compile/GENERIC
> # make depend kernel install
> 
> # shutdown -r now
> 
> 
> Congratulations!  If all steps completed successfully, you have just
> made your system STABLE or CURRENT!




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