xref: /freebsd/share/man/man7/release.7 (revision cbc0e08a7be92a8a6caf19f900239107d58ddadc)
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.\"
27e0436612SGlen Barber.Dd March 5, 2014
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
40feacd98eSNathan Whitehorn.Fx
41feacd98eSNathan Whitehornsource code repository in
42de26e0adSMurray Stokely.Pa src/release .
43de26e0adSMurray StokelyA complete release can actually be built with only a single command,
44eee69fccSMurray Stokelyincluding the creation of ISO images suitable for burning to CD-ROM,
45feacd98eSNathan Whitehornmemory stick images, and an FTP install directory.
46de26e0adSMurray StokelyThis command is aptly named
47afb33690SMurray Stokely.Dq Li "make release" .
48de26e0adSMurray Stokely.Pp
49e8423d00SNathan WhitehornFor some users, it may be desirable to provide an absolutely clean
50e8423d00SNathan Whitehornbuild environment, with no local modifications to the source tree or to
51e8423d00SNathan Whitehorn.Xr make.conf 5 ,
52e8423d00SNathan Whitehornand with clean checkouts of specific versions of the doc, src, and ports
53ebe27856SGlen Barbertrees.
54ebe27856SGlen BarberFor this purpose, a script
55ebe27856SGlen Barber.Pq Pa src/release/release.sh
56e8423d00SNathan Whitehornis provided to automate these checkouts and then execute
57e8423d00SNathan Whitehorn.Dq Li "make release"
58e8423d00SNathan Whitehornin a clean
59e8423d00SNathan Whitehorn.Xr chroot 8 .
60e8423d00SNathan Whitehorn.Pp
61de26e0adSMurray StokelyBefore attempting to build a release, the user is expected to be
62994c71f0SMurray Stokelyfamiliar with the contents of
63de26e0adSMurray Stokely.Xr build 7 ,
6447280c4bSRuslan Ermilovand should have experience upgrading systems from source.
65e8423d00SNathan Whitehorn.Pp
66de26e0adSMurray StokelyThe release build process requires that
67de26e0adSMurray Stokely.Pa /usr/obj
68de26e0adSMurray Stokelybe populated with the output of
69d408a341SNathan Whitehorn.Dq Li "make buildworld"
70d408a341SNathan Whitehornand
71d408a341SNathan Whitehorn.Dq Li "make buildkernel" .
72e8423d00SNathan WhitehornThis is necessary to provide the object files for the release or, when
73e8423d00SNathan Whitehornusing
74ebe27856SGlen Barber.Pa release.sh ,
75e8423d00SNathan Whitehornso that the object files for a complete system can be installed into a clean
76de26e0adSMurray Stokely.Xr chroot 8
77ebe27856SGlen Barberenvironment.
78ebe27856SGlen Barber.Pp
79ebe27856SGlen BarberIf the target release build is for a different architecture or machine type,
80ebe27856SGlen Barberthe
81ebe27856SGlen Barber.Va TARGET
82ebe27856SGlen Barberand
83ebe27856SGlen Barber.Va TARGET_ARCH
84ebe27856SGlen Barbervariables must be used.
85ebe27856SGlen BarberSee the supported
86ebe27856SGlen Barber.Fa release.conf
87ebe27856SGlen Barbervariables for more information.
88ebe27856SGlen Barber.Pp
89e8423d00SNathan WhitehornThe release procedure on some architectures may also require that the
90994c71f0SMurray Stokely.Xr md 4
91994c71f0SMurray Stokely(memory disk) device driver be present in the kernel
92ebe27856SGlen Barber.Pq either by being compiled in or available as a module .
93de26e0adSMurray Stokely.Pp
94de26e0adSMurray StokelyThis document does not cover source code management, quality
95de26e0adSMurray Stokelyassurance, or other aspects of the release engineering process.
96e8423d00SNathan Whitehorn.Sh CLEAN RELEASE GENERATION
97ebe27856SGlen BarberOfficial releases of
98ebe27856SGlen Barber.Fx
99ebe27856SGlen Barberare produced in a totally clean environment to
100e8423d00SNathan Whitehornensure consistency between the versions of the src, ports, and doc trees
101ebe27856SGlen Barberand to avoid contamination from the host system
102ebe27856SGlen Barber.Po such as local patches, changes
103e8423d00SNathan Whitehornto
104e8423d00SNathan Whitehorn.Xr make.conf 5 ,
105ebe27856SGlen Barberetc.
106ebe27856SGlen Barber.Pc .
107ebe27856SGlen BarberThis is accomplished using the wrapper script
108ebe27856SGlen Barber.Pa src/release/release.sh .
109e8423d00SNathan Whitehorn.Pp
110ebe27856SGlen Barber.Ic release.sh
111ebe27856SGlen Barber.Op Fl c Ar release.conf
112e8423d00SNathan Whitehorn.Pp
113ebe27856SGlen Barber.Ic release.sh
114ebe27856SGlen Barberchecks out the
115ebe27856SGlen Barber.Li src/ ,
116ebe27856SGlen Barber.Li ports/ ,
117ebe27856SGlen Barberand
118ebe27856SGlen Barber.Li doc/
119ebe27856SGlen Barbertrees to
120ebe27856SGlen Barber.Va CHROOTDIR ,
121ebe27856SGlen Barberthen calls
122ebe27856SGlen Barber.Dq Li "make buildworld"
123ebe27856SGlen Barberand
124e8423d00SNathan Whitehorn.Dq Li "make installworld"
125e8423d00SNathan Whitehornto generate a
126e8423d00SNathan Whitehorn.Xr chroot 8
127ebe27856SGlen Barberenvironment.
128ebe27856SGlen BarberNext,
129e8423d00SNathan Whitehorn.Dq Li "make release"
130ebe27856SGlen Barberis run within the
131e8423d00SNathan Whitehorn.Xr chroot 8
132e8423d00SNathan Whitehornenvironment and places the result in
133ebe27856SGlen Barber.Pa $CHROOTDIR/R .
134e8423d00SNathan Whitehorn.Pp
135ebe27856SGlen BarberThe optional
136ebe27856SGlen Barber.Fa release.conf
137ebe27856SGlen Barberconfiguration file supports the following variables:
138ebe27856SGlen Barber.Bl -tag -width Ev
139ebe27856SGlen Barber.It Va CHROOTDIR
140ebe27856SGlen BarberThe directory within which the release will be built.
141e0436612SGlen Barber.It Va CHROOT_MAKEENV
142e0436612SGlen BarberAdditional
143e0436612SGlen Barber.Xr make 1
144e0436612SGlen Barberarguments to pass through, which directly affect the
145e0436612SGlen Barbertuning of the build chroot.
146ebe27856SGlen Barber.It Va SVNROOT
147ebe27856SGlen BarberThe
148ebe27856SGlen Barber.Xr svn 1
149ebe27856SGlen Barberhost used to check out the various trees.
150ebe27856SGlen BarberDefaults to
151ebe27856SGlen Barber.Pa svn://svn.FreeeBSD.org .
152ebe27856SGlen Barber.It Va SRCBRANCH
153ebe27856SGlen BarberThe
154ebe27856SGlen Barber.Li src/
155ebe27856SGlen Barberbranch to use.
156ebe27856SGlen BarberDefaults to
157bda59883SGlen Barber.Va head/@rHEAD .
158ebe27856SGlen Barber.It Va DOCBRANCH
159ebe27856SGlen BarberThe
160ebe27856SGlen Barber.Li doc/
161ebe27856SGlen Barberbranch to use.
162ebe27856SGlen BarberDefaults to
163bda59883SGlen Barber.Va head/@rHEAD .
164ebe27856SGlen Barber.It Va PORTBRANCH
165ebe27856SGlen BarberThe
166ebe27856SGlen Barber.Li ports/
167ebe27856SGlen Barberbranch to use.
168ebe27856SGlen BarberDefaults to
169bda59883SGlen Barber.Va head/@rHEAD .
170ebe27856SGlen Barber.It Va TARGET
171bc1af85cSGlen BarberThe target machine type for cross-building a release.
172ebe27856SGlen Barber.It Va TARGET_ARCH
173bc1af85cSGlen BarberThe target machine architecture for cross-building a release.
174ebe27856SGlen Barber.Pp
175ebe27856SGlen BarberFor the supported list of
176ebe27856SGlen Barber.Va TARGET
177ebe27856SGlen Barberand
178ebe27856SGlen Barber.Va TARGET_ARCH
179ebe27856SGlen Barbercombinations, consult the output of
180ebe27856SGlen Barber.Dq make targets
181ebe27856SGlen Barberas documented in
182ebe27856SGlen Barber.Xr build 7 .
183ebe27856SGlen Barber.It Va KERNEL
184ebe27856SGlen BarberThe target kernel configuration to use.
185ebe27856SGlen BarberDefaults to
186ebe27856SGlen Barber.Va GENERIC .
187ebe27856SGlen BarberMultiple
188ebe27856SGlen Barber.Va KERNEL
189ebe27856SGlen Barberentries may be specified.
190ebe27856SGlen Barber.It Va MAKE_CONF
191ebe27856SGlen BarberThe
192ebe27856SGlen Barber.Xr make.conf 5
193ebe27856SGlen Barberto use for the release build.
194ebe27856SGlen BarberDefaults to
195ebe27856SGlen Barber.Fa /dev/null
196ebe27856SGlen Barberto prevent polluting the release with local system changes.
197ebe27856SGlen Barber.It Va SRC_CONF
198ebe27856SGlen BarberThe
199ebe27856SGlen Barber.Xr src.conf 5
200ebe27856SGlen Barberto use for the release build.
201ebe27856SGlen BarberDefaults to
202ebe27856SGlen Barber.Fa /dev/null
203ebe27856SGlen Barberto prevent polluting the release with local system changes.
204ebe27856SGlen Barber.It Va MAKE_FLAGS
205ebe27856SGlen BarberAdditional flags to pass to
206ebe27856SGlen Barber.Xr make 1 .
207ebe27856SGlen Barber.It Va WORLD_FLAGS
208ebe27856SGlen BarberAdditional flags to pass to
209e8423d00SNathan Whitehorn.Xr make 1
210ebe27856SGlen Barberduring the
211ebe27856SGlen Barber.Dq buildworld
212ebe27856SGlen Barberphase.
213ebe27856SGlen BarberDefaults to setting the number of
214de17cbccSHiroki Sato.Xr make 1
215ebe27856SGlen Barberjobs
216ebe27856SGlen Barber.Pq Ar -j
217bc1af85cSGlen Barberto the number of CPUs available on a SMP-capable system.
218ebe27856SGlen Barber.It Va KERNEL_FLAGS
219ebe27856SGlen BarberAdditional flags to pass to
220ebe27856SGlen Barber.Xr make 1
221ebe27856SGlen Barberduring the
222ebe27856SGlen Barber.Dq buildkernel
223ebe27856SGlen Barberphase.
224ebe27856SGlen BarberDefaults to setting the number of
225ebe27856SGlen Barber.Xr make 1
226ebe27856SGlen Barberjobs
227ebe27856SGlen Barber.Pq Ar -j
228bc1af85cSGlen Barberto half the number of CPUs available on a SMP-capable system.
229ebe27856SGlen Barber.It Va NODOC
230ebe27856SGlen BarberSet to a non-empty value to skip the
231ebe27856SGlen Barber.Li doc/
232ebe27856SGlen Barbertree checkout.
233ebe27856SGlen BarberWhen set,
234ebe27856SGlen Barber.Va NODOC
235ebe27856SGlen Barberwill prevent the
236ebe27856SGlen Barber.Fa doc.txz
237ebe27856SGlen Barberdistribution package from being created.
238ebe27856SGlen Barber.It Va NOPORTS
239ebe27856SGlen BarberSet to a non-empty value to skip the
240ebe27856SGlen Barber.Li ports/
241ebe27856SGlen Barbertree checkout.
242ebe27856SGlen BarberWhen set,
243ebe27856SGlen Barber.Va NOPORTS
244ebe27856SGlen Barberwill prevent the
245ebe27856SGlen Barber.Fa ports.txz
246ebe27856SGlen Barberdistribution package from being created.
247ebe27856SGlen BarberSetting this also sets
248ebe27856SGlen Barber.Va NODOC .
249f7f650c7SGlen Barber.It Va WITH_DVD
250f7f650c7SGlen BarberSet to a non-empty value to include the
251f7f650c7SGlen Barber.Cm dvdrom
252f7f650c7SGlen Barbertarget.
253*cbc0e08aSGlen Barber.It Va WITH_COMPRESSED_IMAGES
254*cbc0e08aSGlen BarberSet to a non-empty value to compress the release images with
255*cbc0e08aSGlen Barber.Xr gzip 1 .
256*cbc0e08aSGlen BarberThe original
257*cbc0e08aSGlen Barber.Pq uncompressed
258*cbc0e08aSGlen Barberimages are not removed.
2599bb84a63SGlen Barber.It Va VCSCMD
2609bb84a63SGlen BarberThe command run to obtain the source trees.
2619bb84a63SGlen BarberDefaults to
2629bb84a63SGlen Barber.Qq Cm svn checkout .
263e0436612SGlen Barber.It Va CHROOTBUILD_SKIP
264e0436612SGlen BarberIf defined, the
265e0436612SGlen Barber.Li buildworld ,
266e0436612SGlen Barber.Li installworld ,
267e0436612SGlen Barberand
268e0436612SGlen Barber.Li distribution
269e0436612SGlen Barberstages of the
270e0436612SGlen Barber.Xr chroot 8
271e0436612SGlen Barberbuild environment setup are skipped.
272e0436612SGlen BarberThis is intended solely for cases where the
273e0436612SGlen Barber.Xr chroot 8
274e0436612SGlen Barberuserland are provided by alternate means.
275e0436612SGlen Barber.El
276e0436612SGlen Barber.Sh EMBEDDED BUILDS
277e0436612SGlen BarberThe following
278e0436612SGlen Barber.Fa release.conf
279e0436612SGlen Barbervariables are relevant only to release builds for embedded systems:
280e0436612SGlen Barber.Bl -tag -width Ev
281e0436612SGlen Barber.It Va EMBEDDEDBUILD
282e0436612SGlen BarberSet to a non-null value to enable functionality for embedded device
283e0436612SGlen Barberrelease builds.
284e0436612SGlen Barber.Pq This option is considered highly experimental.
285e0436612SGlen Barber.Pp
286e0436612SGlen BarberWhen set,
287e0436612SGlen Barber.Va WITH_DVD
288e0436612SGlen Barberis unset, and
289e0436612SGlen Barber.Va NODOC
290e0436612SGlen Barberis defined.
291e0436612SGlen BarberAdditionally,
292e0436612SGlen Barber.Va XDEV
293e0436612SGlen Barberand
294e0436612SGlen Barber.Va XDEV_ARCH
295e0436612SGlen Barbermust also be defined.
296e0436612SGlen BarberWhen the build environment is created,
297e0436612SGlen Barber.Fa release.sh
298e0436612SGlen Barberruns a separate build script located in an architecture-specific
299e0436612SGlen Barberdirectory in
300e0436612SGlen Barber.Pa src/release/${XDEV}/ .
301e0436612SGlen Barber.It Va EMBEDDEDPORTS
302e0436612SGlen BarberSet to the list of any ports that are required for the target device
303e0436612SGlen Barberin the format of
304e0436612SGlen Barber.Fa category/port .
305e0436612SGlen BarberThe
306e0436612SGlen Barber.Fa devel/subversion
307e0436612SGlen Barberport is built by default.
308e0436612SGlen Barber.It Va CROCHETSRC
309e0436612SGlen BarberSet to the source URL for the Crochet build tool.
310e0436612SGlen Barber.It Va CROCHETBRANCH
311e0436612SGlen BarberSet to the subversion branch from
312e0436612SGlen Barber.Va ${CROCHETSRC}
313e0436612SGlen Barberto use.
314e0436612SGlen BarberDefaults to
315e0436612SGlen Barber.Pa trunk .
316e0436612SGlen Barber.It Va UBOOTSRC
317e0436612SGlen BarberSet to the source URL of u-boot, if required.
318e0436612SGlen Barber.It Va UBOOTBRANCH
319e0436612SGlen BarberSet to the subversion branch from
320e0436612SGlen Barber.Va ${UBOOTSRC}
321e0436612SGlen Barberto use.
322e0436612SGlen BarberDefaults to
323e0436612SGlen Barber.Pa trunk .
324e0436612SGlen Barber.It Va UBOOTDIR
325e0436612SGlen BarberSet to the target directory within
326e0436612SGlen Barber.Va ${CHROOTDIR}
327e0436612SGlen Barberto check out
328e0436612SGlen Barber.Va ${UBOOTSRC}/${UBOOTBRANCH} .
329e8423d00SNathan Whitehorn.El
330e8423d00SNathan Whitehorn.Sh MAKEFILE TARGETS
331de26e0adSMurray StokelyThe release makefile
332994c71f0SMurray Stokely.Pq Pa src/release/Makefile
333de26e0adSMurray Stokelyis fairly abstruse.
334de26e0adSMurray StokelyMost developers will only be concerned with the
335afb33690SMurray Stokely.Cm release
336299a8b95SNathan Whitehornand
337299a8b95SNathan Whitehorn.Cm install
338299a8b95SNathan Whitehorntargets.
339994c71f0SMurray Stokely.\" XXX: Some sort of introduction to this list?  All the others have one.
340e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem"
341afb33690SMurray Stokely.It Cm release
342e8423d00SNathan WhitehornMeta-target to build all release media and distributions applicable to this
343299a8b95SNathan Whitehornplatform.
344299a8b95SNathan Whitehorn.It Cm install
345299a8b95SNathan WhitehornCopy all produced release media to
346299a8b95SNathan Whitehorn.Pa ${DESTDIR} .
347e8423d00SNathan Whitehorn.It Cm cdrom
348de17cbccSHiroki SatoBuilds installation CD-ROM images.
349de17cbccSHiroki SatoThis may require the
350e8423d00SNathan Whitehorn.Xr md 4
351e8423d00SNathan Whitehorn(memory disk) device driver be present in the kernel
352de17cbccSHiroki Sato(either by being compiled in or available as a module).
353de17cbccSHiroki SatoThis target produces files called
354ebe27856SGlen Barber.Pa disc1.iso
355299a8b95SNathan Whitehornand
356299a8b95SNathan Whitehorn.Pa bootonly.iso
357e8423d00SNathan Whitehornas its output.
358d7cfbadbSGlen Barber.It Cm dvdrom
359d7cfbadbSGlen BarberBuilds installation DVD-ROM images.
360d7cfbadbSGlen BarberThis may require the
361d7cfbadbSGlen Barber.Xr md 4
362d7cfbadbSGlen Barber(memory disk) device driver be present in the kernel
363d7cfbadbSGlen Barber(either by being compiled in or available as a module).
364d7cfbadbSGlen BarberThis target produces the
365d7cfbadbSGlen Barber.Pa dvd1.iso
366d7cfbadbSGlen Barberfile as its output.
367e8423d00SNathan Whitehorn.It Cm memstick
368e8423d00SNathan WhitehornBuilds an installation memory stick image named
369ebe27856SGlen Barber.Pa memstick.img .
370de17cbccSHiroki SatoNot applicable on all platforms.
371de17cbccSHiroki SatoRequires that the
372e8423d00SNathan Whitehorn.Xr md 4
373ebe27856SGlen Barber.Pq memory disk
374ebe27856SGlen Barberdevice driver be present in the kernel
375ebe27856SGlen Barber.Pq either by being compiled in or available as a module .
37616fb00c1SGlen Barber.It Cm mini-memstick
37716fb00c1SGlen BarberSimilar to
37816fb00c1SGlen Barber.Cm memstick ,
37916fb00c1SGlen Barberwith the exception that the installation distribution sets
38016fb00c1SGlen Barberare not included.
381e8423d00SNathan Whitehorn.It Cm ftp
382e8423d00SNathan WhitehornCreates a directory named
383e8423d00SNathan Whitehorn.Pa ftp
384e8423d00SNathan Whitehorncontaining the distribution files used in network installations
385e8423d00SNathan Whitehornand suitable for upload to an FTP mirror.
386de26e0adSMurray Stokely.El
387de26e0adSMurray Stokely.Pp
388e8423d00SNathan WhitehornMajor subtargets called by targets above:
389e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem"
390e8423d00SNathan Whitehorn.It Cm packagesystem
391ebe27856SGlen BarberGenerates all the distribution archives
392ebe27856SGlen Barber.Pq base, kernel, ports, doc
393e8423d00SNathan Whitehornapplicable on this platform.
394e8423d00SNathan Whitehorn.It Cm system
395e8423d00SNathan WhitehornBuilds a bootable installation system containing all the distribution files
396e8423d00SNathan Whitehornpackaged by the
397e8423d00SNathan Whitehorn.Cm packagesystem
398e8423d00SNathan Whitehorntarget, and suitable for imaging by the
399d7cfbadbSGlen Barber.Cm cdrom ,
400d7cfbadbSGlen Barber.Cm dvdrom
401e8423d00SNathan Whitehornand
402e8423d00SNathan Whitehorn.Cm memstick
403e8423d00SNathan Whitehorntargets.
404e8423d00SNathan Whitehorn.It Cm reldoc
405994c71f0SMurray StokelyBuilds the release documentation.
406994c71f0SMurray StokelyThis includes the release notes,
407ebe27856SGlen Barberhardware guide, and installation instructions.
408ebe27856SGlen BarberOther documentation, such as the Handbook,
409ebe27856SGlen Barberis built during the
410e8423d00SNathan Whitehorn.Cm base.txz
411e8423d00SNathan Whitehorntarget invoked by
412e8423d00SNathan Whitehorn.Cm packagesystem .
413de26e0adSMurray Stokely.El
414de26e0adSMurray Stokely.Sh ENVIRONMENT
415de26e0adSMurray StokelyOptional variables:
416de17cbccSHiroki Sato.Bl -tag -width ".Ev TARGET_ARCH"
417de17cbccSHiroki Sato.It Ev OSRELEASE
418ebe27856SGlen BarberOptional base name for generated media images
419ebe27856SGlen Barber.Pq e.g., FreeBSD-9.0-RC2-amd64 .
420de17cbccSHiroki SatoDefaults to the output of
421de17cbccSHiroki Sato.Ic `uname -s`-`uname -r`-`uname -p`
422de17cbccSHiroki Satowithin the chroot.
423de17cbccSHiroki Sato.It Ev WORLDDIR
424ebe27856SGlen BarberLocation of a directory containing the src tree.
425ebe27856SGlen BarberBy default, the directory
426e8423d00SNathan Whitehornabove the one containing the makefile
427e8423d00SNathan Whitehorn.Pq Pa src .
428de17cbccSHiroki Sato.It Ev PORTSDIR
429ebe27856SGlen BarberLocation of a directory containing the ports tree.
430ebe27856SGlen BarberBy default,
431e8423d00SNathan Whitehorn.Pa /usr/ports .
432e8423d00SNathan WhitehornIf it is unset or cannot be found, ports will not be included in the release.
433de17cbccSHiroki Sato.It Ev DOCDIR
434ebe27856SGlen BarberLocation of a directory containing the doc tree.
435ebe27856SGlen BarberBy default,
436e8423d00SNathan Whitehorn.Pa /usr/doc .
437e8423d00SNathan WhitehornIf it is unset or cannot be found, most documentation will not be included in
438e8423d00SNathan Whitehornthe release; see
439e8423d00SNathan Whitehorn.Ev NODOC
440e8423d00SNathan Whitehornbelow.
441de17cbccSHiroki Sato.It Ev NOPORTS
442e8423d00SNathan WhitehornIf defined, the Ports Collection will be omitted from the release.
443de17cbccSHiroki Sato.It Ev NOSRC
444e8423d00SNathan WhitehornIf set, do not include system source code in the release.
445de17cbccSHiroki Sato.It Ev NODOC
4460cd4fb92SGlen BarberIf defined, the XML-based documentation from the
447de26e0adSMurray Stokely.Fx
448eee69fccSMurray StokelyDocumentation Project will not be built.
449eee69fccSMurray StokelyHowever, the
450eee69fccSMurray Stokely.Dq doc
451eee69fccSMurray Stokelydistribution will still be created with the minimal documentation set
452eee69fccSMurray Stokelyprovided in
453eee69fccSMurray Stokely.Pa src/share/doc .
454de17cbccSHiroki Sato.It Ev TARGET
45525923b97SRuslan ErmilovThe target hardware platform.
45625923b97SRuslan ErmilovThis is analogous to the
45725923b97SRuslan Ermilov.Dq Nm uname Fl m
45825923b97SRuslan Ermilovoutput.
45925923b97SRuslan ErmilovThis is necessary to cross-build some target architectures.
46025923b97SRuslan ErmilovFor example, cross-building for PC98 machines requires
461de17cbccSHiroki Sato.Ev TARGET_ARCH Ns = Ns Li i386
46225923b97SRuslan Ermilovand
463de17cbccSHiroki Sato.Ev TARGET Ns = Ns Li pc98 .
464e8423d00SNathan WhitehornIf not set,
465de17cbccSHiroki Sato.Ev TARGET
466e8423d00SNathan Whitehorndefaults to the current hardware platform.
467de17cbccSHiroki Sato.It Ev TARGET_ARCH
468e8423d00SNathan WhitehornThe target machine processor architecture.
469e8423d00SNathan WhitehornThis is analogous to the
470e8423d00SNathan Whitehorn.Dq Nm uname Fl p
471e8423d00SNathan Whitehornoutput.
472e8423d00SNathan WhitehornSet this to cross-build for a different architecture.
473e8423d00SNathan WhitehornIf not set,
474de17cbccSHiroki Sato.Ev TARGET_ARCH
475e8423d00SNathan Whitehorndefaults to the current machine architecture, unless
476de17cbccSHiroki Sato.Ev TARGET
477e8423d00SNathan Whitehornis also set, in which case it defaults to the appropriate
478e8423d00SNathan Whitehornvalue for that platform.
479e8423d00SNathan WhitehornTypically, one only needs to set
480de17cbccSHiroki Sato.Ev TARGET .
481de26e0adSMurray Stokely.El
482de26e0adSMurray Stokely.Sh FILES
48382f39c10SGlen Barber.Bl -tag -compact -width Pa
484de26e0adSMurray Stokely.It Pa /usr/doc/Makefile
485de26e0adSMurray Stokely.It Pa /usr/doc/share/mk/doc.project.mk
486de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.port.mk
487de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.sites.mk
488de26e0adSMurray Stokely.It Pa /usr/share/examples/etc/make.conf
489de26e0adSMurray Stokely.It Pa /usr/src/Makefile
490de26e0adSMurray Stokely.It Pa /usr/src/Makefile.inc1
491de26e0adSMurray Stokely.It Pa /usr/src/release/Makefile
492ebe27856SGlen Barber.It Pa /usr/src/release/release.sh
493ebe27856SGlen Barber.It Pa /usr/src/release/release.conf.sample
494de26e0adSMurray Stokely.El
495de26e0adSMurray Stokely.Sh EXAMPLES
496e8423d00SNathan WhitehornThe following sequence of commands can be used to build a
497e8423d00SNathan Whitehorn.Dq "-CURRENT snapshot":
498de26e0adSMurray Stokely.Bd -literal -offset indent
499de26e0adSMurray Stokelycd /usr
500e8423d00SNathan Whitehornsvn co svn://svn.freebsd.org/base/head src
501de26e0adSMurray Stokelycd src
502d408a341SNathan Whitehornmake buildworld buildkernel
503de26e0adSMurray Stokelycd release
5048ef63d0dSNathan Whitehornmake release
5058ef63d0dSNathan Whitehornmake install DESTDIR=/var/freebsd-snapshot
506de26e0adSMurray Stokely.Ed
507de26e0adSMurray Stokely.Pp
508299a8b95SNathan WhitehornAfter running these commands, all produced distribution files (tarballs
509299a8b95SNathan Whitehornfor FTP, CD-ROM images, etc.) are available in the
510299a8b95SNathan Whitehorn.Pa /var/freebsd-snapshot
511de26e0adSMurray Stokelydirectory.
512de26e0adSMurray Stokely.Pp
513994c71f0SMurray StokelyThe following sequence of commands can be used to build a
5141bcf2f1aSMurray Stokely.Dq "-CURRENT snapshot"
515e8423d00SNathan Whitehornin a clean environment, including ports and documentation:
516de26e0adSMurray Stokely.Bd -literal -offset indent
5175af5af75SGleb Smirnoffcd /usr/src/release
518ebe27856SGlen Barbersh release.sh
519ebe27856SGlen Barber.Ed
520ebe27856SGlen Barber.Pp
521ebe27856SGlen BarberOptionally, a configuration file can be used customize the release build,
522ebe27856SGlen Barbersuch as the subversion revision to use, the branch of the subversion tree for
523ebe27856SGlen Barber.Li src/ ,
524ebe27856SGlen Barber.Li ports/ ,
525ebe27856SGlen Barberand
526ebe27856SGlen Barber.Li doc/ .
527ebe27856SGlen Barber.Bd -literal -offset indent
528ebe27856SGlen Barbercd /usr/src/release
529ebe27856SGlen Barbersh release.sh -c $HOME/release.conf
530de26e0adSMurray Stokely.Ed
531e8423d00SNathan Whitehorn.Pp
532e8423d00SNathan WhitehornAfter running these commands, all prepared release files are available in the
533ebe27856SGlen Barber.Pa /scratch
534e8423d00SNathan Whitehorndirectory.
535ebe27856SGlen BarberThe target directory can be changed by specifying the
536ebe27856SGlen Barber.Va CHROOTDIR
537ebe27856SGlen Barbervariable in
538ebe27856SGlen Barber.Li release.conf .
539de26e0adSMurray Stokely.Sh SEE ALSO
540de26e0adSMurray Stokely.Xr cc 1 ,
541de26e0adSMurray Stokely.Xr install 1 ,
542de26e0adSMurray Stokely.Xr make 1 ,
543af285c09SGlen Barber.Xr svn 1 Pq Pa ports/devel/subversion ,
544de26e0adSMurray Stokely.Xr uname 1 ,
545afb33690SMurray Stokely.Xr md 4 ,
546de26e0adSMurray Stokely.Xr make.conf 5 ,
547de26e0adSMurray Stokely.Xr build 7 ,
548de26e0adSMurray Stokely.Xr ports 7 ,
549afb33690SMurray Stokely.Xr chroot 8 ,
550f5178c4fSMurray Stokely.Xr mtree 8 ,
551f5178c4fSMurray Stokely.Xr sysctl 8
552994c71f0SMurray Stokely.Rs
5531bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering"
554aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
555994c71f0SMurray Stokely.Re
556994c71f0SMurray Stokely.Rs
5571bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering of Third Party Packages"
558aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/
559994c71f0SMurray Stokely.Re
560994c71f0SMurray Stokely.Rs
5611bcf2f1aSMurray Stokely.%T "FreeBSD Developers' Handbook"
562aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/
563994c71f0SMurray Stokely.Re
564de26e0adSMurray Stokely.Sh HISTORY
565de26e0adSMurray Stokely.Fx
566de26e0adSMurray Stokely1.x
5671bcf2f1aSMurray Stokelyused a manual checklist, compiled by
5681bcf2f1aSMurray Stokely.An Rod Grimes ,
5691bcf2f1aSMurray Stokelyto produce a release.
570de26e0adSMurray StokelyApart from being incomplete, the list put a lot of specific demands on
571de26e0adSMurray Stokelyavailable file systems and was quite torturous to execute.
572de26e0adSMurray Stokely.Pp
573994c71f0SMurray StokelyAs part of the
574994c71f0SMurray Stokely.Fx 2.0
575994c71f0SMurray Stokelyrelease engineering effort, significant
576de26e0adSMurray Stokelyeffort was spent getting
577de26e0adSMurray Stokely.Pa src/release/Makefile
578de26e0adSMurray Stokelyinto a shape where it could at least automate most of the tediousness
579de26e0adSMurray Stokelyof building a release in a sterile environment.
580de26e0adSMurray Stokely.Pp
581e8423d00SNathan WhitehornFor the
582e8423d00SNathan Whitehorn.Fx 9.0
583e8423d00SNathan Whitehornrelease,
584e8423d00SNathan Whitehorn.Pa src/release/Makefile
585e8423d00SNathan Whitehornwas overhauled and the wrapper script
586e8423d00SNathan Whitehorn.Pa src/release/generate-release.sh
587e8423d00SNathan Whitehornintroduced to support the introduction of a new installer.
588e8423d00SNathan Whitehorn.Pp
589ebe27856SGlen BarberFor the
590ebe27856SGlen Barber.Fx 9.2
591ebe27856SGlen Barberrelease,
592ebe27856SGlen Barber.Pa src/release/release.sh
593ebe27856SGlen Barberwas introduced to support per-build configuration files.
594ebe27856SGlen Barber.Pa src/release/release.sh
595ebe27856SGlen Barberis heavily based on the
596ebe27856SGlen Barber.Pa src/release/generate-release.sh
597ebe27856SGlen Barberscript.
598ebe27856SGlen Barber.Pp
599594ca9baSTom RhodesAt near 1000 revisions spread over multiple branches, the
6000cd4fb92SGlen Barber.Xr svn 1
601994c71f0SMurray Stokelylog of
602994c71f0SMurray Stokely.Pa src/release/Makefile
603994c71f0SMurray Stokelycontains a vivid historical record of some
604de26e0adSMurray Stokelyof the hardships release engineers go through.
605de26e0adSMurray Stokely.Sh AUTHORS
606de26e0adSMurray Stokely.Pa src/release/Makefile
607afb33690SMurray Stokelywas originally written by
608afb33690SMurray Stokely.An -nosplit
609afb33690SMurray Stokely.An Rod Grimes ,
610afb33690SMurray Stokely.An Jordan Hubbard ,
611afb33690SMurray Stokelyand
612afb33690SMurray Stokely.An Poul-Henning Kamp .
613ebe27856SGlen Barber.Pp
614ebe27856SGlen BarberThis manual page was originally written by
615de26e0adSMurray Stokely.An Murray Stokely Aq murray@FreeBSD.org .
616ebe27856SGlen Barber.Pp
617ebe27856SGlen BarberIt was updated by
618ebe27856SGlen Barber.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org
619ebe27856SGlen Barberto include the
620ebe27856SGlen Barber.Fa generate-release.sh
621ebe27856SGlen Barberscript used for the
622ebe27856SGlen Barber.Fx 9.0
623ebe27856SGlen Barberrelease cycle.
624ebe27856SGlen Barber.Pp
625ebe27856SGlen BarberIt was later updated by
626ebe27856SGlen Barber.An Glen Barber Aq gjb@FreeBSD.org
627ebe27856SGlen Barberto include the
628ebe27856SGlen Barber.Fa release.sh
629ebe27856SGlen Barberscript used for the
630ebe27856SGlen Barber.Fx 9.2
631ebe27856SGlen Barberrelease cycle.
632