Merge from vendor branch NETGRAPH:
[dragonfly.git] / share / man / man7 / release.7
1 .\"
2 .\" Copyright (c) 2006 The DragonFly Project.  All rights reserved.
3 .\" 
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in
12 .\"    the documentation and/or other materials provided with the
13 .\"    distribution.
14 .\" 3. Neither the name of The DragonFly Project nor the names of its
15 .\"    contributors may be used to endorse or promote products derived
16 .\"    from this software without specific, prior written permission.
17 .\" 
18 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 .\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
22 .\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 .\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
28 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .\" $FreeBSD: src/share/man/man7/release.7,v 1.3.2.6 2003/04/12 20:42:30 murray Exp $
32 .\" $DragonFly: src/share/man/man7/release.7,v 1.12 2008/04/01 21:10:26 swildner Exp $
33 .\"
34 .Dd April 1, 2008
35 .Dt NRELEASE 7
36 .Os
37 .Sh NAME
38 .Nm nrelease
39 .Nd release building infrastructure
40 .Sh DESCRIPTION
41 .Dx
42 provides a complete build environment suitable for users to make
43 full releases of the
44 .Dx
45 operating system.
46 All of the tools necessary to build releases are available from the
47 CVS repository in
48 .Pa src/nrelease .
49 A complete release (that is, a live CD) can actually be built with
50 only a single command.
51 This command is aptly named
52 .Dq Li "make release" .
53 .Pp
54 This document does not cover source code management, quality
55 assurance, or other aspects of the release engineering process.
56 .Sh TARGETS
57 The release Makefile
58 .Pq Pa src/nrelease/Makefile
59 defines a number of targets which are roughly modeled after the
60 targets used for building the system.
61 .Bl -tag -width ".Cm realquickrel"
62 .It Cm release
63 Builds world and kernel, installs them, adds packages and prepares the ISO
64 image.
65 .It Cm quickrel
66 Same as
67 .Cm release
68 but uses the
69 .Cm quickworld
70 target (alias
71 .Cm quick ) .
72 .It Cm realquickrel
73 Same as
74 .Cm release
75 but uses the
76 .Cm realquickworld
77 target (alias
78 .Cm realquick ) .
79 .It Cm clean
80 Removes the ISO root directory and object files.
81 .It Cm realclean
82 Same as
83 .Cm clean
84 but also removes external packages.
85 .It Cm fetch
86 Downloads the bootstrap kit and binary packages using
87 .Xr fetch 1 .
88 .El
89 .Pp
90 The
91 .Cm quickrel
92 and
93 .Cm realquickrel
94 targets will only work if a full
95 .Cm buildworld
96 and
97 .Cm buildkernel
98 have been done before.
99 For a description of the corresponding build targets, see
100 .Xr build 7 .
101 .Pp
102 If the
103 .Cm installer
104 target is specified along with a
105 .Cm release ,
106 .Cm quickrel ,
107 or
108 .Cm realquickrel
109 target, the
110 .Bx
111 Installer will be added to the resulting ISO image.
112 Likewise, if the
113 .Cm gui
114 target is specified, X11 will be added to the ISO.
115 .Pp
116 During the process of rolling a release a check is performed to find
117 out if a number of external packages to be put on the CD exist on
118 your system.
119 If they cannot be found, the release process will stop and give
120 proper commands for downloading and setting up these packages.
121 .Sh ENVIRONMENT
122 .Bl -tag -width ".Va PKGBIN_PKG_DELETE"
123 .It Va ISODIR
124 Default prefix of
125 .Va ISOFILE
126 and
127 .Va ISOROOT .
128 .It Va ISOFILE
129 Name of the ISO image to generate.
130 .It Va ISOROOT
131 Location where the image contents are installed to before the ISO is prepared.
132 .It Va KERNCONF
133 Kernel configuration(s) to use.
134 .It Va PKGBIN_MKISOFS
135 Location of the
136 .Xr mkisofs 8
137 utility which is to be used during the build.
138 .It Va PKGBIN_PKG_ADD
139 Location of the
140 .Xr pkg_add 1
141 utility which is to be used during the build.
142 .It Va PKGBIN_PKG_ADMIN
143 Location of the
144 .Xr pkg_admin 1
145 utility which is to be used during the build.
146 .It Va PKGBIN_PKG_DELETE
147 Location of the
148 .Xr pkg_delete 1
149 utility which is to be used during the build.
150 .It Va PKGSRC_PACKAGES
151 List of packages to be added to the ISO.
152 .It Va PKGSRC_PKG_PATH
153 Specifies the location where binary
154 .Xr pkgsrc 7
155 packages are kept.
156 .It Va WITHOUT_SRCS
157 If set, this variable will prevent kernel source code from being copied to
158 .Pa /usr/src-sys.tar.bz2
159 on the ISO image.
160 .El
161 .Sh FILES
162 .Bl -tag -compact
163 .It Pa /etc/make.conf
164 .It Pa src/Makefile
165 .It Pa src/Makefile.inc1
166 .It Pa src/nrelease/Makefile
167 .El
168 .Sh EXAMPLES
169 The following sequence of commands is used to build a standard
170 .Dx 1.12
171 installation CD image (assuming that a local CVS repository is
172 available):
173 .Bd -literal -offset indent
174 cd /usr
175 cvs co -rDragonFly_RELEASE_1_12_Slip src
176 cd src/nrelease
177 make installer release
178 .Ed
179 .Pp
180 After running these commands, the image will be available in the
181 .Pa /usr/release
182 directory.
183 .Pp
184 The steps required for engineering a release are documented in (CVS)
185 .Pa doc/notes/release.txt
186 (how to branch the CVS tree etc.)
187 They were put in an out of the way place so normal developers would not
188 accidentally try to run the commands in question.
189 .Sh SEE ALSO
190 .Xr cvs 1 ,
191 .Xr make 1 ,
192 .Xr make.conf 5 ,
193 .Xr build 7 ,
194 .Xr pkgsrc 7
195 .Sh HISTORY
196 The
197 .Nm
198 framework was added in
199 .Dx 1.0
200 to implement the idea of a
201 .Dq "live CD" .
202 .Sh AUTHORS
203 .An -nosplit
204 The
205 .Nm
206 infrastructure was written by
207 .An Matthew Dillon .
208 This manual page was written by
209 .An Sascha Wildner .