xref: /freebsd/share/man/man7/release.7 (revision eee69fccf91c6f30ef74cac5a922cac559344db2)
1afb33690SMurray Stokely.\" Copyright (c) 2002 Murray Stokely <murray@FreeBSD.org>
2afb33690SMurray Stokely.\" All rights reserved.
3de26e0adSMurray Stokely.\"
4de26e0adSMurray Stokely.\" Redistribution and use in source and binary forms, with or without
5de26e0adSMurray Stokely.\" modification, are permitted provided that the following conditions
6de26e0adSMurray Stokely.\" are met:
7de26e0adSMurray Stokely.\" 1. Redistributions of source code must retain the above copyright
8de26e0adSMurray Stokely.\"    notice, this list of conditions and the following disclaimer.
9de26e0adSMurray Stokely.\" 2. Redistributions in binary form must reproduce the above copyright
10de26e0adSMurray Stokely.\"    notice, this list of conditions and the following disclaimer in the
11de26e0adSMurray Stokely.\"    documentation and/or other materials provided with the distribution.
12de26e0adSMurray Stokely.\"
13de26e0adSMurray Stokely.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
14de26e0adSMurray Stokely.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15de26e0adSMurray Stokely.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16de26e0adSMurray Stokely.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
17de26e0adSMurray Stokely.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18de26e0adSMurray Stokely.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19de26e0adSMurray Stokely.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20de26e0adSMurray Stokely.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21de26e0adSMurray Stokely.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22de26e0adSMurray Stokely.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23de26e0adSMurray Stokely.\" SUCH DAMAGE.
24de26e0adSMurray Stokely.\"
25de26e0adSMurray Stokely.\" $FreeBSD$
26de26e0adSMurray Stokely.\"
27de26e0adSMurray Stokely.Dd March 12, 2002
28de26e0adSMurray Stokely.Dt RELEASE 7
29de26e0adSMurray Stokely.Os
30de26e0adSMurray Stokely.Sh NAME
31de26e0adSMurray Stokely.Nm release
32afb33690SMurray Stokely.Nd "release building infrastructure"
33de26e0adSMurray Stokely.Sh DESCRIPTION
34de26e0adSMurray Stokely.Fx
35de26e0adSMurray Stokelyprovides a complete build environment suitable for users to make
36de26e0adSMurray Stokelyfull releases of the
37de26e0adSMurray Stokely.Fx
38994c71f0SMurray Stokelyoperating system.
39de26e0adSMurray StokelyAll of the tools necessary to build a release are available from the
40de26e0adSMurray StokelyCVS repository in
41de26e0adSMurray Stokely.Pa src/release .
42de26e0adSMurray StokelyA complete release can actually be built with only a single command,
43eee69fccSMurray Stokelyincluding the creation of ISO images suitable for burning to CD-ROM,
44de26e0adSMurray Stokelyinstallation floppies, and an FTP install directory.
45de26e0adSMurray StokelyThis command is aptly named
46afb33690SMurray Stokely.Dq Li "make release" .
47de26e0adSMurray Stokely.Pp
48de26e0adSMurray StokelyBefore attempting to build a release, the user is expected to be
49994c71f0SMurray Stokelyfamiliar with the contents of
50de26e0adSMurray Stokely.Xr build 7 ,
51de26e0adSMurray Stokelyand should have experience upgrading systems from source with
52afb33690SMurray Stokely.Dq Li "make world" .
53de26e0adSMurray StokelyThe release build process requires that
54de26e0adSMurray Stokely.Pa /usr/obj
55de26e0adSMurray Stokelybe populated with the output of
56afb33690SMurray Stokely.Dq Li "make buildworld" .
57de26e0adSMurray StokelyThis is necessary so that the object files for a complete system can
58de26e0adSMurray Stokelybe installed into a clean
59de26e0adSMurray Stokely.Xr chroot 8
60de26e0adSMurray Stokelyenvironment.
61de26e0adSMurray StokelyThe release procedure also requires that the
62994c71f0SMurray Stokely.Xr md 4
63994c71f0SMurray Stokely(memory disk) device driver be present in the kernel
64994c71f0SMurray Stokely(either by being compiled in or loaded as a module).
65de26e0adSMurray Stokely.Pp
66de26e0adSMurray StokelyThis document does not cover source code management, quality
67de26e0adSMurray Stokelyassurance, or other aspects of the release engineering process.
68de26e0adSMurray Stokely.Sh TARGETS
69de26e0adSMurray StokelyThe release makefile
70994c71f0SMurray Stokely.Pq Pa src/release/Makefile
71de26e0adSMurray Stokelyis fairly abstruse.
72de26e0adSMurray StokelyMost developers will only be concerned with the
73afb33690SMurray Stokely.Cm release
74de26e0adSMurray Stokelytarget.
75994c71f0SMurray Stokely.\" XXX: Some sort of introduction to this list?  All the others have one.
76afb33690SMurray Stokely.Bl -tag -width ".Cm rerelease"
77afb33690SMurray Stokely.It Cm release
78de26e0adSMurray StokelyUses
79afb33690SMurray Stokely.Dq Li "make installworld"
80de26e0adSMurray Stokelyto install a clean system into a
81de26e0adSMurray Stokely.Xr chroot 8
82de26e0adSMurray Stokelyenvironment on the filesystem.
83de26e0adSMurray StokelyChecks out the specified version of the source code and then rebuilds
84de26e0adSMurray Stokelythe entire system in the clean environment with
85afb33690SMurray Stokely.Dq Li "make world" .
86de26e0adSMurray StokelyThe detailed steps that follow are then executed to package up the
87de26e0adSMurray Stokelydifferent distributions, build the installation floppy disks, build
88de26e0adSMurray Stokelyrelease documentation, and so on.
89afb33690SMurray Stokely.It Cm rerelease
90de26e0adSMurray StokelyAssumes that the output of a release build has been manually modified,
91de26e0adSMurray Stokelyand performs the minimal number of steps to rebuild the release using
92de26e0adSMurray Stokelythe intermediate output of the previous
93afb33690SMurray Stokely.Dq Li "make release" .
94eee69fccSMurray Stokely.It Cm floppies
95eee69fccSMurray StokelyGenerate a new set of boot floppies.
96eee69fccSMurray StokelyThis will call the
97eee69fccSMurray Stokely.Cm release.4 ,
98eee69fccSMurray Stokely.Cm release.8 ,
99eee69fccSMurray Stokelyand
100eee69fccSMurray Stokely.Cm release.9
101eee69fccSMurray Stokelytargets to re-generate the floppy images of a previous
102eee69fccSMurray Stokely.Dq Li "make release" .
103eee69fccSMurray StokelyThis is most often used to build custom boot floppies.
104de26e0adSMurray Stokely.El
105de26e0adSMurray Stokely.Pp
106de26e0adSMurray StokelyTargets called by
107afb33690SMurray Stokely.Dq Li "make release" :
108afb33690SMurray Stokely.Bl -tag -width ".Cm release.9"
109afb33690SMurray Stokely.It Cm release.1
110de26e0adSMurray StokelyCleans out the
111de26e0adSMurray Stokely.Pa ${CHROOTDIR}/R
112de26e0adSMurray Stokelydirectory and uses
113afb33690SMurray Stokely.Xr mtree 8
114de26e0adSMurray Stokelyto build the directory hierarchy for the system.
115afb33690SMurray Stokely.It Cm release.2
116de26e0adSMurray StokelyInstalls the system into the distribution directories.
117afb33690SMurray Stokely.It Cm release.3
118eee69fccSMurray Stokely.\" XXX: We build more than one kernel.  We build a stripped down
119eee69fccSMurray Stokely.\" kernel for the boot media in addition to a full GENERIC kernel.
120994c71f0SMurray StokelyMakes and installs the
121994c71f0SMurray Stokely.Pa GENERIC
122994c71f0SMurray Stokelykernel.
123afb33690SMurray Stokely.It Cm release.4
124de26e0adSMurray StokelyUses
125de26e0adSMurray Stokely.Xr crunchgen 1
126de26e0adSMurray Stokelyto build
127afb33690SMurray Stokely.Dq crunched
128de26e0adSMurray Stokelybinaries to live on the installation floppies.
129afb33690SMurray Stokely.It Cm release.5
130de26e0adSMurray StokelyBuilds synthetic distributions, and cleans up the previously built
131de26e0adSMurray Stokelydistribution trees.
132afb33690SMurray Stokely.It Cm release.6
133de26e0adSMurray StokelyCreates tarballs of the assembled distribution trees.
134afb33690SMurray Stokely.It Cm release.7
135de26e0adSMurray StokelyMakes source distributions.
136afb33690SMurray Stokely.It Cm release.8
137de26e0adSMurray StokelyCreates the boot and MFS root floppies.
138afb33690SMurray Stokely.It Cm release.9
139de26e0adSMurray StokelyCreates the fixit floppy.
140afb33690SMurray Stokely.It Cm ftp.1
141eee69fccSMurray StokelySets up a suitable area for FTP installations in
142eee69fccSMurray Stokely.Pa ${CHROOTDIR}/R/ftp .
143afb33690SMurray Stokely.It Cm cdrom.1
144eee69fccSMurray StokelySets up a suitable area to build CD-ROM images in
145eee69fccSMurray Stokely.Pa ${CHROOTDIR}/R/cdrom .
146afb33690SMurray Stokely.It Cm iso.1
147de26e0adSMurray StokelyBuilds two ISO images (installation and
148afb33690SMurray Stokely.Dq live
149eee69fccSMurray Stokelyfilesystem) from the CD-ROM release area
1501bcf2f1aSMurray Stokely(disabled by default, see
1511bcf2f1aSMurray Stokely.Va MAKE_ISOS
152994c71f0SMurray Stokelybelow).
153afb33690SMurray Stokely.It Cm doc.1
154994c71f0SMurray StokelyBuilds all of the necessary tools to turn the
155994c71f0SMurray Stokely.Fx
156994c71f0SMurray StokelyDocumentation Project source documents (SGML, XML) into HTML
157994c71f0SMurray Stokelyand text documents that will accompany the release.
158994c71f0SMurray StokelyAlso, builds and installs the actual user documentation.
159994c71f0SMurray StokelyThis includes the Handbook, FAQ, articles, and so on.
160afb33690SMurray Stokely.It Cm doc.2
161994c71f0SMurray StokelyBuilds the release documentation.
162994c71f0SMurray StokelyThis includes the release notes,
163de26e0adSMurray Stokelyhardware guide, and installation instructions.
164de26e0adSMurray Stokely.El
165de26e0adSMurray Stokely.Sh ENVIRONMENT
166994c71f0SMurray StokelyVariables that must be specified:
167afb33690SMurray Stokely.Bl -tag -width ".Va RELEASETAG"
1681bcf2f1aSMurray Stokely.It Va CHROOTDIR
169de26e0adSMurray StokelyThe directory to be used as the
170de26e0adSMurray Stokely.Xr chroot 8
171de26e0adSMurray Stokelyenvironment for the entire release build.
172994c71f0SMurray Stokely.\" XXX: I recommend against hardcoding specific numbers like "2.3" here;
173994c71f0SMurray Stokely.\" XXX: perhaps it should be replaced with something to the effect of
174994c71f0SMurray Stokely.\" XXX: "we don't know how much space you'll need, but make sure you have
175994c71f0SMurray Stokely.\" XXX: at least 3 GB to be safe" (I know i'm still hardcoding a number,
176994c71f0SMurray Stokely.\" XXX: but at least it looks less like a decree and more like an estimate.
177de26e0adSMurray StokelyThis filesystem should have at least 2.3 gigabytes of free space on the
178de26e0adSMurray Stokelyi386 architecture.
1791bcf2f1aSMurray Stokely.It Va BUILDNAME
180994c71f0SMurray StokelyThe name of the release to be built.
181994c71f0SMurray StokelyThis is used to set the
1821bcf2f1aSMurray Stokely.Va RELEASE
183de26e0adSMurray Stokelyvalue in
184de26e0adSMurray Stokely.Pa sys/conf/newvers.sh ,
185de26e0adSMurray Stokelywhich affects the output of
186de26e0adSMurray Stokely.Xr uname 1 .
1871bcf2f1aSMurray Stokely.It Va CVSROOT
188994c71f0SMurray StokelyThe location of the
189994c71f0SMurray Stokely.Fx
190994c71f0SMurray StokelyCVS repository.
191eee69fccSMurray StokelyThis path name is referenced to the real system root,
192eee69fccSMurray Stokely.Em not
193eee69fccSMurray Stokelythe root of the
194eee69fccSMurray Stokely.Xr chroot 8
195eee69fccSMurray Stokelydirectory tree.
1961bcf2f1aSMurray Stokely.It Va RELEASETAG
197994c71f0SMurray StokelyThe CVS tag corresponding to the release that is to be built.
198afb33690SMurray StokelyIf undefined, the release will be built from the
199afb33690SMurray Stokely.Dv HEAD
200afb33690SMurray Stokelyof the CVS tree
201de26e0adSMurray Stokely(a
2021bcf2f1aSMurray Stokely.Dq "-CURRENT snapshot" ) .
203de26e0adSMurray Stokely.El
204de26e0adSMurray Stokely.Pp
205de26e0adSMurray StokelyOptional variables:
2061bcf2f1aSMurray Stokely.Bl -tag -width ".Va RELEASEDISTFILES"
2071bcf2f1aSMurray Stokely.It Va LOCAL_PATCHES
208de26e0adSMurray StokelyA patch file against
209de26e0adSMurray Stokely.Pa /usr/src
210de26e0adSMurray Stokelythat will be applied in the
211de26e0adSMurray Stokely.Xr chroot 8
212de26e0adSMurray Stokelyenvironment before the release build begins.
2131bcf2f1aSMurray Stokely.It Va PATCH_FLAGS
214de26e0adSMurray StokelyArguments for the
215de26e0adSMurray Stokely.Xr patch 1
216de26e0adSMurray Stokelycommand used to apply
2171bcf2f1aSMurray Stokely.Va LOCAL_PATCHES
218afb33690SMurray Stokelypatch file.
219eee69fccSMurray Stokely.It Va LOCAL_SCRIPT
220eee69fccSMurray StokelyA script that will be run in the
221eee69fccSMurray Stokely.Xr chroot 8
222eee69fccSMurray Stokelyenvironment immediately after any local patches are applied.
2231bcf2f1aSMurray Stokely.It Va MAKE_ISOS
224eee69fccSMurray StokelyIf defined, bootable ISO CD-ROM images will be created from the
225eee69fccSMurray Stokelycontents of the CD-ROM stage directory.
2261bcf2f1aSMurray Stokely.It Va NODOC
227de26e0adSMurray StokelyIf set to
228eee69fccSMurray Stokely.Dq Li YES ,
229eee69fccSMurray Stokelythe SGML-based documentation from the
230de26e0adSMurray Stokely.Fx
231eee69fccSMurray StokelyDocumentation Project will not be built.
232eee69fccSMurray StokelyHowever, the
233eee69fccSMurray Stokely.Dq doc
234eee69fccSMurray Stokelydistribution will still be created with the minimal documentation set
235eee69fccSMurray Stokelyprovided in
236eee69fccSMurray Stokely.Pa src/share/doc .
2371bcf2f1aSMurray Stokely.It Va NOPORTS
238de26e0adSMurray StokelyIf set to
239afb33690SMurray Stokely.Dq Li YES
240eee69fccSMurray Stokelythen the Ports Collection will be omitted from the release.
241eee69fccSMurray Stokely.It Va NOPORTREADMES
242eee69fccSMurray StokelyIt defined, readme files will not be created for each individual port
243eee69fccSMurray Stokelyin the Ports Collection.
244eee69fccSMurray StokelyThe default behavior is for
245eee69fccSMurray Stokely.Dq Li "make release"
246eee69fccSMurray Stokelyto run
247eee69fccSMurray Stokely.Dq Li "make readmes"
248eee69fccSMurray Stokelyfrom
249eee69fccSMurray Stokely.Pa ${CHROOTDIR}/usr/ports ,
250eee69fccSMurray Stokelywhich can be a very time consuming operation.
2511bcf2f1aSMurray Stokely.It Va RELEASEDISTFILES
252de26e0adSMurray StokelyThe directory where the distribution files for ports required by the
253de26e0adSMurray Stokelyrelease build can be found.
254de26e0adSMurray StokelyThis may save a significant amount of time over downloading the
255de26e0adSMurray Stokelydistfiles through a slow link.
2561bcf2f1aSMurray Stokely.It Va RELEASENOUPDATE
257de26e0adSMurray StokelyIf this variable is defined for
258afb33690SMurray Stokely.Dq Li "make rerelease" ,
259de26e0adSMurray Stokelythe source code will not be updated with
260afb33690SMurray Stokely.Dq Li "cvs update" .
261de26e0adSMurray Stokely.El
262de26e0adSMurray Stokely.Sh FILES
263de26e0adSMurray Stokely.Bl -tag -compact
264de26e0adSMurray Stokely.It Pa /etc/make.conf
265de26e0adSMurray Stokely.It Pa /usr/doc/Makefile
266de26e0adSMurray Stokely.It Pa /usr/doc/share/mk/doc.project.mk
267de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.port.mk
268de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.sites.mk
269de26e0adSMurray Stokely.It Pa /usr/share/examples/etc/make.conf
270de26e0adSMurray Stokely.It Pa /usr/src/Makefile
271de26e0adSMurray Stokely.It Pa /usr/src/Makefile.inc1
272de26e0adSMurray Stokely.It Pa /usr/src/release/Makefile
273de26e0adSMurray Stokely.It Pa /usr/src/release/${arch}/drivers.conf
274de26e0adSMurray Stokely.It Pa /usr/src/release/${arch}/boot_crunch.conf
275de26e0adSMurray Stokely.It Pa /usr/src/release/${arch}/fixit_crunch.conf
276de26e0adSMurray Stokely.El
277de26e0adSMurray Stokely.Sh EXAMPLES
278994c71f0SMurray StokelyThe following sequence of commands was used to build the
279de26e0adSMurray Stokely.Fx 4.5
280de26e0adSMurray Stokelyrelease:
281de26e0adSMurray Stokely.Bd -literal -offset indent
282de26e0adSMurray Stokelycd /usr
283de26e0adSMurray Stokelycvs co -rRELENG_4_5_0_RELEASE src
284de26e0adSMurray Stokelycd src
285de26e0adSMurray Stokelymake buildworld
286de26e0adSMurray Stokelycd release
287de26e0adSMurray Stokelymake release CHROOTDIR=/local3/release BUILDNAME=4.5-RELEASE \\
288de26e0adSMurray Stokely  CVSROOT=/host/cvs/usr/home/ncvs RELEASETAG=RELENG_4_5_0_RELEASE
289de26e0adSMurray Stokely.Ed
290de26e0adSMurray Stokely.Pp
291de26e0adSMurray StokelyAfter running these commands, a complete system suitable for FTP or
292eee69fccSMurray StokelyCD-ROM distribution is available in the
293994c71f0SMurray Stokely.Pa /local3/release/R
294de26e0adSMurray Stokelydirectory.
295de26e0adSMurray Stokely.Pp
296994c71f0SMurray StokelyThe following sequence of commands can be used to build a
2971bcf2f1aSMurray Stokely.Dq "-CURRENT snapshot"
298994c71f0SMurray Stokelyof a
299de26e0adSMurray Stokelylocally modified source tree:
300de26e0adSMurray Stokely.Bd -literal -offset indent
301de26e0adSMurray Stokelycd /usr/src
302de26e0adSMurray Stokelycvs diff -u > /path/to/local.patch
303de26e0adSMurray Stokelymake buildworld
304de26e0adSMurray Stokelycd release
305eee69fccSMurray Stokelymake release CHROOTDIR=/local3/release BUILDNAME=5.0-CURRENT \\
306de26e0adSMurray Stokely  CVSROOT=/host/cvs/usr/home/ncvs LOCAL_PATCHES=/path/to/local.patch
307de26e0adSMurray Stokely.Ed
308de26e0adSMurray Stokely.Sh SEE ALSO
309de26e0adSMurray Stokely.Xr cc 1 ,
310de26e0adSMurray Stokely.Xr crunchgen 1 ,
311afb33690SMurray Stokely.Xr cvs 1 ,
312de26e0adSMurray Stokely.Xr install 1 ,
313de26e0adSMurray Stokely.Xr make 1 ,
314de26e0adSMurray Stokely.Xr patch 1 ,
315de26e0adSMurray Stokely.Xr uname 1 ,
316afb33690SMurray Stokely.Xr md 4 ,
317de26e0adSMurray Stokely.Xr make.conf 5 ,
318de26e0adSMurray Stokely.Xr build 7 ,
319de26e0adSMurray Stokely.Xr ports 7 ,
320afb33690SMurray Stokely.Xr chroot 8 ,
321afb33690SMurray Stokely.Xr mtree 8
322994c71f0SMurray Stokely.Rs
3231bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering"
324994c71f0SMurray Stokely.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
325994c71f0SMurray Stokely.Re
326994c71f0SMurray Stokely.Rs
3271bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering of Third Party Packages"
328994c71f0SMurray Stokely.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/
329994c71f0SMurray Stokely.Re
330994c71f0SMurray Stokely.Rs
3311bcf2f1aSMurray Stokely.%T "FreeBSD Developers' Handbook"
332994c71f0SMurray Stokely.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/
333994c71f0SMurray Stokely.Re
334de26e0adSMurray Stokely.Sh HISTORY
335de26e0adSMurray Stokely.Fx
336de26e0adSMurray Stokely1.x
3371bcf2f1aSMurray Stokelyused a manual checklist, compiled by
3381bcf2f1aSMurray Stokely.An Rod Grimes ,
3391bcf2f1aSMurray Stokelyto produce a release.
340de26e0adSMurray StokelyApart from being incomplete, the list put a lot of specific demands on
341de26e0adSMurray Stokelyavailable filesystems and was quite torturous to execute.
342de26e0adSMurray Stokely.Pp
343994c71f0SMurray StokelyAs part of the
344994c71f0SMurray Stokely.Fx 2.0
345994c71f0SMurray Stokelyrelease engineering effort, significant
346de26e0adSMurray Stokelyeffort was spent getting
347de26e0adSMurray Stokely.Pa src/release/Makefile
348de26e0adSMurray Stokelyinto a shape where it could at least automate most of the tediousness
349de26e0adSMurray Stokelyof building a release in a sterile environment.
350de26e0adSMurray Stokely.Pp
351afb33690SMurray StokelyWith its almost 1000 revisions spread over multiple branches, the
352afb33690SMurray Stokely.Xr cvs 1
353994c71f0SMurray Stokelylog of
354994c71f0SMurray Stokely.Pa src/release/Makefile
355994c71f0SMurray Stokelycontains a vivid historical record of some
356de26e0adSMurray Stokelyof the hardships release engineers go through.
357de26e0adSMurray Stokely.Sh AUTHORS
358de26e0adSMurray Stokely.Pa src/release/Makefile
359afb33690SMurray Stokelywas originally written by
360afb33690SMurray Stokely.An -nosplit
361afb33690SMurray Stokely.An Rod Grimes ,
362afb33690SMurray Stokely.An Jordan Hubbard ,
363afb33690SMurray Stokelyand
364afb33690SMurray Stokely.An Poul-Henning Kamp .
365994c71f0SMurray StokelyThis manual page was written by
366de26e0adSMurray Stokely.An Murray Stokely Aq murray@FreeBSD.org .
367