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.\" 27*f7f650c7SGlen Barber.Dd December 2, 2013 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. 141ebe27856SGlen Barber.It Va SVNROOT 142ebe27856SGlen BarberThe 143ebe27856SGlen Barber.Xr svn 1 144ebe27856SGlen Barberhost used to check out the various trees. 145ebe27856SGlen BarberDefaults to 146ebe27856SGlen Barber.Pa svn://svn.FreeeBSD.org . 147ebe27856SGlen Barber.It Va SRCBRANCH 148ebe27856SGlen BarberThe 149ebe27856SGlen Barber.Li src/ 150ebe27856SGlen Barberbranch to use. 151ebe27856SGlen BarberDefaults to 152bda59883SGlen Barber.Va head/@rHEAD . 153ebe27856SGlen Barber.It Va DOCBRANCH 154ebe27856SGlen BarberThe 155ebe27856SGlen Barber.Li doc/ 156ebe27856SGlen Barberbranch to use. 157ebe27856SGlen BarberDefaults to 158bda59883SGlen Barber.Va head/@rHEAD . 159ebe27856SGlen Barber.It Va PORTBRANCH 160ebe27856SGlen BarberThe 161ebe27856SGlen Barber.Li ports/ 162ebe27856SGlen Barberbranch to use. 163ebe27856SGlen BarberDefaults to 164bda59883SGlen Barber.Va head/@rHEAD . 165ebe27856SGlen Barber.It Va TARGET 166bc1af85cSGlen BarberThe target machine type for cross-building a release. 167ebe27856SGlen Barber.It Va TARGET_ARCH 168bc1af85cSGlen BarberThe target machine architecture for cross-building a release. 169ebe27856SGlen Barber.Pp 170ebe27856SGlen BarberFor the supported list of 171ebe27856SGlen Barber.Va TARGET 172ebe27856SGlen Barberand 173ebe27856SGlen Barber.Va TARGET_ARCH 174ebe27856SGlen Barbercombinations, consult the output of 175ebe27856SGlen Barber.Dq make targets 176ebe27856SGlen Barberas documented in 177ebe27856SGlen Barber.Xr build 7 . 178ebe27856SGlen Barber.It Va KERNEL 179ebe27856SGlen BarberThe target kernel configuration to use. 180ebe27856SGlen BarberDefaults to 181ebe27856SGlen Barber.Va GENERIC . 182ebe27856SGlen BarberMultiple 183ebe27856SGlen Barber.Va KERNEL 184ebe27856SGlen Barberentries may be specified. 185ebe27856SGlen Barber.It Va MAKE_CONF 186ebe27856SGlen BarberThe 187ebe27856SGlen Barber.Xr make.conf 5 188ebe27856SGlen Barberto use for the release build. 189ebe27856SGlen BarberDefaults to 190ebe27856SGlen Barber.Fa /dev/null 191ebe27856SGlen Barberto prevent polluting the release with local system changes. 192ebe27856SGlen Barber.It Va SRC_CONF 193ebe27856SGlen BarberThe 194ebe27856SGlen Barber.Xr src.conf 5 195ebe27856SGlen Barberto use for the release build. 196ebe27856SGlen BarberDefaults to 197ebe27856SGlen Barber.Fa /dev/null 198ebe27856SGlen Barberto prevent polluting the release with local system changes. 199ebe27856SGlen Barber.It Va MAKE_FLAGS 200ebe27856SGlen BarberAdditional flags to pass to 201ebe27856SGlen Barber.Xr make 1 . 202ebe27856SGlen Barber.It Va WORLD_FLAGS 203ebe27856SGlen BarberAdditional flags to pass to 204e8423d00SNathan Whitehorn.Xr make 1 205ebe27856SGlen Barberduring the 206ebe27856SGlen Barber.Dq buildworld 207ebe27856SGlen Barberphase. 208ebe27856SGlen BarberDefaults to setting the number of 209de17cbccSHiroki Sato.Xr make 1 210ebe27856SGlen Barberjobs 211ebe27856SGlen Barber.Pq Ar -j 212bc1af85cSGlen Barberto the number of CPUs available on a SMP-capable system. 213ebe27856SGlen Barber.It Va KERNEL_FLAGS 214ebe27856SGlen BarberAdditional flags to pass to 215ebe27856SGlen Barber.Xr make 1 216ebe27856SGlen Barberduring the 217ebe27856SGlen Barber.Dq buildkernel 218ebe27856SGlen Barberphase. 219ebe27856SGlen BarberDefaults to setting the number of 220ebe27856SGlen Barber.Xr make 1 221ebe27856SGlen Barberjobs 222ebe27856SGlen Barber.Pq Ar -j 223bc1af85cSGlen Barberto half the number of CPUs available on a SMP-capable system. 224ebe27856SGlen Barber.It Va NODOC 225ebe27856SGlen BarberSet to a non-empty value to skip the 226ebe27856SGlen Barber.Li doc/ 227ebe27856SGlen Barbertree checkout. 228ebe27856SGlen BarberWhen set, 229ebe27856SGlen Barber.Va NODOC 230ebe27856SGlen Barberwill prevent the 231ebe27856SGlen Barber.Fa doc.txz 232ebe27856SGlen Barberdistribution package from being created. 233ebe27856SGlen Barber.It Va NOPORTS 234ebe27856SGlen BarberSet to a non-empty value to skip the 235ebe27856SGlen Barber.Li ports/ 236ebe27856SGlen Barbertree checkout. 237ebe27856SGlen BarberWhen set, 238ebe27856SGlen Barber.Va NOPORTS 239ebe27856SGlen Barberwill prevent the 240ebe27856SGlen Barber.Fa ports.txz 241ebe27856SGlen Barberdistribution package from being created. 242ebe27856SGlen BarberSetting this also sets 243ebe27856SGlen Barber.Va NODOC . 244*f7f650c7SGlen Barber.It Va WITH_DVD 245*f7f650c7SGlen BarberSet to a non-empty value to include the 246*f7f650c7SGlen Barber.Cm dvdrom 247*f7f650c7SGlen Barbertarget. 248e8423d00SNathan Whitehorn.El 249e8423d00SNathan Whitehorn.Sh MAKEFILE TARGETS 250de26e0adSMurray StokelyThe release makefile 251994c71f0SMurray Stokely.Pq Pa src/release/Makefile 252de26e0adSMurray Stokelyis fairly abstruse. 253de26e0adSMurray StokelyMost developers will only be concerned with the 254afb33690SMurray Stokely.Cm release 255299a8b95SNathan Whitehornand 256299a8b95SNathan Whitehorn.Cm install 257299a8b95SNathan Whitehorntargets. 258994c71f0SMurray Stokely.\" XXX: Some sort of introduction to this list? All the others have one. 259e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem" 260afb33690SMurray Stokely.It Cm release 261e8423d00SNathan WhitehornMeta-target to build all release media and distributions applicable to this 262299a8b95SNathan Whitehornplatform. 263299a8b95SNathan Whitehorn.It Cm install 264299a8b95SNathan WhitehornCopy all produced release media to 265299a8b95SNathan Whitehorn.Pa ${DESTDIR} . 266e8423d00SNathan Whitehorn.It Cm cdrom 267de17cbccSHiroki SatoBuilds installation CD-ROM images. 268de17cbccSHiroki SatoThis may require the 269e8423d00SNathan Whitehorn.Xr md 4 270e8423d00SNathan Whitehorn(memory disk) device driver be present in the kernel 271de17cbccSHiroki Sato(either by being compiled in or available as a module). 272de17cbccSHiroki SatoThis target produces files called 273ebe27856SGlen Barber.Pa disc1.iso 274299a8b95SNathan Whitehornand 275299a8b95SNathan Whitehorn.Pa bootonly.iso 276e8423d00SNathan Whitehornas its output. 277d7cfbadbSGlen Barber.It Cm dvdrom 278d7cfbadbSGlen BarberBuilds installation DVD-ROM images. 279d7cfbadbSGlen BarberThis may require the 280d7cfbadbSGlen Barber.Xr md 4 281d7cfbadbSGlen Barber(memory disk) device driver be present in the kernel 282d7cfbadbSGlen Barber(either by being compiled in or available as a module). 283d7cfbadbSGlen BarberThis target produces the 284d7cfbadbSGlen Barber.Pa dvd1.iso 285d7cfbadbSGlen Barberfile as its output. 286e8423d00SNathan Whitehorn.It Cm memstick 287e8423d00SNathan WhitehornBuilds an installation memory stick image named 288ebe27856SGlen Barber.Pa memstick.img . 289de17cbccSHiroki SatoNot applicable on all platforms. 290de17cbccSHiroki SatoRequires that the 291e8423d00SNathan Whitehorn.Xr md 4 292ebe27856SGlen Barber.Pq memory disk 293ebe27856SGlen Barberdevice driver be present in the kernel 294ebe27856SGlen Barber.Pq either by being compiled in or available as a module . 29516fb00c1SGlen Barber.It Cm mini-memstick 29616fb00c1SGlen BarberSimilar to 29716fb00c1SGlen Barber.Cm memstick , 29816fb00c1SGlen Barberwith the exception that the installation distribution sets 29916fb00c1SGlen Barberare not included. 300e8423d00SNathan Whitehorn.It Cm ftp 301e8423d00SNathan WhitehornCreates a directory named 302e8423d00SNathan Whitehorn.Pa ftp 303e8423d00SNathan Whitehorncontaining the distribution files used in network installations 304e8423d00SNathan Whitehornand suitable for upload to an FTP mirror. 305de26e0adSMurray Stokely.El 306de26e0adSMurray Stokely.Pp 307e8423d00SNathan WhitehornMajor subtargets called by targets above: 308e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem" 309e8423d00SNathan Whitehorn.It Cm packagesystem 310ebe27856SGlen BarberGenerates all the distribution archives 311ebe27856SGlen Barber.Pq base, kernel, ports, doc 312e8423d00SNathan Whitehornapplicable on this platform. 313e8423d00SNathan Whitehorn.It Cm system 314e8423d00SNathan WhitehornBuilds a bootable installation system containing all the distribution files 315e8423d00SNathan Whitehornpackaged by the 316e8423d00SNathan Whitehorn.Cm packagesystem 317e8423d00SNathan Whitehorntarget, and suitable for imaging by the 318d7cfbadbSGlen Barber.Cm cdrom , 319d7cfbadbSGlen Barber.Cm dvdrom 320e8423d00SNathan Whitehornand 321e8423d00SNathan Whitehorn.Cm memstick 322e8423d00SNathan Whitehorntargets. 323e8423d00SNathan Whitehorn.It Cm reldoc 324994c71f0SMurray StokelyBuilds the release documentation. 325994c71f0SMurray StokelyThis includes the release notes, 326ebe27856SGlen Barberhardware guide, and installation instructions. 327ebe27856SGlen BarberOther documentation, such as the Handbook, 328ebe27856SGlen Barberis built during the 329e8423d00SNathan Whitehorn.Cm base.txz 330e8423d00SNathan Whitehorntarget invoked by 331e8423d00SNathan Whitehorn.Cm packagesystem . 332de26e0adSMurray Stokely.El 333de26e0adSMurray Stokely.Sh ENVIRONMENT 334de26e0adSMurray StokelyOptional variables: 335de17cbccSHiroki Sato.Bl -tag -width ".Ev TARGET_ARCH" 336de17cbccSHiroki Sato.It Ev OSRELEASE 337ebe27856SGlen BarberOptional base name for generated media images 338ebe27856SGlen Barber.Pq e.g., FreeBSD-9.0-RC2-amd64 . 339de17cbccSHiroki SatoDefaults to the output of 340de17cbccSHiroki Sato.Ic `uname -s`-`uname -r`-`uname -p` 341de17cbccSHiroki Satowithin the chroot. 342de17cbccSHiroki Sato.It Ev WORLDDIR 343ebe27856SGlen BarberLocation of a directory containing the src tree. 344ebe27856SGlen BarberBy default, the directory 345e8423d00SNathan Whitehornabove the one containing the makefile 346e8423d00SNathan Whitehorn.Pq Pa src . 347de17cbccSHiroki Sato.It Ev PORTSDIR 348ebe27856SGlen BarberLocation of a directory containing the ports tree. 349ebe27856SGlen BarberBy default, 350e8423d00SNathan Whitehorn.Pa /usr/ports . 351e8423d00SNathan WhitehornIf it is unset or cannot be found, ports will not be included in the release. 352de17cbccSHiroki Sato.It Ev DOCDIR 353ebe27856SGlen BarberLocation of a directory containing the doc tree. 354ebe27856SGlen BarberBy default, 355e8423d00SNathan Whitehorn.Pa /usr/doc . 356e8423d00SNathan WhitehornIf it is unset or cannot be found, most documentation will not be included in 357e8423d00SNathan Whitehornthe release; see 358e8423d00SNathan Whitehorn.Ev NODOC 359e8423d00SNathan Whitehornbelow. 360de17cbccSHiroki Sato.It Ev NOPORTS 361e8423d00SNathan WhitehornIf defined, the Ports Collection will be omitted from the release. 362de17cbccSHiroki Sato.It Ev NOSRC 363e8423d00SNathan WhitehornIf set, do not include system source code in the release. 364de17cbccSHiroki Sato.It Ev NODOC 3650cd4fb92SGlen BarberIf defined, the XML-based documentation from the 366de26e0adSMurray Stokely.Fx 367eee69fccSMurray StokelyDocumentation Project will not be built. 368eee69fccSMurray StokelyHowever, the 369eee69fccSMurray Stokely.Dq doc 370eee69fccSMurray Stokelydistribution will still be created with the minimal documentation set 371eee69fccSMurray Stokelyprovided in 372eee69fccSMurray Stokely.Pa src/share/doc . 373de17cbccSHiroki Sato.It Ev TARGET 37425923b97SRuslan ErmilovThe target hardware platform. 37525923b97SRuslan ErmilovThis is analogous to the 37625923b97SRuslan Ermilov.Dq Nm uname Fl m 37725923b97SRuslan Ermilovoutput. 37825923b97SRuslan ErmilovThis is necessary to cross-build some target architectures. 37925923b97SRuslan ErmilovFor example, cross-building for PC98 machines requires 380de17cbccSHiroki Sato.Ev TARGET_ARCH Ns = Ns Li i386 38125923b97SRuslan Ermilovand 382de17cbccSHiroki Sato.Ev TARGET Ns = Ns Li pc98 . 383e8423d00SNathan WhitehornIf not set, 384de17cbccSHiroki Sato.Ev TARGET 385e8423d00SNathan Whitehorndefaults to the current hardware platform. 386de17cbccSHiroki Sato.It Ev TARGET_ARCH 387e8423d00SNathan WhitehornThe target machine processor architecture. 388e8423d00SNathan WhitehornThis is analogous to the 389e8423d00SNathan Whitehorn.Dq Nm uname Fl p 390e8423d00SNathan Whitehornoutput. 391e8423d00SNathan WhitehornSet this to cross-build for a different architecture. 392e8423d00SNathan WhitehornIf not set, 393de17cbccSHiroki Sato.Ev TARGET_ARCH 394e8423d00SNathan Whitehorndefaults to the current machine architecture, unless 395de17cbccSHiroki Sato.Ev TARGET 396e8423d00SNathan Whitehornis also set, in which case it defaults to the appropriate 397e8423d00SNathan Whitehornvalue for that platform. 398e8423d00SNathan WhitehornTypically, one only needs to set 399de17cbccSHiroki Sato.Ev TARGET . 400de26e0adSMurray Stokely.El 401de26e0adSMurray Stokely.Sh FILES 40282f39c10SGlen Barber.Bl -tag -compact -width Pa 403de26e0adSMurray Stokely.It Pa /usr/doc/Makefile 404de26e0adSMurray Stokely.It Pa /usr/doc/share/mk/doc.project.mk 405de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.port.mk 406de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.sites.mk 407de26e0adSMurray Stokely.It Pa /usr/share/examples/etc/make.conf 408de26e0adSMurray Stokely.It Pa /usr/src/Makefile 409de26e0adSMurray Stokely.It Pa /usr/src/Makefile.inc1 410de26e0adSMurray Stokely.It Pa /usr/src/release/Makefile 411ebe27856SGlen Barber.It Pa /usr/src/release/release.sh 412ebe27856SGlen Barber.It Pa /usr/src/release/release.conf.sample 413de26e0adSMurray Stokely.El 414de26e0adSMurray Stokely.Sh EXAMPLES 415e8423d00SNathan WhitehornThe following sequence of commands can be used to build a 416e8423d00SNathan Whitehorn.Dq "-CURRENT snapshot": 417de26e0adSMurray Stokely.Bd -literal -offset indent 418de26e0adSMurray Stokelycd /usr 419e8423d00SNathan Whitehornsvn co svn://svn.freebsd.org/base/head src 420de26e0adSMurray Stokelycd src 421d408a341SNathan Whitehornmake buildworld buildkernel 422de26e0adSMurray Stokelycd release 4238ef63d0dSNathan Whitehornmake release 4248ef63d0dSNathan Whitehornmake install DESTDIR=/var/freebsd-snapshot 425de26e0adSMurray Stokely.Ed 426de26e0adSMurray Stokely.Pp 427299a8b95SNathan WhitehornAfter running these commands, all produced distribution files (tarballs 428299a8b95SNathan Whitehornfor FTP, CD-ROM images, etc.) are available in the 429299a8b95SNathan Whitehorn.Pa /var/freebsd-snapshot 430de26e0adSMurray Stokelydirectory. 431de26e0adSMurray Stokely.Pp 432994c71f0SMurray StokelyThe following sequence of commands can be used to build a 4331bcf2f1aSMurray Stokely.Dq "-CURRENT snapshot" 434e8423d00SNathan Whitehornin a clean environment, including ports and documentation: 435de26e0adSMurray Stokely.Bd -literal -offset indent 4365af5af75SGleb Smirnoffcd /usr/src/release 437ebe27856SGlen Barbersh release.sh 438ebe27856SGlen Barber.Ed 439ebe27856SGlen Barber.Pp 440ebe27856SGlen BarberOptionally, a configuration file can be used customize the release build, 441ebe27856SGlen Barbersuch as the subversion revision to use, the branch of the subversion tree for 442ebe27856SGlen Barber.Li src/ , 443ebe27856SGlen Barber.Li ports/ , 444ebe27856SGlen Barberand 445ebe27856SGlen Barber.Li doc/ . 446ebe27856SGlen Barber.Bd -literal -offset indent 447ebe27856SGlen Barbercd /usr/src/release 448ebe27856SGlen Barbersh release.sh -c $HOME/release.conf 449de26e0adSMurray Stokely.Ed 450e8423d00SNathan Whitehorn.Pp 451e8423d00SNathan WhitehornAfter running these commands, all prepared release files are available in the 452ebe27856SGlen Barber.Pa /scratch 453e8423d00SNathan Whitehorndirectory. 454ebe27856SGlen BarberThe target directory can be changed by specifying the 455ebe27856SGlen Barber.Va CHROOTDIR 456ebe27856SGlen Barbervariable in 457ebe27856SGlen Barber.Li release.conf . 458de26e0adSMurray Stokely.Sh SEE ALSO 459de26e0adSMurray Stokely.Xr cc 1 , 460de26e0adSMurray Stokely.Xr install 1 , 461de26e0adSMurray Stokely.Xr make 1 , 462af285c09SGlen Barber.Xr svn 1 Pq Pa ports/devel/subversion , 463de26e0adSMurray Stokely.Xr uname 1 , 464afb33690SMurray Stokely.Xr md 4 , 465de26e0adSMurray Stokely.Xr make.conf 5 , 466de26e0adSMurray Stokely.Xr build 7 , 467de26e0adSMurray Stokely.Xr ports 7 , 468afb33690SMurray Stokely.Xr chroot 8 , 469f5178c4fSMurray Stokely.Xr mtree 8 , 470f5178c4fSMurray Stokely.Xr sysctl 8 471994c71f0SMurray Stokely.Rs 4721bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering" 473aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/ 474994c71f0SMurray Stokely.Re 475994c71f0SMurray Stokely.Rs 4761bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering of Third Party Packages" 477aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/ 478994c71f0SMurray Stokely.Re 479994c71f0SMurray Stokely.Rs 4801bcf2f1aSMurray Stokely.%T "FreeBSD Developers' Handbook" 481aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/ 482994c71f0SMurray Stokely.Re 483de26e0adSMurray Stokely.Sh HISTORY 484de26e0adSMurray Stokely.Fx 485de26e0adSMurray Stokely1.x 4861bcf2f1aSMurray Stokelyused a manual checklist, compiled by 4871bcf2f1aSMurray Stokely.An Rod Grimes , 4881bcf2f1aSMurray Stokelyto produce a release. 489de26e0adSMurray StokelyApart from being incomplete, the list put a lot of specific demands on 490de26e0adSMurray Stokelyavailable file systems and was quite torturous to execute. 491de26e0adSMurray Stokely.Pp 492994c71f0SMurray StokelyAs part of the 493994c71f0SMurray Stokely.Fx 2.0 494994c71f0SMurray Stokelyrelease engineering effort, significant 495de26e0adSMurray Stokelyeffort was spent getting 496de26e0adSMurray Stokely.Pa src/release/Makefile 497de26e0adSMurray Stokelyinto a shape where it could at least automate most of the tediousness 498de26e0adSMurray Stokelyof building a release in a sterile environment. 499de26e0adSMurray Stokely.Pp 500e8423d00SNathan WhitehornFor the 501e8423d00SNathan Whitehorn.Fx 9.0 502e8423d00SNathan Whitehornrelease, 503e8423d00SNathan Whitehorn.Pa src/release/Makefile 504e8423d00SNathan Whitehornwas overhauled and the wrapper script 505e8423d00SNathan Whitehorn.Pa src/release/generate-release.sh 506e8423d00SNathan Whitehornintroduced to support the introduction of a new installer. 507e8423d00SNathan Whitehorn.Pp 508ebe27856SGlen BarberFor the 509ebe27856SGlen Barber.Fx 9.2 510ebe27856SGlen Barberrelease, 511ebe27856SGlen Barber.Pa src/release/release.sh 512ebe27856SGlen Barberwas introduced to support per-build configuration files. 513ebe27856SGlen Barber.Pa src/release/release.sh 514ebe27856SGlen Barberis heavily based on the 515ebe27856SGlen Barber.Pa src/release/generate-release.sh 516ebe27856SGlen Barberscript. 517ebe27856SGlen Barber.Pp 518594ca9baSTom RhodesAt near 1000 revisions spread over multiple branches, the 5190cd4fb92SGlen Barber.Xr svn 1 520994c71f0SMurray Stokelylog of 521994c71f0SMurray Stokely.Pa src/release/Makefile 522994c71f0SMurray Stokelycontains a vivid historical record of some 523de26e0adSMurray Stokelyof the hardships release engineers go through. 524de26e0adSMurray Stokely.Sh AUTHORS 525de26e0adSMurray Stokely.Pa src/release/Makefile 526afb33690SMurray Stokelywas originally written by 527afb33690SMurray Stokely.An -nosplit 528afb33690SMurray Stokely.An Rod Grimes , 529afb33690SMurray Stokely.An Jordan Hubbard , 530afb33690SMurray Stokelyand 531afb33690SMurray Stokely.An Poul-Henning Kamp . 532ebe27856SGlen Barber.Pp 533ebe27856SGlen BarberThis manual page was originally written by 534de26e0adSMurray Stokely.An Murray Stokely Aq murray@FreeBSD.org . 535ebe27856SGlen Barber.Pp 536ebe27856SGlen BarberIt was updated by 537ebe27856SGlen Barber.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org 538ebe27856SGlen Barberto include the 539ebe27856SGlen Barber.Fa generate-release.sh 540ebe27856SGlen Barberscript used for the 541ebe27856SGlen Barber.Fx 9.0 542ebe27856SGlen Barberrelease cycle. 543ebe27856SGlen Barber.Pp 544ebe27856SGlen BarberIt was later updated by 545ebe27856SGlen Barber.An Glen Barber Aq gjb@FreeBSD.org 546ebe27856SGlen Barberto include the 547ebe27856SGlen Barber.Fa release.sh 548ebe27856SGlen Barberscript used for the 549ebe27856SGlen Barber.Fx 9.2 550ebe27856SGlen Barberrelease cycle. 551