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