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*de17cbccSHiroki Sato.Dd February 3, 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 53e8423d00SNathan Whitehorntrees. For this purpose, a script 54e8423d00SNathan Whitehorn.Pq Pa src/release/generate-release.sh 55e8423d00SNathan Whitehornis provided to automate these checkouts and then execute 56e8423d00SNathan Whitehorn.Dq Li "make release" 57e8423d00SNathan Whitehornin a clean 58e8423d00SNathan Whitehorn.Xr chroot 8 . 59e8423d00SNathan Whitehorn.Pp 60de26e0adSMurray StokelyBefore attempting to build a release, the user is expected to be 61994c71f0SMurray Stokelyfamiliar with the contents of 62de26e0adSMurray Stokely.Xr build 7 , 6347280c4bSRuslan Ermilovand should have experience upgrading systems from source. 64e8423d00SNathan Whitehorn.Pp 65de26e0adSMurray StokelyThe release build process requires that 66de26e0adSMurray Stokely.Pa /usr/obj 67de26e0adSMurray Stokelybe populated with the output of 68d408a341SNathan Whitehorn.Dq Li "make buildworld" 69d408a341SNathan Whitehornand 70d408a341SNathan Whitehorn.Dq Li "make buildkernel" . 71e8423d00SNathan WhitehornThis is necessary to provide the object files for the release or, when 72e8423d00SNathan Whitehornusing 73e8423d00SNathan Whitehorn.Pa generate-release.sh , 74e8423d00SNathan Whitehornso that the object files for a complete system can be installed into a clean 75de26e0adSMurray Stokely.Xr chroot 8 76e8423d00SNathan Whitehornenvironment. In this second case, the built world must be capable of running 77e8423d00SNathan Whitehornon the build system (i.e. it must be for the same architecture and be 78e8423d00SNathan Whitehorncompatible with the installed kernel). 79e8423d00SNathan WhitehornThe release procedure on some architectures may also require that the 80994c71f0SMurray Stokely.Xr md 4 81994c71f0SMurray Stokely(memory disk) device driver be present in the kernel 82919b0026SDavid E. O'Brien(either by being compiled in or available as a module). 83de26e0adSMurray Stokely.Pp 84de26e0adSMurray StokelyThis document does not cover source code management, quality 85de26e0adSMurray Stokelyassurance, or other aspects of the release engineering process. 86e8423d00SNathan Whitehorn.Sh CLEAN RELEASE GENERATION 87e8423d00SNathan WhitehornOfficial releases of FreeBSD are produced in a totally clean environment to 88e8423d00SNathan Whitehornensure consistency between the versions of the src, ports, and doc trees 89e8423d00SNathan Whitehornand to avoid contamination from the host system (e.g. local patches, changes 90e8423d00SNathan Whitehornto 91e8423d00SNathan Whitehorn.Xr make.conf 5 , 92e8423d00SNathan Whitehornetc.). This is accomplished using the wrapper script 93e8423d00SNathan Whitehorn.Pa src/release/generate-release.sh . 94e8423d00SNathan Whitehorn.Pp 95e8423d00SNathan Whitehorn.Ic generate-release.sh 96e8423d00SNathan Whitehornsvn-branch scratch-dir 97e8423d00SNathan Whitehorn.Pp 98e8423d00SNathan Whitehorn.Ic generate-release.sh 99e8423d00SNathan Whitehorncalls 100e8423d00SNathan Whitehorn.Dq Li "make installworld" 101e8423d00SNathan Whitehornto generate a 102e8423d00SNathan Whitehorn.Xr chroot 8 103e8423d00SNathan Whitehornenvironment in 104e8423d00SNathan Whitehorn.Ar scratch-dir . 105e8423d00SNathan WhitehornIt then checks out the src tree specified by 106e8423d00SNathan Whitehorn.Ar svn-branch 107e8423d00SNathan Whitehornusing 1080cd4fb92SGlen Barber.Xr svn 1 . 109e8423d00SNathan WhitehornOnce the various source trees have been obtained, it executes 110e8423d00SNathan Whitehorn.Dq Li "make release" 111e8423d00SNathan Whitehornwithin the 112e8423d00SNathan Whitehorn.Xr chroot 8 113e8423d00SNathan Whitehornenvironment and places the result in 114e8423d00SNathan Whitehorn.Pa $scratch-dir/R . 115e8423d00SNathan WhitehornNote that because this uses a chroot, it cannot be used to cross-build 116e8423d00SNathan Whitehorn.Fx 117e8423d00SNathan Whitehornrelease media. 118e8423d00SNathan Whitehorn.Pp 119*de17cbccSHiroki SatoOptional environment variables: 120*de17cbccSHiroki Sato.Bl -tag -width ".Cm WORLD_FLAGS" 121*de17cbccSHiroki Sato.It Ev WORLD_FLAGS 122e8423d00SNathan WhitehornThis environment variable can be set to pass flags (e.g. -j) to 123e8423d00SNathan Whitehorn.Xr make 1 124*de17cbccSHiroki Satowhen invoked to build a world by the script. 125*de17cbccSHiroki Sato.It Ev KERNEL_FLAGS 126*de17cbccSHiroki SatoThis environment variable can be set to pass flags (e.g. -j) to 127*de17cbccSHiroki Sato.Xr make 1 128*de17cbccSHiroki Satowhen invoked to build a kernel by the script. 129*de17cbccSHiroki Sato.It Ev SVNROOTBASE 130*de17cbccSHiroki SatoThe base part of URL of the FreeBSD SVN repositories. 1310cd4fb92SGlen BarberDefaults to 132*de17cbccSHiroki Sato.Pa svn://svn.freebsd.org . 133*de17cbccSHiroki Sato.It Ev SVNROOTSRC 134*de17cbccSHiroki SatoThe URL of the FreeBSD SVN source repository. 135*de17cbccSHiroki SatoDefaults to 136*de17cbccSHiroki Sato.Pa ${SVNROOTBASE}/base . 137*de17cbccSHiroki Sato.It Ev SVNROOTDOC 138*de17cbccSHiroki SatoThe URL of the FreeBSD SVN doc repository. 139*de17cbccSHiroki SatoDefaults to 140*de17cbccSHiroki Sato.Pa ${SVNROOTBASE}/doc . 141*de17cbccSHiroki Sato.It Ev SVNROOTPORTS 142*de17cbccSHiroki SatoThe URL of the FreeBSD SVN ports repository. 143*de17cbccSHiroki SatoDefaults to 144*de17cbccSHiroki Sato.Pa ${SVNROOTBASE}/ports . 145*de17cbccSHiroki Sato.It Ev BRANCHDOC 146*de17cbccSHiroki SatoThe branch name of the FreeBSD SVN doc repository. 147*de17cbccSHiroki SatoDefaults to 148*de17cbccSHiroki Sato.Pa head . 149*de17cbccSHiroki Sato.It Ev BRANCHPORTS 150*de17cbccSHiroki SatoThe branch name of the FreeBSD SVN ports repository. 151*de17cbccSHiroki SatoDefaults to 152*de17cbccSHiroki Sato.Pa head . 153e8423d00SNathan Whitehorn.El 154e8423d00SNathan Whitehorn.Sh MAKEFILE TARGETS 155de26e0adSMurray StokelyThe release makefile 156994c71f0SMurray Stokely.Pq Pa src/release/Makefile 157de26e0adSMurray Stokelyis fairly abstruse. 158de26e0adSMurray StokelyMost developers will only be concerned with the 159afb33690SMurray Stokely.Cm release 160299a8b95SNathan Whitehornand 161299a8b95SNathan Whitehorn.Cm install 162299a8b95SNathan Whitehorntargets. 163994c71f0SMurray Stokely.\" XXX: Some sort of introduction to this list? All the others have one. 164e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem" 165afb33690SMurray Stokely.It Cm release 166e8423d00SNathan WhitehornMeta-target to build all release media and distributions applicable to this 167299a8b95SNathan Whitehornplatform. 168299a8b95SNathan Whitehorn.It Cm install 169299a8b95SNathan WhitehornCopy all produced release media to 170299a8b95SNathan Whitehorn.Pa ${DESTDIR} . 171e8423d00SNathan Whitehorn.It Cm cdrom 172*de17cbccSHiroki SatoBuilds installation CD-ROM images. 173*de17cbccSHiroki SatoThis may require the 174e8423d00SNathan Whitehorn.Xr md 4 175e8423d00SNathan Whitehorn(memory disk) device driver be present in the kernel 176*de17cbccSHiroki Sato(either by being compiled in or available as a module). 177*de17cbccSHiroki SatoThis target produces files called 178e8423d00SNathan Whitehorn.Pa release.iso 179299a8b95SNathan Whitehornand 180299a8b95SNathan Whitehorn.Pa bootonly.iso 181e8423d00SNathan Whitehornas its output. 182e8423d00SNathan Whitehorn.It Cm memstick 183e8423d00SNathan WhitehornBuilds an installation memory stick image named 184e8423d00SNathan Whitehorn.Pa memstick . 185*de17cbccSHiroki SatoNot applicable on all platforms. 186*de17cbccSHiroki SatoRequires that the 187e8423d00SNathan Whitehorn.Xr md 4 188e8423d00SNathan Whitehorn(memory disk) device driver be present in the kernel 189e8423d00SNathan Whitehorn(either by being compiled in or available as a module). 190e8423d00SNathan Whitehorn.It Cm ftp 191e8423d00SNathan WhitehornCreates a directory named 192e8423d00SNathan Whitehorn.Pa ftp 193e8423d00SNathan Whitehorncontaining the distribution files used in network installations 194e8423d00SNathan Whitehornand suitable for upload to an FTP mirror. 195de26e0adSMurray Stokely.El 196de26e0adSMurray Stokely.Pp 197e8423d00SNathan WhitehornMajor subtargets called by targets above: 198e8423d00SNathan Whitehorn.Bl -tag -width ".Cm packagesystem" 199e8423d00SNathan Whitehorn.It Cm packagesystem 200e8423d00SNathan WhitehornGenerates all the distribution archives (e.g. base, kernel, ports, doc) 201e8423d00SNathan Whitehornapplicable on this platform. 202e8423d00SNathan Whitehorn.It Cm system 203e8423d00SNathan WhitehornBuilds a bootable installation system containing all the distribution files 204e8423d00SNathan Whitehornpackaged by the 205e8423d00SNathan Whitehorn.Cm packagesystem 206e8423d00SNathan Whitehorntarget, and suitable for imaging by the 207e8423d00SNathan Whitehorn.Cm cdrom 208e8423d00SNathan Whitehornand 209e8423d00SNathan Whitehorn.Cm memstick 210e8423d00SNathan Whitehorntargets. 211e8423d00SNathan Whitehorn.It Cm reldoc 212994c71f0SMurray StokelyBuilds the release documentation. 213994c71f0SMurray StokelyThis includes the release notes, 214e8423d00SNathan Whitehornhardware guide, and installation instructions. Other documentation (e.g. 215e8423d00SNathan Whitehornthe Handbook) is built during the 216e8423d00SNathan Whitehorn.Cm base.txz 217e8423d00SNathan Whitehorntarget invoked by 218e8423d00SNathan Whitehorn.Cm packagesystem . 219de26e0adSMurray Stokely.El 220de26e0adSMurray Stokely.Sh ENVIRONMENT 221de26e0adSMurray StokelyOptional variables: 222*de17cbccSHiroki Sato.Bl -tag -width ".Ev TARGET_ARCH" 223*de17cbccSHiroki Sato.It Ev OSRELEASE 224*de17cbccSHiroki SatoOptional base name for generated media images (e.g. FreeBSD-9.0-RC2-amd64). 225*de17cbccSHiroki SatoDefaults to the output of 226*de17cbccSHiroki Sato.Ic `uname -s`-`uname -r`-`uname -p` 227*de17cbccSHiroki Satowithin the chroot. 228*de17cbccSHiroki Sato.It Ev WORLDDIR 229e8423d00SNathan WhitehornLocation of a directory containing the src tree. By default, the directory 230e8423d00SNathan Whitehornabove the one containing the makefile 231e8423d00SNathan Whitehorn.Pq Pa src . 232*de17cbccSHiroki Sato.It Ev PORTSDIR 233e8423d00SNathan WhitehornLocation of a directory containing the ports tree. By default, 234e8423d00SNathan Whitehorn.Pa /usr/ports . 235e8423d00SNathan WhitehornIf it is unset or cannot be found, ports will not be included in the release. 236*de17cbccSHiroki Sato.It Ev DOCDIR 237e8423d00SNathan WhitehornLocation of a directory containing the doc tree. By default, 238e8423d00SNathan Whitehorn.Pa /usr/doc . 239e8423d00SNathan WhitehornIf it is unset or cannot be found, most documentation will not be included in 240e8423d00SNathan Whitehornthe release; see 241e8423d00SNathan Whitehorn.Ev NODOC 242e8423d00SNathan Whitehornbelow. 243*de17cbccSHiroki Sato.It Ev NOPORTS 244e8423d00SNathan WhitehornIf defined, the Ports Collection will be omitted from the release. 245*de17cbccSHiroki Sato.It Ev NOSRC 246e8423d00SNathan WhitehornIf set, do not include system source code in the release. 247*de17cbccSHiroki Sato.It Ev NODOC 2480cd4fb92SGlen BarberIf defined, the XML-based documentation from the 249de26e0adSMurray Stokely.Fx 250eee69fccSMurray StokelyDocumentation Project will not be built. 251eee69fccSMurray StokelyHowever, the 252eee69fccSMurray Stokely.Dq doc 253eee69fccSMurray Stokelydistribution will still be created with the minimal documentation set 254eee69fccSMurray Stokelyprovided in 255eee69fccSMurray Stokely.Pa src/share/doc . 256*de17cbccSHiroki Sato.It Ev TARGET 25725923b97SRuslan ErmilovThe target hardware platform. 25825923b97SRuslan ErmilovThis is analogous to the 25925923b97SRuslan Ermilov.Dq Nm uname Fl m 26025923b97SRuslan Ermilovoutput. 26125923b97SRuslan ErmilovThis is necessary to cross-build some target architectures. 26225923b97SRuslan ErmilovFor example, cross-building for PC98 machines requires 263*de17cbccSHiroki Sato.Ev TARGET_ARCH Ns = Ns Li i386 26425923b97SRuslan Ermilovand 265*de17cbccSHiroki Sato.Ev TARGET Ns = Ns Li pc98 . 266e8423d00SNathan WhitehornIf not set, 267*de17cbccSHiroki Sato.Ev TARGET 268e8423d00SNathan Whitehorndefaults to the current hardware platform. 269*de17cbccSHiroki Sato.It Ev TARGET_ARCH 270e8423d00SNathan WhitehornThe target machine processor architecture. 271e8423d00SNathan WhitehornThis is analogous to the 272e8423d00SNathan Whitehorn.Dq Nm uname Fl p 273e8423d00SNathan Whitehornoutput. 274e8423d00SNathan WhitehornSet this to cross-build for a different architecture. 275e8423d00SNathan WhitehornIf not set, 276*de17cbccSHiroki Sato.Ev TARGET_ARCH 277e8423d00SNathan Whitehorndefaults to the current machine architecture, unless 278*de17cbccSHiroki Sato.Ev TARGET 279e8423d00SNathan Whitehornis also set, in which case it defaults to the appropriate 280e8423d00SNathan Whitehornvalue for that platform. 281e8423d00SNathan WhitehornTypically, one only needs to set 282*de17cbccSHiroki Sato.Ev TARGET . 283de26e0adSMurray Stokely.El 284de26e0adSMurray Stokely.Sh FILES 28582f39c10SGlen Barber.Bl -tag -compact -width Pa 286de26e0adSMurray Stokely.It Pa /usr/doc/Makefile 287de26e0adSMurray Stokely.It Pa /usr/doc/share/mk/doc.project.mk 288de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.port.mk 289de26e0adSMurray Stokely.It Pa /usr/ports/Mk/bsd.sites.mk 290de26e0adSMurray Stokely.It Pa /usr/share/examples/etc/make.conf 291de26e0adSMurray Stokely.It Pa /usr/src/Makefile 292de26e0adSMurray Stokely.It Pa /usr/src/Makefile.inc1 293de26e0adSMurray Stokely.It Pa /usr/src/release/Makefile 294e8423d00SNathan Whitehorn.It Pa /usr/src/release/generate-release.sh 295de26e0adSMurray Stokely.El 296de26e0adSMurray Stokely.Sh EXAMPLES 297e8423d00SNathan WhitehornThe following sequence of commands can be used to build a 298e8423d00SNathan Whitehorn.Dq "-CURRENT snapshot": 299de26e0adSMurray Stokely.Bd -literal -offset indent 300de26e0adSMurray Stokelycd /usr 301e8423d00SNathan Whitehornsvn co svn://svn.freebsd.org/base/head src 302de26e0adSMurray Stokelycd src 303d408a341SNathan Whitehornmake buildworld buildkernel 304de26e0adSMurray Stokelycd release 3058ef63d0dSNathan Whitehornmake release 3068ef63d0dSNathan Whitehornmake install DESTDIR=/var/freebsd-snapshot 307de26e0adSMurray Stokely.Ed 308de26e0adSMurray Stokely.Pp 309299a8b95SNathan WhitehornAfter running these commands, all produced distribution files (tarballs 310299a8b95SNathan Whitehornfor FTP, CD-ROM images, etc.) are available in the 311299a8b95SNathan Whitehorn.Pa /var/freebsd-snapshot 312de26e0adSMurray Stokelydirectory. 313de26e0adSMurray Stokely.Pp 314994c71f0SMurray StokelyThe following sequence of commands can be used to build a 3151bcf2f1aSMurray Stokely.Dq "-CURRENT snapshot" 316e8423d00SNathan Whitehornin a clean environment, including ports and documentation: 317de26e0adSMurray Stokely.Bd -literal -offset indent 3185af5af75SGleb Smirnoffcd /usr/src/release 319e8423d00SNathan Whitehornsh generate-release.sh head /local3/release 320de26e0adSMurray Stokely.Ed 321e8423d00SNathan Whitehorn.Pp 322e8423d00SNathan WhitehornAfter running these commands, all prepared release files are available in the 323e8423d00SNathan Whitehorn.Pa /local3/release/R 324e8423d00SNathan Whitehorndirectory. 325de26e0adSMurray Stokely.Sh SEE ALSO 326de26e0adSMurray Stokely.Xr cc 1 , 327de26e0adSMurray Stokely.Xr install 1 , 328de26e0adSMurray Stokely.Xr make 1 , 329af285c09SGlen Barber.Xr svn 1 Pq Pa ports/devel/subversion , 330de26e0adSMurray Stokely.Xr uname 1 , 331afb33690SMurray Stokely.Xr md 4 , 332de26e0adSMurray Stokely.Xr make.conf 5 , 333de26e0adSMurray Stokely.Xr build 7 , 334de26e0adSMurray Stokely.Xr ports 7 , 335afb33690SMurray Stokely.Xr chroot 8 , 336f5178c4fSMurray Stokely.Xr mtree 8 , 337f5178c4fSMurray Stokely.Xr sysctl 8 338994c71f0SMurray Stokely.Rs 3391bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering" 340aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/ 341994c71f0SMurray Stokely.Re 342994c71f0SMurray Stokely.Rs 3431bcf2f1aSMurray Stokely.%T "FreeBSD Release Engineering of Third Party Packages" 344aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/ 345994c71f0SMurray Stokely.Re 346994c71f0SMurray Stokely.Rs 3471bcf2f1aSMurray Stokely.%T "FreeBSD Developers' Handbook" 348aa4a335bSRuslan Ermilov.%U http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/ 349994c71f0SMurray Stokely.Re 350de26e0adSMurray Stokely.Sh HISTORY 351de26e0adSMurray Stokely.Fx 352de26e0adSMurray Stokely1.x 3531bcf2f1aSMurray Stokelyused a manual checklist, compiled by 3541bcf2f1aSMurray Stokely.An Rod Grimes , 3551bcf2f1aSMurray Stokelyto produce a release. 356de26e0adSMurray StokelyApart from being incomplete, the list put a lot of specific demands on 357de26e0adSMurray Stokelyavailable file systems and was quite torturous to execute. 358de26e0adSMurray Stokely.Pp 359994c71f0SMurray StokelyAs part of the 360994c71f0SMurray Stokely.Fx 2.0 361994c71f0SMurray Stokelyrelease engineering effort, significant 362de26e0adSMurray Stokelyeffort was spent getting 363de26e0adSMurray Stokely.Pa src/release/Makefile 364de26e0adSMurray Stokelyinto a shape where it could at least automate most of the tediousness 365de26e0adSMurray Stokelyof building a release in a sterile environment. 366de26e0adSMurray Stokely.Pp 367e8423d00SNathan WhitehornFor the 368e8423d00SNathan Whitehorn.Fx 9.0 369e8423d00SNathan Whitehornrelease, 370e8423d00SNathan Whitehorn.Pa src/release/Makefile 371e8423d00SNathan Whitehornwas overhauled and the wrapper script 372e8423d00SNathan Whitehorn.Pa src/release/generate-release.sh 373e8423d00SNathan Whitehornintroduced to support the introduction of a new installer. 374e8423d00SNathan Whitehorn.Pp 375594ca9baSTom RhodesAt near 1000 revisions spread over multiple branches, the 3760cd4fb92SGlen Barber.Xr svn 1 377994c71f0SMurray Stokelylog of 378994c71f0SMurray Stokely.Pa src/release/Makefile 379994c71f0SMurray Stokelycontains a vivid historical record of some 380de26e0adSMurray Stokelyof the hardships release engineers go through. 381de26e0adSMurray Stokely.Sh AUTHORS 382de26e0adSMurray Stokely.Pa src/release/Makefile 383afb33690SMurray Stokelywas originally written by 384afb33690SMurray Stokely.An -nosplit 385afb33690SMurray Stokely.An Rod Grimes , 386afb33690SMurray Stokely.An Jordan Hubbard , 387afb33690SMurray Stokelyand 388afb33690SMurray Stokely.An Poul-Henning Kamp . 389994c71f0SMurray StokelyThis manual page was written by 390de26e0adSMurray Stokely.An Murray Stokely Aq murray@FreeBSD.org . 391