aboutsummaryrefslogtreecommitdiff
path: root/share/man/man7/development.7
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man7/development.7')
-rw-r--r--share/man/man7/development.741
1 files changed, 27 insertions, 14 deletions
diff --git a/share/man/man7/development.7 b/share/man/man7/development.7
index 4f03342592b3..9986d09ef1e2 100644
--- a/share/man/man7/development.7
+++ b/share/man/man7/development.7
@@ -30,8 +30,10 @@ conveniently.
.Sh SETTING UP THE ENVIRONMENT ON THE MASTER SERVER
Your master server should always run a stable, production version of the
.Fx
-operating system. This does not prevent you from doing -CURRENT
-builds or development. The last thing you want to do is to run an
+operating system.
+This does not prevent you from doing -CURRENT
+builds or development.
+The last thing you want to do is to run an
unstable environment on your master server which could lead to a situation
where you lose the environment and/or cannot recover from a mistake.
.Pp
@@ -52,7 +54,8 @@ in
or you can make
.Pa /usr/obj
its own partition.
-I recommend making it a separate partition for several reasons. First,
+I recommend making it a separate partition for several reasons.
+First,
as a safety measure since this partition is written to a great deal.
Second, because you typically do not have to back it up.
Third, because it makes it far easier to mix and match the development
@@ -64,7 +67,8 @@ partition of at least 5GB.
On the master server, use cvsup to automatically pull down and maintain
the
.Fx
-CVS archive once a day. The first pull will take a long time,
+CVS archive once a day.
+The first pull will take a long time,
it is several gigabytes, but once you have it the daily syncs will be quite
small.
.Bd -literal -offset 4n
@@ -82,7 +86,8 @@ to cvsup.
33 6 * * * /usr/local/bin/cvsup -g -r 20 -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/cvs-supfile
.Ed
.Pp
-Run the cvsup manually the first time to pull down the archive. It could take
+Run the cvsup manually the first time to pull down the archive.
+It could take
all day depending on how fast your connection is!
You will run all cvsup and cvs operations as root and you need to set
up a ~/.cvsrc (/root/.cvsrc) file, as shown below, for proper cvs operation.
@@ -116,7 +121,8 @@ cvs -d /home/ncvs checkout doc
.Pp
Now create a softlink for /usr/src and /usr/src2.
On the main server I always point /usr/src at -STABLE and /usr/src2 at
--CURRENT. On client machines I usually do not have a /usr/src2 and I make
+-CURRENT.
+On client machines I usually do not have a /usr/src2 and I make
/usr/src point at whatever version of FreeBSD the client box is intended to
run.
.Bd -literal -offset 4n
@@ -127,7 +133,8 @@ ln -s /FreeBSD/FreeBSD-current/src src2 (MASTER SERVER ONLY)
.Ed
.Pp
Now you have to make a choice for /usr/obj.
-Well, hopefully you made it already and chose the partition method. If you
+Well, hopefully you made it already and chose the partition method.
+If you
chose poorly you probably intend to put it in /FreeBSD and, if so, this is
what you want to do:
.Bd -literal -offset 4n
@@ -138,7 +145,8 @@ rm -rf obj
ln -s /FreeBSD/obj obj
.Ed
.Pp
-Alternatively you may chose simply to leave /usr/obj in /usr. If your
+Alternatively you may chose simply to leave /usr/obj in /usr.
+If your
/usr is large enough this will work, but I do not recommend it for
safety reasons (/usr/obj is constantly being modified, /usr is not).
.Pp
@@ -157,7 +165,8 @@ to check it out (see above).
With some fancy softlinks you can make the ports tree available both on your
master server and on all of your other machines.
Note that the ports tree exists only on the HEAD cvs branch, so its always
--CURRENT even on a -STABLE box. This is what you do:
+-CURRENT even on a -STABLE box.
+This is what you do:
.Bd -literal -offset 4n
(THESE COMMANDS ON THE MASTER SERVER AND ON ALL CLIENTS)
cd /usr
@@ -228,7 +237,8 @@ into the NFS-mounted environment.
If a particular client is running -CURRENT, /usr/src
should be a softlink to /FreeBSD/FreeBSD-current/src.
If it is running -STABLE, /usr/src should be a softlink to
-/FreeBSD/FreeBSD-4.x/src. I do not usually create a /usr/src2 softlink on
+/FreeBSD/FreeBSD-4.x/src.
+I do not usually create a /usr/src2 softlink on
clients, that is used as a convenient shortcut when working on the source
code on the master server only and could create massive confusion (of the
human variety) on a client.
@@ -305,7 +315,8 @@ make buildworld
.Pp
If you are on the master server you are running in a -STABLE environment, but
that does not prevent you from building the -CURRENT world.
-Just cd into the appropriate source directory and you are set. Do not
+Just cd into the appropriate source directory and you are set.
+Do not
accidentally install it on your master server though!
.Bd -literal -offset 4n
cd /usr/src2
@@ -393,7 +404,8 @@ version of CVS examines a custom environmental variable,
CVS_LOCAL_BRANCH_NUM, which specifies an integer to use when doing a cvs
tag/rtag.
Set this number to something high (say 1000) to avoid colliding
-with potential future branches of the main repository. For example,
+with potential future branches of the main repository.
+For example,
branching a file with version 1.4 produces 1.4.1000.
Future commits to this branch will produce revisions 1.4.1000.1,
1.4.1000.2, etc.
@@ -448,7 +460,8 @@ This is a good time to also remind you that most of the cvs operations
you do will be done as root, and that certain options are
required for CVS to operate properly on the
.Fx
-repository. For example,
+repository.
+For example,
.Fl Pd
is necessary when running "cvs update".
These options are typically placed in your ~/.cvsrc (as already described)
@@ -462,7 +475,7 @@ If you can make it 15GB I would do it.
I generally do not cvs update via a cron job.
This is because I generally want the source to not change out from under me
when I am developing code.
-Instead I manually update the source every so often... when I feel it is
+Instead I manually update the source every so often...\& when I feel it is
a good time.
My recommendation is to only keep the cvs repository synchronized via cron.
.Sh SEE ALSO