xref: /dragonfly/share/man/man7/release.7 (revision 3bf8a2ef)
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 January 15, 2009
35.Dt NRELEASE 7
36.Os
37.Sh NAME
38.Nm nrelease
39.Nd release building infrastructure
40.Sh DESCRIPTION
41.Dx
42provides a complete build environment suitable for users to make
43full releases of the
44.Dx
45operating system.
46All of the tools necessary to build releases are available from the
47git repository in
48.Pa src/nrelease .
49A complete release (that is, a live CD) can actually be built with
50only a single command.
51This command is aptly named
52.Dq Li "make release" .
53.Pp
54This document does not cover source code management, quality
55assurance, or other aspects of the release engineering process.
56.Sh TARGETS
57The release Makefile
58.Pq Pa src/nrelease/Makefile
59defines a number of targets which are roughly modeled after the
60targets used for building the system.
61.Bl -tag -width ".Cm realquickrel"
62.It Cm release
63Builds world and kernel, installs them, adds packages and prepares the ISO
64image.
65.It Cm quickrel
66Same as
67.Cm release
68but uses the
69.Cm quickworld
70target (alias
71.Cm quick ) .
72.It Cm realquickrel
73Same as
74.Cm release
75but uses the
76.Cm realquickworld
77target (alias
78.Cm realquick ) .
79.It Cm clean
80Removes the ISO root directory and object files.
81.It Cm realclean
82Same as
83.Cm clean
84but also removes external packages.
85.It Cm fetch
86Downloads the bootstrap kit and binary packages using
87.Xr fetch 1 .
88.El
89.Pp
90The
91.Cm quickrel
92and
93.Cm realquickrel
94targets will only work if a full
95.Cm buildworld
96and
97.Cm buildkernel
98have been done before.
99For a description of the corresponding build targets, see
100.Xr build 7 .
101.Pp
102A number of additional targets may be specified along with
103.Cm release ,
104.Cm quickrel ,
105or
106.Cm realquickrel
107to add additional features:
108.Bl -tag -width ".Cm realquickrel"
109.It Cm gui
110Adds
111.Xr Xorg 1
112along with some additional applications to the ISO (LiveDVD).
113.It Cm img
114In addition to the ISO, an image suitable for use with e.g., a USB thumb
115drive, will be created.
116.El
117.Pp
118During the process of rolling a release a check is performed to find
119out if a number of external packages to be put on the CD exist on
120your system.
121If they cannot be found, the release process will stop and give
122proper commands for downloading and setting up these packages.
123.Sh ENVIRONMENT
124.Bl -tag -width ".Va PKGBIN_PKG_DELETE"
125.It Va ISODIR
126Default prefix of
127.Va ISOFILE
128and
129.Va ISOROOT .
130.It Va ISOFILE
131Name of the ISO image to generate.
132.It Va ISOROOT
133Location where the image contents are installed to before the ISO is prepared.
134.It Va KERNCONF
135Kernel configuration(s) to use.
136.It Va PKGBIN_MKISOFS
137Location of the
138.Xr mkisofs 8
139utility which is to be used during the build.
140.It Va PKGBIN_PKG_ADD
141Location of the
142.Xr pkg_add 1
143utility which is to be used during the build.
144.It Va PKGBIN_PKG_ADMIN
145Location of the
146.Xr pkg_admin 1
147utility which is to be used during the build.
148.It Va PKGBIN_PKG_DELETE
149Location of the
150.Xr pkg_delete 1
151utility which is to be used during the build.
152.It Va PKGSRC_PACKAGES
153List of packages to be added to the ISO.
154.It Va PKGSRC_PKG_PATH
155Specifies the location where binary
156.Xr pkgsrc 7
157packages are kept.
158.It Va WITHOUT_SRCS
159If set, this variable will prevent kernel source code from being copied to
160.Pa /usr/src-sys.tar.bz2
161on the ISO image.
162.It Va IMGFILE
163The name of the image file (default is
164.Pa /usr/release/dfly.img ) .
165.It Va IMGMNT
166The mount point for the image (default is
167.Pa /usr/release/mnt ) .
168.It Va IMGUSBDEV
169The disk device to use in the image's
170.Xr fstab 5
171(default is
172.Pa /dev/da0 ) .
173.El
174.Sh FILES
175.Bl -tag -compact
176.It Pa /etc/make.conf
177.It Pa src/Makefile
178.It Pa src/Makefile.inc1
179.It Pa src/nrelease/Makefile
180.El
181.Sh EXAMPLES
182The following sequence of commands is used to build a standard
183.Dx 2.0
184installation CD image (assuming that a local git repository is
185available):
186.Bd -literal -offset indent
187cd /usr/src
188git checkout -b rel2_0 crater/DragonFly_RELEASE_2_0
189cd nrelease
190make release
191.Ed
192.Pp
193After running these commands, the image will be available in the
194.Pa /usr/release
195directory.
196.\".Pp
197.\"The steps required for engineering a release are documented in (CVS)
198.\".Pa doc/notes/release.txt
199.\"(how to branch the CVS tree etc.)
200.\"They were put in an out of the way place so normal developers would not
201.\"accidentally try to run the commands in question.
202.Sh SEE ALSO
203.Xr git 1 ,
204.Xr make 1 ,
205.Xr make.conf 5 ,
206.Xr build 7 ,
207.Xr development 7 ,
208.Xr pkgsrc 7
209.Sh HISTORY
210The
211.Nm
212framework was added in
213.Dx 1.0
214to implement the idea of a
215.Dq "live CD" .
216.Sh AUTHORS
217.An -nosplit
218The
219.Nm
220infrastructure was written by
221.An Matthew Dillon .
222This manual page was written by
223.An Sascha Wildner .
224