Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jul 2004 12:56:42 -0400
From:      Ken Smith <kensmith@cse.Buffalo.EDU>
To:        doc@freebsd.org
Subject:   Handbook update for 'make world'
Message-ID:  <20040721165642.GA19955@electra.cse.Buffalo.EDU>

next in thread | raw e-mail | index | archive | help

Thoughts?  I *think* the flamewar over this change is finished but it might
be premature.  But most of this probably should be done regardless IHMO.

Most of this de-emphasises "make world" in favor of the broken-down
"make buildworld; make buildkernel; etc" procedure we've been recommending
for a while now.  There is one significant-ish procedural change, I moved
the "mergemaster -p" step to be first because there are cases that the
"make buildworld" step now checks to see if users/groups exist before it
will even begin compiling stuff...

Index: chapter.sgml
===================================================================
RCS file: /home/dcvs/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v
retrieving revision 1.203
diff -u -r1.203 chapter.sgml
--- chapter.sgml	6 Jul 2004 15:09:54 -0000	1.203
+++ chapter.sgml	21 Jul 2004 16:49:13 -0000
@@ -61,7 +61,7 @@
 	  <application>CTM</application>.</para>
       </listitem>
       <listitem><para>How to rebuild and reinstall the entire base
-      system with <command>make world</command>.</para>
+      system with <command>make buildworld (etc)</command>.</para>
       </listitem>
 
     </itemizedlist>
@@ -536,10 +536,10 @@
   </sect1>
 
   <sect1 id="makeworld">
-    <title>Using <command>make world</command></title>
+    <title>Using <command>make buildworld (etc)</command></title>
 
     <indexterm>
-      <primary><command>make world</command></primary>
+      <primary><command>make buildworld (etc)</command></primary>
     </indexterm>
     <para>Once you have synchronized your local source tree against a
       particular version of &os; (&os.stable;, &os.current;, and so on)
@@ -556,7 +556,8 @@
 	when you make mistakes, or when mistakes made by others in the
 	source tree render your system unbootable.</para>
 
-      <para>Make sure you have taken a backup.  And have a fixit floppy to
+      <para>Make sure you have taken a backup.  And have a fixit floppy or
+	bootable CD at
 	hand.  You will probably never have to use it, but it is better to be
 	safe than sorry!</para>
     </warning>
@@ -593,7 +594,8 @@
       <para>To update your system, you should use the following
 	procedure:</para>
 
-      <screen>&prompt.root; <userinput>make buildworld</userinput>
+      <screen>&prompt.root; <userinput>mergemaster -p</userinput>
+&prompt.root; <userinput>make buildworld</userinput>
 &prompt.root; <userinput>make buildkernel</userinput>
 &prompt.root; <userinput>make installkernel</userinput>
 &prompt.root; <userinput>reboot</userinput></screen>
@@ -602,8 +604,7 @@
 	<command>boot -s</command> from loader prompt for
 	example).  Then run:</para>
 
-      <screen>&prompt.root; <userinput>mergemaster -p</userinput>
-&prompt.root; <userinput>make installworld</userinput>
+      <screen>&prompt.root; <userinput>make installworld</userinput>
 &prompt.root; <userinput>mergemaster</userinput>
 &prompt.root; <userinput>reboot</userinput></screen>
 
@@ -678,9 +679,11 @@
 	<filename>/etc/group</filename>.</para>
 
       <para>There have been occasions when the installation part of
-        <quote>make world</quote> has expected certain usernames or groups
+        <quote>make installworld</quote> has expected certain usernames or groups
 	to exist.  When performing an upgrade it is likely that these
-	users or groups did not exist. This caused problems when upgrading.</para>
+	users or groups did not exist. This caused problems when upgrading.
+	In some cases <quote>make buildworld</quote> will check to see if
+	these users or groups exist.</para>
 
       <para>A recent example of this is when the
 	<username>smmsp</username> user was added.  Users had the
@@ -785,7 +788,7 @@
 	<filename>/usr/obj</filename>.  The directories shadow those under
 	<filename>/usr/src</filename>.</para>
 
-      <para>You can speed up the <quote>make world</quote> process, and
+      <para>You can speed up the <quote>make buildworld</quote> process, and
 	possibly save yourself some dependency headaches by removing this
 	directory as well.</para>
 
@@ -895,7 +898,10 @@
 	  &os.stable; midway between 2.2.2 and 2.2.5) the
 	  <maketarget>world</maketarget> target has been split in
 	  two: <maketarget>buildworld</maketarget> and
-	  <maketarget>installworld</maketarget>.</para>
+	  <maketarget>installworld</maketarget>. Beginning with version
+	  5.3 of &os the <maketarget>world</maketarget> will be changed
+	  so it will not work at all by default because it is actually
+	  dangerous for most users.</para>
 
 	<para>As the names imply, <maketarget>buildworld</maketarget>
 	  builds a complete new tree under <filename>/usr/obj</filename>,
@@ -955,7 +961,7 @@
       <sect3>
 	<title>Timings</title>
 	<indexterm>
-	  <primary><command>make world</command></primary>
+	  <primary><command>make buildworld (etc)</command></primary>
 	  <secondary>timings</secondary>
 	</indexterm>
 
@@ -1069,7 +1075,7 @@
     </sect2>
 
     <sect2>
-      <title>Update Files Not Updated by <command>make world</command></title>
+      <title>Update Files Not Updated by <command>make installworld</command></title>
       
       <para>Remaking the world will not update certain directories (in
 	particular, <filename>/etc</filename>, <filename>/var</filename> and
@@ -1511,14 +1517,14 @@
       
 	    <para><filename>/usr/obj</filename> contains all the object files
 	      that were produced during the compilation phase.  Normally, one
-	      of the first steps in the <quote>make world</quote> process is to
+	      of the first steps in the <quote>make buildworld</quote> process is to
 	      remove this directory and start afresh.  In this case, keeping
 	      <filename>/usr/obj</filename> around after you have finished
 	      makes little sense, and will free up a large chunk of disk space
 	      (currently about 340&nbsp;MB).</para>
       
 	    <para>However, if you know what you are doing you can have
-	      <quote>make world</quote> skip this step.  This will make subsequent
+	      <quote>make buildworld</quote> skip this step.  This will make subsequent
 	      builds run much faster, since most of sources will not need to
 	      be recompiled.  The flip side of this is that subtle dependency
 	      problems can creep in, causing your build to fail in odd ways.
@@ -1539,7 +1545,7 @@
 	      you found a problem.</para>
 
 	    <para><emphasis>In general</emphasis> (and this is not a hard and
-	      fast rule) the <quote>make world</quote> process builds new
+	      fast rule) the <quote>make buildworld</quote> process builds new
 	      copies of essential tools (such as &man.gcc.1;, and
 	      &man.make.1;) and the system libraries.  These tools and
 	      libraries are then installed.  The new tools and libraries are
@@ -1557,7 +1563,7 @@
 &prompt.root; <userinput>make -DNOCLEAN all</userinput></screen>
 
 	    <para>This will not undo the work of the previous
-	      <quote>make world</quote>.</para>
+	      <quote>make buildworld</quote>.</para>
 
 	    <para>If you see the message:</para>
 
@@ -1565,7 +1571,7 @@
 Building everything..
 --------------------------------------------------------------</screen>
 
-	    <para>in the <quote>make world</quote> output then it is
+	    <para>in the <quote>make buildworld</quote> output then it is
 	      probably fairly safe to do so.</para>
 	    
 	    <para>If you do not see that message, or you are not sure, then it
@@ -1740,7 +1746,7 @@
 	<emphasis>build machine</emphasis>.  It is going to be the
 	machine that the world and kernel are built on. Ideally, it
 	should be a fast machine that has sufficient spare CPU to
-	run <command>make world</command>.  You will also want to
+	run <command>make buildworld (etc)</command>.  You will also want to
 	choose a machine to be the <emphasis>test
 	machine</emphasis>, which will test software updates before they
 	are put into production.  This <emphasis>must</emphasis> be a


-- 
						Ken Smith
- From there to here, from here to      |       kensmith@cse.buffalo.edu
  there, funny things are everywhere.   |
                      - Theodore Geisel |



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