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