diff options
| author | Murray Stokely <murray@FreeBSD.org> | 2002-03-13 09:54:31 +0000 |
|---|---|---|
| committer | Murray Stokely <murray@FreeBSD.org> | 2002-03-13 09:54:31 +0000 |
| commit | 994c71f0c8fc89df3a45c5e400ec580c7433fe4c (patch) | |
| tree | 90f370c908ceaf97b4a33ecfe054da4919efeaf9 | |
| parent | 49b144f2861317ee49b69fa5c114a3c26a5ebaee (diff) | |
Notes
| -rw-r--r-- | share/man/man7/release.7 | 156 |
1 files changed, 88 insertions, 68 deletions
diff --git a/share/man/man7/release.7 b/share/man/man7/release.7 index 0c207cede904a..0362e1d8d16d9 100644 --- a/share/man/man7/release.7 +++ b/share/man/man7/release.7 @@ -29,24 +29,24 @@ .Os .Sh NAME .Nm release -.Nd information on the process used to build a complete system release +.Nd release building infrastructure .Sh DESCRIPTION .Fx provides a complete build environment suitable for users to make full releases of the .Fx -Operating System. +operating system. All of the tools necessary to build a release are available from the -CVS repository in +CVS repository in .Pa src/release . A complete release can actually be built with only a single command, including the creation of ISO images suitable for burning to CDROM, -installation floppies, and an FTP install directory. +installation floppies, and an FTP install directory. This command is aptly named .Dq make release . .Pp Before attempting to build a release, the user is expected to be -experienced with the contents of +familiar with the contents of .Xr build 7 , and should have experience upgrading systems from source with .Dq make world . @@ -55,24 +55,25 @@ The release build process requires that be populated with the output of .Dq make buildworld . This is necessary so that the object files for a complete system can -be installed into a clean +be installed into a clean .Xr chroot 8 environment. The release procedure also requires that the -.Pa md -(memory disk) device driver be present in the kernel. +.Xr md 4 +(memory disk) device driver be present in the kernel +(either by being compiled in or loaded as a module). .Pp This document does not cover source code management, quality assurance, or other aspects of the release engineering process. .Sh TARGETS -.Pp The release makefile -.Pa (src/release/makefile) +.Pq Pa src/release/Makefile is fairly abstruse. Most developers will only be concerned with the -.Pa release +.Ar release target. -.Bl -tag -width configure +.\" XXX: Some sort of introduction to this list? All the others have one. +.Bl -tag -width rerelease .It Ar release Uses .Dq make installworld @@ -81,7 +82,7 @@ to install a clean system into a environment on the filesystem. Checks out the specified version of the source code and then rebuilds the entire system in the clean environment with -.Dq make world . +.Dq make world . The detailed steps that follow are then executed to package up the different distributions, build the installation floppy disks, build release documentation, and so on. @@ -93,10 +94,10 @@ the intermediate output of the previous .El .Pp Targets called by -.Dq make release . -.Bl -tag -width configure +.Dq make release : +.Bl -tag -width release.9 .It Ar release.1 -Cleans out the +Cleans out the .Pa ${CHROOTDIR}/R directory and uses .Xr mtree 1 @@ -104,11 +105,15 @@ to build the directory hierarchy for the system. .It Ar release.2 Installs the system into the distribution directories. .It Ar release.3 -Makes and installs the GENERIC kernel(s). +.\" XXX: This should either be "GENERIC kernel" (singular) or +.\" XXX: "GENERIC and <some other> kernels". +Makes and installs the +.Pa GENERIC +kernel. .It Ar release.4 Uses .Xr crunchgen 1 -to build +to build .Sq crunched binaries to live on the installation floppies. .It Ar release.5 @@ -127,50 +132,61 @@ Sets up a suitable area for FTP installations. .It Ar cdrom.1 Sets up a suitable area to build CDROM images. .It Ar iso.1 -Builds two ISO images (installation and +Builds two ISO images (installation and .Sq live -filesystem) from the CDROM release area. +filesystem) from the CDROM release area +(Disabled by default, see +.Pa MAKE_ISOS +below). .It Ar doc.1 -Builds all of the necessary tools to turn the FreeBSD Documentation -Project source documents (SGML, XML) into HTML and text documents that -will accompany the release. Also, builds and installs the actual -user documentation. This includes the Handbook, FAQ, articles, and so -on. +Builds all of the necessary tools to turn the +.Fx +Documentation Project source documents (SGML, XML) into HTML +and text documents that will accompany the release. +Also, builds and installs the actual user documentation. +This includes the Handbook, FAQ, articles, and so on. .It Ar doc.2 -Builds the release documentation. This includes the release notes, +Builds the release documentation. +This includes the release notes, hardware guide, and installation instructions. .El .Sh ENVIRONMENT -.Pp -Variables that you must specify: -.Bl -tag -width configure +Variables that must be specified: +.Bl -tag -width RELEASETAG .It Ev CHROOTDIR The directory to be used as the .Xr chroot 8 environment for the entire release build. +.\" XXX: I recommend against hardcoding specific numbers like "2.3" here; +.\" XXX: perhaps it should be replaced with something to the effect of +.\" XXX: "we don't know how much space you'll need, but make sure you have +.\" XXX: at least 3 GB to be safe" (I know i'm still hardcoding a number, +.\" XXX: but at least it looks less like a decree and more like an estimate. This filesystem should have at least 2.3 gigabytes of free space on the i386 architecture. .It Ev BUILDNAME -The name of the release to be built. This is used to set the -.Pa RELEASE +The name of the release to be built. +This is used to set the +.Dv RELEASE value in .Pa sys/conf/newvers.sh , which affects the output of .Xr uname 1 . .It Ev CVSROOT -The location of a CVS Repository. +The location of the +.Fx +CVS repository. .It Ev RELEASETAG -The CVS tag corresponding to the release you would like to build. +The CVS tag corresponding to the release that is to be built. If undefined, the release will be built from the HEAD of the CVS tree (a -.Sq -CURRENT snapshot -). +.Sq -CURRENT snapshot ) . .El .Pp Optional variables: -.Bl -tag -width configure +.Bl -tag -width RELEASEDISTFILES .It Ev LOCAL_PATCHES -A patch file against +A patch file against .Pa /usr/src that will be applied in the .Xr chroot 8 @@ -179,18 +195,18 @@ environment before the release build begins. Arguments for the .Xr patch 1 command used to apply -.Pa LOCAL_PATCHES . +.Ev LOCAL_PATCHES . .It Ev MAKE_ISOS If defined, bootable ISO CDROM images will be created from the contents of the CDROM stage directory. .It Ev NODOC If set to .Dq YES -then the documentation will not be built. Due to the SGML based +then the documentation will not be built. +Due to the SGML-based toolchain and multiple languages supported by the .Fx -Documentation Project, this may speed up the release build time -considerably. +Documentation Project, this may speed up the release build considerably. .It Ev NOPORTS If set to .Dq YES @@ -222,9 +238,9 @@ the source code will not be updated with .It Pa /usr/src/release/${arch}/fixit_crunch.conf .El .Sh EXAMPLES -The following commands were used to build the +The following sequence of commands was used to build the .Fx 4.5 -release : +release: .Bd -literal -offset indent cd /usr cvs co -rRELENG_4_5_0_RELEASE src @@ -237,11 +253,13 @@ make release CHROOTDIR=/local3/release BUILDNAME=4.5-RELEASE \\ .Pp After running these commands, a complete system suitable for FTP or CDROM distribution is available in the -.Pa /local3/release/R/ +.Pa /local3/release/R directory. .Pp -The following commands can be used to build a -CURRENT snapshot of a -locally modified source tree : +The following sequence of commands can be used to build a +.Sq -CURRENT snapshot +of a +locally modified source tree: .Bd -literal -offset indent cd /usr/src cvs diff -u > /path/to/local.patch @@ -262,38 +280,40 @@ make release CHROOTDIR=/local3/release BUILDNAME=5.0-SNAPSHOT \\ .Xr build 7 , .Xr ports 7 , .Xr chroot 8 -.Pp -.Fx -Release Engineering -http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng -.Pp -.Fx -Release Engineering of Third Party Packages -http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages -.Pp -.Fx -Developer's Handbook -http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook +.Rs +.%T FreeBSD Release Engineering +.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/ +.Re +.Rs +.%T FreeBSD Release Engineering of Third Party Packages +.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/ +.Re +.Rs +.%T FreeBSD Developers' Handbook +.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/ +.Re .Sh HISTORY -.Pp .Fx 1.x -used a manual checklist, compiled by Rod Grimes to produce a release. +used a manual checklist, compiled by Rod Grimes, to produce a release. Apart from being incomplete, the list put a lot of specific demands on -available filesystems and was quite torturous to execute. +available filesystems and was quite torturous to execute. .Pp -As part of the FreeBSD 2.0 release engineering effort, significant -effort was spent getting +As part of the +.Fx 2.0 +release engineering effort, significant +effort was spent getting .Pa src/release/Makefile into a shape where it could at least automate most of the tediousness of building a release in a sterile environment. .Pp -With its almost 1000 revisions spread over multiple branches, the cvs -log of src/release/Makefile contains a vivid historical record of some +With its almost 1000 revisions spread over multiple branches, the CVS +log of +.Pa src/release/Makefile +contains a vivid historical record of some of the hardships release engineers go through. .Sh AUTHORS .Pa src/release/Makefile -was originally written by Rod Grimes, Jordan Hubbard, and Poul-Henning -Kamp. -This man page was written by +was originally written by Rod Grimes, Jordan Hubbard, and Poul-Henning Kamp. +This manual page was written by .An Murray Stokely Aq murray@FreeBSD.org . |
