diff options
Diffstat (limited to 'static/freebsd/man7/release.7 3.html')
| -rw-r--r-- | static/freebsd/man7/release.7 3.html | 562 |
1 files changed, 0 insertions, 562 deletions
diff --git a/static/freebsd/man7/release.7 3.html b/static/freebsd/man7/release.7 3.html deleted file mode 100644 index ce187867..00000000 --- a/static/freebsd/man7/release.7 3.html +++ /dev/null @@ -1,562 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">RELEASE(7)</td> - <td class="head-vol">Miscellaneous Information Manual</td> - <td class="head-rtitle">RELEASE(7)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">release</code> — <span class="Nd">release - building infrastructure</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp"><span class="Ux">FreeBSD</span> provides a complete build - environment suitable for users to make full releases of the - <span class="Ux">FreeBSD</span> operating system. All of the tools necessary - to build a release are available from the <span class="Ux">FreeBSD</span> - source code repository in <span class="Pa">src/release</span>. A complete - release can be built with only a single command, including the creation of - ISO images suitable for burning to CD-ROM, memory stick images, and a - network install directory. This command is aptly named - “<code class="Li">make release</code>”.</p> -<p class="Pp">For some users, it may be desirable to provide an absolutely clean - build environment, with no local modifications to the source tree or to - <a class="Xr">make.conf(5)</a>, and with clean checkouts of specific - versions of the doc, src, and ports trees. For this purpose, a script - (<span class="Pa">src/release/release.sh</span>) is provided to automate - these checkouts and then execute “<code class="Li">make - release</code>” in a clean <a class="Xr">chroot(8)</a>.</p> -<p class="Pp">Before attempting to build a release, the user is expected to be - familiar with the contents of <a class="Xr">build(7)</a>, and should have - experience upgrading systems from source.</p> -<p class="Pp">The release build process requires that - <span class="Pa">/usr/obj</span> be populated with the output of - “<code class="Li">make buildworld</code>” and - “<code class="Li">make buildkernel</code>”. This is necessary - to provide the object files for the release or, when using - <span class="Pa">release.sh</span>, so that the object files for a complete - system can be installed into a clean <a class="Xr">chroot(8)</a> - environment.</p> -<p class="Pp">If the target release build is for a different architecture or - machine type, the <var class="Va">TARGET</var> and - <var class="Va">TARGET_ARCH</var> variables must be used. See the supported - <var class="Fa">release.conf</var> variables for more information.</p> -<p class="Pp">The release procedure on some architectures may also require that - the <a class="Xr">md(4)</a> (memory disk) device driver be present in the - kernel (either by being compiled in or available as a module).</p> -<p class="Pp">This document does not cover source code management, quality - assurance, or other aspects of the release engineering process.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="CLEAN_RELEASE_GENERATION"><a class="permalink" href="#CLEAN_RELEASE_GENERATION">CLEAN - RELEASE GENERATION</a></h1> -<p class="Pp">Official releases of <span class="Ux">FreeBSD</span> are produced - in a clean environment to ensure consistency between the versions of the - src, ports, and doc trees and to avoid contamination from the host system - (such as local patches, changes to <a class="Xr">make.conf(5)</a>, etc.). - This is accomplished using the wrapper script - <span class="Pa">src/release/release.sh</span>.</p> -<p class="Pp"><code class="Ic">release.sh</code> [<code class="Fl">-c</code> - <var class="Ar">release.conf</var>]</p> -<p class="Pp"><code class="Ic">release.sh</code> checks out the - <code class="Li">src/</code>, <code class="Li">ports/</code>, and - <code class="Li">doc/</code> trees to <var class="Va">CHROOTDIR</var>, then - calls “<code class="Li">make buildworld</code>” and - “<code class="Li">make installworld</code>” to generate a - <a class="Xr">chroot(8)</a> environment. Next, “<code class="Li">make - release</code>” is run within the <a class="Xr">chroot(8)</a> - environment and places the result in - <span class="Pa">$CHROOTDIR/R</span>.</p> -<p class="Pp">The optional <var class="Fa">release.conf</var> configuration file - supports the following variables:</p> -<dl class="Bl-tag"> - <dt id="CHROOTDIR"><var class="Va">CHROOTDIR</var></dt> - <dd>The directory within which the release will be built. Defaults to - <span class="Pa">/scratch</span>.</dd> - <dt id="CHROOT_MAKEENV"><var class="Va">CHROOT_MAKEENV</var></dt> - <dd>Additional <a class="Xr">make(1)</a> arguments to pass through, which - directly affect the tuning of the build chroot.</dd> - <dt id="NOGIT"><var class="Va">NOGIT</var></dt> - <dd>Do not explicitly require the <a class="Xr">git(1)</a> port to be - installed.</dd> - <dt id="GITROOT"><var class="Va">GITROOT</var></dt> - <dd>The <a class="Xr">git(1)</a> host used to check out the various trees. - Defaults to <span class="Pa">https://git.FreeBSD.org</span>.</dd> - <dt id="SRCBRANCH"><var class="Va">SRCBRANCH</var></dt> - <dd>The <code class="Li">src/</code> branch to use. Defaults to - <code class="Fl">-b</code> <var class="Va">main</var>.</dd> - <dt id="PORTBRANCH"><var class="Va">PORTBRANCH</var></dt> - <dd>The <code class="Li">ports/</code> branch to use. Defaults to - <var class="Va">head/@rHEAD</var>.</dd> - <dt id="TARGET"><var class="Va">TARGET</var></dt> - <dd>The target machine type for cross-building a release.</dd> - <dt id="TARGET_ARCH"><var class="Va">TARGET_ARCH</var></dt> - <dd>The target machine architecture for cross-building a release. - <p class="Pp">For the supported list of <var class="Va">TARGET</var> and - <var class="Va">TARGET_ARCH</var> combinations, consult the output of - “make targets” as documented in - <a class="Xr">build(7)</a>.</p> - </dd> - <dt id="KERNEL"><var class="Va">KERNEL</var></dt> - <dd>The target kernel configuration to use. Defaults to - <var class="Va">GENERIC</var>. Multiple <var class="Va">KERNEL</var> - entries may be specified.</dd> - <dt id="MAKE_CONF"><var class="Va">MAKE_CONF</var></dt> - <dd>The <a class="Xr">make.conf(5)</a> to use for the release build. Defaults - to <var class="Fa">/dev/null</var> to prevent polluting the release with - local system changes.</dd> - <dt id="SRC_CONF"><var class="Va">SRC_CONF</var></dt> - <dd>The <a class="Xr">src.conf(5)</a> to use for the release build. Defaults - to <var class="Fa">/dev/null</var> to prevent polluting the release with - local system changes.</dd> - <dt id="MAKE_FLAGS"><var class="Va">MAKE_FLAGS</var></dt> - <dd>Additional flags to pass to <a class="Xr">make(1)</a>.</dd> - <dt id="WORLD_FLAGS"><var class="Va">WORLD_FLAGS</var></dt> - <dd>Additional flags to pass to <a class="Xr">make(1)</a> during the - “buildworld” phase. Defaults to setting the number of - <a class="Xr">make(1)</a> jobs (<var class="Ar">-j</var>) to the number of - CPUs available on a SMP-capable system.</dd> - <dt id="KERNEL_FLAGS"><var class="Va">KERNEL_FLAGS</var></dt> - <dd>Additional flags to pass to <a class="Xr">make(1)</a> during the - “buildkernel” phase. Defaults to setting the number of - <a class="Xr">make(1)</a> jobs (<var class="Ar">-j</var>) to half the - number of CPUs available on a SMP-capable system.</dd> - <dt id="NOPORTS"><var class="Va">NOPORTS</var></dt> - <dd>Set to a non-empty value to skip the <code class="Li">ports/</code> tree - checkout. When set, <var class="Va">NOPORTS</var> will prevent the - <var class="Fa">ports.txz</var> distribution package from being - created.</dd> - <dt id="WITH_DVD"><var class="Va">WITH_DVD</var></dt> - <dd>Set to a non-empty value to include the <code class="Cm">dvdrom</code> - target.</dd> - <dt id="WITH_COMPRESSED_IMAGES"><var class="Va">WITH_COMPRESSED_IMAGES</var></dt> - <dd>Set to a non-empty value to compress the release images with - <a class="Xr">xz(1)</a>. The original (uncompressed) images are not - removed.</dd> - <dt id="XZ_THREADS"><var class="Va">XZ_THREADS</var> - (<var class="Vt">int</var>)</dt> - <dd>Set to the number of threads <a class="Xr">xz(1)</a> should use when - compressing images. By default, <var class="Va">XZ_THREADS</var> is set to - <var class="Va">0</var>, which uses all available cores on the - system.</dd> - <dt id="VCSCMD"><var class="Va">VCSCMD</var></dt> - <dd>The command run to obtain the source trees. Defaults to - "<code class="Cm">git clone</code> - <code class="Fl">-q</code>".</dd> - <dt id="CHROOTBUILD_SKIP"><var class="Va">CHROOTBUILD_SKIP</var></dt> - <dd>If defined, the <code class="Li">buildworld</code>, - <code class="Li">installworld</code>, and - <code class="Li">distribution</code> stages of the - <a class="Xr">chroot(8)</a> build environment setup are skipped. This is - intended solely for cases where the <a class="Xr">chroot(8)</a> userland - are provided by alternate means.</dd> - <dt id="SRC_UPDATE_SKIP"><var class="Va">SRC_UPDATE_SKIP</var></dt> - <dd>Set to a non-empty value to prevent checkout or update of - <var class="Fa">/usr/src</var> within the <a class="Xr">chroot(8)</a>. - This is intended for use only when <var class="Fa">/usr/src</var> is - expected to exist by alternative means.</dd> - <dt id="PORTS_UPDATE_SKIP"><var class="Va">PORTS_UPDATE_SKIP</var></dt> - <dd>Set to a non-empty value to prevent checkout or update of - <var class="Fa">/usr/ports</var> within the <a class="Xr">chroot(8)</a>. - This is intended for use only when <var class="Fa">/usr/ports</var> is - expected to exist by alternative means.</dd> - <dt id="NOPKGBASE"><var class="Va">NOPKGBASE</var></dt> - <dd>Include legacy tarball distribution sets for use on the install media, - instead of base system packages.</dd> - <dt id="PKG_CMD"><var class="Va">PKG_CMD</var></dt> - <dd>A path to the <a class="Xr">pkg(8)</a> executable to use when installing - packages in release images as a non-root user.</dd> - <dt id="PKG_REPOS_DIR"><var class="Va">PKG_REPOS_DIR</var></dt> - <dd>An optional path to a directory containing <a class="Xr">pkg(8)</a> - repository configuration files. These configuration files will be used - when installing packages in release images as a non-root user.</dd> - <dt id="PKG_REPO_NAME"><var class="Va">PKG_REPO_NAME</var></dt> - <dd>The name of the repository configuration to use when installing packages - in release images as a non-root user.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="EMBEDDED_BUILDS"><a class="permalink" href="#EMBEDDED_BUILDS">EMBEDDED - BUILDS</a></h1> -<p class="Pp">The following <var class="Fa">release.conf</var> variables are - relevant only to release builds for embedded systems:</p> -<dl class="Bl-tag"> - <dt id="EMBEDDEDBUILD"><var class="Va">EMBEDDEDBUILD</var></dt> - <dd>Set to a non-null value to enable functionality for embedded device - release builds. - <p class="Pp">When set, <var class="Va">WITH_DVD</var> is unset. - Additionally, <var class="Va">EMBEDDED_TARGET</var> and - <var class="Va">EMBEDDED_TARGET_ARCH</var> must also be defined. When - the build environment is created, <var class="Fa">release.sh</var> runs - a separate build script located in an architecture-specific directory in - <span class="Pa">src/release/${EMBEDDED_TARGET}/</span>.</p> - </dd> - <dt id="EMBEDDEDPORTS"><var class="Va">EMBEDDEDPORTS</var></dt> - <dd>Set to the list of any ports that are required for the target device in - the format of <var class="Fa">category/port</var>.</dd> - <dt id="EMBEDDED_TARGET"><var class="Va">EMBEDDED_TARGET</var></dt> - <dd>When set, its value is passed to <a class="Xr">make(1)</a> to set the - <var class="Va">TARGET</var> (value of <code class="Cm">uname</code> - <code class="Fl">-m</code>) to cross build the target userland.</dd> - <dt id="EMBEDDED_TARGET_ARCH"><var class="Va">EMBEDDED_TARGET_ARCH</var></dt> - <dd>When set, its value is passed to <a class="Xr">make(1)</a> to set the - <var class="Va">TARGET_ARCH</var> (value of <code class="Cm">uname</code> - <code class="Fl">-p</code>) to cross build the target userland.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="VIRTUAL_MACHINE_DISK_IMAGES"><a class="permalink" href="#VIRTUAL_MACHINE_DISK_IMAGES">VIRTUAL - MACHINE DISK IMAGES</a></h1> -<p class="Pp">The following <var class="Fa">release.conf</var> variables are - relevant only to virtual machine disk image builds:</p> -<dl class="Bl-tag"> - <dt id="WITH_VMIMAGES"><var class="Va">WITH_VMIMAGES</var></dt> - <dd>Set to a non-null value to build virtual machine disk images as part of - the release build. <var class="Va">WITH_VMIMAGES</var> may also be - specified as an environment variable passed to - <a class="Xr">make(1)</a>.</dd> - <dt id="WITH_COMPRESSED_VMIMAGES"><var class="Va">WITH_COMPRESSED_VMIMAGES</var></dt> - <dd>Set to a non-null value to compress the virtual machine disk images with - <a class="Xr">xz(1)</a> as part of the <code class="Cm">install</code> - <a class="Xr">make(1)</a> target. Note that compressing virtual machine - disk images may take a very long time on some systems.</dd> - <dt id="VMBASE"><var class="Va">VMBASE</var></dt> - <dd>Set to change the name of the resulting virtual machine disk image file. - The default value is <var class="Va">vm</var>.</dd> - <dt id="VMSIZE"><var class="Va">VMSIZE</var></dt> - <dd>Set to change the size of the virtual machine disk capacity. The default - value is <var class="Va">20g</var>. See <a class="Xr">makefs(8)</a> for - valid values. - <p class="Pp">Virtual machine disk images are, by default, created as sparse - images. When <var class="Va">WITH_COMPRESSED_VMIMAGES</var> is used, the - resulting files compressed with <a class="Xr">xz(1)</a> compress to - roughly the same size, regardless of the specified disk image size.</p> - </dd> - <dt id="VMFS"><var class="Va">VMFS</var></dt> - <dd>(Deprecated.) Set to specify which of the filesystem(s) listed in - <var class="Va">VMFSLIST</var> is linked to the historical - non-filesystem-labelled file name. Valid values are - <var class="Va">ufs</var> and <var class="Va">zfs</var>. The default value - is <var class="Va">ufs</var>.</dd> - <dt id="VMFSLIST"><var class="Va">VMFSLIST</var></dt> - <dd>Set to specify the list of file system types to build images for. Valid - values are one or both of <var class="Va">ufs</var> and - <var class="Va">zfs</var>. The default value is <var class="Va">ufs - zfs</var>.</dd> - <dt id="VMFORMATS"><var class="Va">VMFORMATS</var></dt> - <dd>Set to the target virtual disk image format(s) to create. By default, the - <var class="Va">vhdf</var>, <var class="Va">vmdk</var>, - <var class="Va">qcow2</var>, and <var class="Va">raw</var> formats are - created. See <a class="Xr">mkimg(1)</a> for valid format values.</dd> -</dl> -<p class="Pp">For a list of supported <var class="Va">VMFORMATS</var> values - (including cloud hosting provider formats) along with a brief description, - run:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr/src -make -C release list-vmtargets</pre> -</div> -</section> -<section class="Sh"> -<h1 class="Sh" id="CLOUD_HOSTING_MACHINE_IMAGES"><a class="permalink" href="#CLOUD_HOSTING_MACHINE_IMAGES">CLOUD - HOSTING MACHINE IMAGES</a></h1> -<p class="Pp">The <span class="Ux">FreeBSD</span> release build tools support - building virtual machine images for various cloud hosting providers, each - with their own specific configuration to include support for each hosting - provider by default.</p> -<p class="Pp">The following <a class="Xr">make(1)</a> environment variables are - supported:</p> -<dl class="Bl-tag"> - <dt id="CLOUDWARE"><var class="Va">CLOUDWARE</var></dt> - <dd>Set to a list of one or more cloud hosting providers, enclosed in quotes. - Requires <var class="Va">WITH_CLOUDWARE</var> to also be set.</dd> - <dt id="WITH_CLOUDWARE"><var class="Va">WITH_CLOUDWARE</var></dt> - <dd>Set to a non-empty value to enable building virtual machine images for - various cloud hosting providers. Requires <var class="Va">CLOUDWARE</var> - to also be set.</dd> -</dl> -<p class="Pp">Additionally, the <var class="Va">CLOUDWARE</var> and - <var class="Va">WITH_CLOUDWARE</var> variables can be added to - <span class="Pa">release.conf</span>, and used in conjunction with - <span class="Pa">release.sh</span>.</p> -<p class="Pp">For a list of supported <var class="Va">CLOUDWARE</var> values, - run:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr/src -make -C release list-cloudware</pre> -</div> -</section> -<section class="Sh"> -<h1 class="Sh" id="OCI_IMAGES"><a class="permalink" href="#OCI_IMAGES">OCI - IMAGES</a></h1> -<p class="Pp">The <span class="Ux">FreeBSD</span> release build tools have - experimental support for building Open Container Initiative (OCI) format - container base images. This is enabled using a - <var class="Fa">release.conf</var> variable:</p> -<dl class="Bl-tag"> - <dt id="WITH_OCIIMAGES"><var class="Va">WITH_OCIIMAGES</var></dt> - <dd>Set to a non-null value to build OCI base images.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="MAKEFILE_TARGETS"><a class="permalink" href="#MAKEFILE_TARGETS">MAKEFILE - TARGETS</a></h1> -<p class="Pp">The release makefile - (<span class="Pa">src/release/Makefile</span>) is fairly abstruse. Most - developers will only be concerned with the <code class="Cm">release</code> - and <code class="Cm">install</code> targets.</p> -<dl class="Bl-tag"> - <dt id="release"><a class="permalink" href="#release"><code class="Cm">release</code></a></dt> - <dd>Meta-target to build all release media and distributions applicable to - this platform.</dd> - <dt id="install"><a class="permalink" href="#install"><code class="Cm">install</code></a></dt> - <dd>Copy all produced release media to - <span class="Pa">${DESTDIR}</span>.</dd> - <dt id="cdrom"><a class="permalink" href="#cdrom"><code class="Cm">cdrom</code></a></dt> - <dd>Builds installation CD-ROM images. This may require the - <a class="Xr">md(4)</a> (memory disk) device driver be present in the - kernel (either by being compiled in or available as a module). This target - produces files called <span class="Pa">disc1.iso</span> and - <span class="Pa">bootonly.iso</span> as its output.</dd> - <dt id="dvdrom"><a class="permalink" href="#dvdrom"><code class="Cm">dvdrom</code></a></dt> - <dd>Builds installation DVD-ROM images. This may require the - <a class="Xr">md(4)</a> (memory disk) device driver be present in the - kernel (either by being compiled in or available as a module). This target - produces the <span class="Pa">dvd1.iso</span> file as its output.</dd> - <dt id="memstick"><a class="permalink" href="#memstick"><code class="Cm">memstick</code></a></dt> - <dd>Builds an installation memory stick image named - <span class="Pa">memstick.img</span>. Not applicable on all platforms. - Requires that the <a class="Xr">md(4)</a> (memory disk) device driver be - present in the kernel (either by being compiled in or available as a - module).</dd> - <dt id="mini-memstick"><a class="permalink" href="#mini-memstick"><code class="Cm">mini-memstick</code></a></dt> - <dd>Similar to <code class="Cm">memstick</code>, with the exception that the - installation distribution sets are not included.</dd> - <dt id="ftp"><a class="permalink" href="#ftp"><code class="Cm">ftp</code></a></dt> - <dd>Creates a directory named <span class="Pa">ftp</span> containing the - distribution files used in network installations and suitable for upload - to an FTP mirror.</dd> - <dt id="vm-image"><a class="permalink" href="#vm-image"><code class="Cm">vm-image</code></a></dt> - <dd>Creates virtual machine disk images in various formats. The - <code class="Cm">vm-image</code> target requires the - <var class="Va">WITH_VMIMAGES</var> <a class="Xr">make(1)</a> environment - variable to be set to a non-null value.</dd> - <dt id="vm-cloudware"><a class="permalink" href="#vm-cloudware"><code class="Cm">vm-cloudware</code></a></dt> - <dd>Builds <span class="Ux">FreeBSD</span> virtual machine images for various - cloud hosting providers. See "CLOUD HOSTING MACHINE IMAGES" for - implementation details.</dd> - <dt id="list-cloudware"><a class="permalink" href="#list-cloudware"><code class="Cm">list-cloudware</code></a></dt> - <dd>Displays the list of valid <var class="Va">CLOUDWARE</var> values.</dd> - <dt id="list-vmtargets"><a class="permalink" href="#list-vmtargets"><code class="Cm">list-vmtargets</code></a></dt> - <dd>Displays the list of valid <var class="Va">VMFORMATS</var> and - <var class="Va">CLOUDWARE</var> values.</dd> -</dl> -<p class="Pp">Major subtargets called by targets above:</p> -<dl class="Bl-tag"> - <dt id="packagesystem"><a class="permalink" href="#packagesystem"><code class="Cm">packagesystem</code></a></dt> - <dd>Generates all the distribution archives (base, kernel, ports, doc) - applicable on this platform.</dd> - <dt id="disc1"><a class="permalink" href="#disc1"><code class="Cm">disc1</code></a></dt> - <dd>Builds a bootable installation system containing all the distribution - files packaged by the <code class="Cm">packagesystem</code> target, and - suitable for imaging by the <code class="Cm">cdrom</code>, - <code class="Cm">dvdrom</code> and <code class="Cm">memstick</code> - targets.</dd> - <dt id="reldoc"><a class="permalink" href="#reldoc"><code class="Cm">reldoc</code></a></dt> - <dd>Builds the release documentation. This includes the release notes, - hardware guide, and installation instructions. Other documentation, such - as the Handbook, is built during the <code class="Cm">base.txz</code> - target invoked by <code class="Cm">packagesystem</code>.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h1> -<p class="Pp">Optional variables:</p> -<dl class="Bl-tag"> - <dt id="OSRELEASE"><a class="permalink" href="#OSRELEASE"><code class="Ev">OSRELEASE</code></a></dt> - <dd>Optional base name for generated media images when invoking the - <code class="Cm">install</code> target (e.g., FreeBSD-12.1-RELEASE-amd64). - Defaults to the output of <code class="Ic">`uname -s`-`uname -r`-`uname - -p`</code> within the chroot.</dd> - <dt id="WORLDDIR"><a class="permalink" href="#WORLDDIR"><code class="Ev">WORLDDIR</code></a></dt> - <dd>Location of a directory containing the src tree. By default, the directory - above the one containing the makefile (<span class="Pa">src</span>).</dd> - <dt id="PORTSDIR"><a class="permalink" href="#PORTSDIR"><code class="Ev">PORTSDIR</code></a></dt> - <dd>Location of a directory containing the ports tree. By default, - <span class="Pa">/usr/ports</span>. If it is unset or cannot be found, - ports will not be included in the release.</dd> - <dt id="NOPORTS~2"><a class="permalink" href="#NOPORTS~2"><code class="Ev">NOPORTS</code></a></dt> - <dd>If defined, the Ports Collection will be omitted from the release.</dd> - <dt id="NOSRC"><a class="permalink" href="#NOSRC"><code class="Ev">NOSRC</code></a></dt> - <dd>If set, do not include system source code in the release.</dd> - <dt id="TARGET~2"><a class="permalink" href="#TARGET~2"><code class="Ev">TARGET</code></a></dt> - <dd>The target hardware platform. This is analogous to the - “<code class="Nm">uname</code> <code class="Fl">-m</code>” - output. This is necessary to cross-build some target architectures. For - example, cross-building for ARM64 machines requires - <code class="Ev">TARGET_ARCH</code>=<code class="Li">aarch64</code> and - <code class="Ev">TARGET</code>=<code class="Li">arm64</code>. If not set, - <code class="Ev">TARGET</code> defaults to the current hardware - platform.</dd> - <dt id="TARGET_ARCH~2"><a class="permalink" href="#TARGET_ARCH~2"><code class="Ev">TARGET_ARCH</code></a></dt> - <dd>The target machine processor architecture. This is analogous to the - “<code class="Nm">uname</code> <code class="Fl">-p</code>” - output. Set this to cross-build for a different architecture. If not set, - <code class="Ev">TARGET_ARCH</code> defaults to the current machine - architecture, unless <code class="Ev">TARGET</code> is also set, in which - case it defaults to the appropriate value for that platform. Typically, - one only needs to set <code class="Ev">TARGET</code>.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> -<dl class="Bl-tag Bl-compact"> - <dt><span class="Pa">/scratch</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/doc/Makefile</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/doc/share/mk/doc.project.mk</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/ports/Mk/bsd.port.mk</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/ports/Mk/bsd.sites.mk</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/share/examples/etc/make.conf</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/Makefile</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/Makefile.inc1</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/Makefile</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/Makefile.vm</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/release.sh</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/release.conf.sample</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/tools/*.conf</span></dt> - <dd style="width: auto;"> </dd> - <dt><span class="Pa">/usr/src/release/tools/vmimage.subr</span></dt> - <dd style="width: auto;"> </dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1> -<p class="Pp">The following sequence of commands can be used to build a - “-CURRENT snapshot”:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr -git clone -b main https://git.freebsd.org/src.git src -cd src -make buildworld buildkernel -cd release -make obj -make release -make install DESTDIR=/var/freebsd-snapshot</pre> -</div> -<p class="Pp">After running these commands, all produced distribution files - (tarballs for FTP, CD-ROM images, etc.) are available in the - <span class="Pa">/var/freebsd-snapshot</span> directory.</p> -<p class="Pp">The following sequence of commands can be used to build a - “-CURRENT snapshot” in a clean environment, including ports - and documentation:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr/src/release -sh release.sh</pre> -</div> -<p class="Pp">Optionally, a configuration file can be used to customize the - release build:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr/src/release -sh release.sh -c $HOME/release.conf</pre> -</div> -<p class="Pp">Configuration files specific to various supported embedded - systems, such as the Raspberry Pi, exist in the directory corresponding to - the <var class="Va">TARGET</var> <a class="Xr">make(1)</a> variable. For - example, to build an image for 64-bit Raspberry Pis:</p> -<div class="Bd Pp Bd-indent Li"> -<pre>cd /usr/src/release -sh release.sh -c arm64/RPI.conf</pre> -</div> -<p class="Pp">After running these commands, all prepared release files are - available in the <span class="Pa">/scratch</span> directory. The target - directory can be changed by specifying the <var class="Va">CHROOTDIR</var> - variable in <code class="Li">release.conf</code>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="COMPATIBILITY"><a class="permalink" href="#COMPATIBILITY">COMPATIBILITY</a></h1> -<p class="Pp">The reldoc target was removed in commit f61e92ca5a23, and - <code class="Ev">DOCDIR</code>, <code class="Ev">DOCBRANCH</code>, - <code class="Ev">DOC_UPDATE_SKIP</code>, and <code class="Ev">NODOC</code> - are therefore no longer supported.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">cc(1)</a>, <a class="Xr">git(1)</a> - (<span class="Pa">ports/devel/git</span>), <a class="Xr">install(1)</a>, - <a class="Xr">make(1)</a>, <a class="Xr">mkimg(1)</a>, - <a class="Xr">uname(1)</a>, <a class="Xr">md(4)</a>, - <a class="Xr">make.conf(5)</a>, <a class="Xr">build(7)</a>, - <a class="Xr">ports(7)</a>, <a class="Xr">chroot(8)</a>, - <a class="Xr">mtree(8)</a>, <a class="Xr">sysctl(8)</a></p> -<p class="Pp"><cite class="Rs"><span class="RsT">FreeBSD Release - Engineering</span>, - <a class="RsU" href="https://docs.freebsd.org/en/articles/freebsd-releng/">https://docs.freebsd.org/en/articles/freebsd-releng/</a>.</cite></p> -<p class="Pp"><cite class="Rs"><span class="RsT">FreeBSD Developers' - Handbook</span>, - <a class="RsU" href="https://docs.freebsd.org/en/books/developers-handbook/">https://docs.freebsd.org/en/books/developers-handbook/</a>.</cite></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp"><span class="Ux">FreeBSD</span> 1.x used a manual checklist, - compiled by <span class="An">Rod Grimes</span>, to produce a release. Apart - from being incomplete, the list put a lot of specific demands on available - file systems and was quite torturous to execute.</p> -<p class="Pp">As part of the <span class="Ux">FreeBSD 2.0</span> release - engineering effort, significant effort was spent getting - <span class="Pa">src/release/Makefile</span> into a shape where it could at - least automate most of the tediousness of building a release in a sterile - environment.</p> -<p class="Pp">For the <span class="Ux">FreeBSD 9.0</span> release, - <span class="Pa">src/release/Makefile</span> was overhauled and the wrapper - script <span class="Pa">src/release/generate-release.sh</span> introduced to - support the introduction of a new installer.</p> -<p class="Pp">For the <span class="Ux">FreeBSD 9.2</span> release, - <span class="Pa">src/release/release.sh</span> was introduced to support - per-build configuration files. - <span class="Pa">src/release/release.sh</span> is heavily based on the - <span class="Pa">src/release/generate-release.sh</span> script.</p> -<p class="Pp">At near 1000 revisions spread over multiple branches, the - <a class="Xr">git(1)</a> log of <span class="Pa">src/release/Makefile</span> - contains a vivid historical record of some of the hardships release - engineers go through.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> -<p class="Pp"><span class="Pa">src/release/Makefile</span> was originally - written by <span class="An">Rod Grimes</span>, <span class="An">Jordan - Hubbard</span>, and <span class="An">Poul-Henning Kamp</span>.</p> -<p class="Pp">This manual page was originally written by <span class="An">Murray - Stokely</span> - <<a class="Mt" href="mailto:murray@FreeBSD.org">murray@FreeBSD.org</a>>.</p> -<p class="Pp">It was updated by <span class="An">Nathan Whitehorn</span> - <<a class="Mt" href="mailto:nwhitehorn@FreeBSD.org">nwhitehorn@FreeBSD.org</a>> - to include the <var class="Fa">generate-release.sh</var> script used for the - <span class="Ux">FreeBSD 9.0</span> release cycle.</p> -<p class="Pp">It was later updated by <span class="An">Glen Barber</span> - <<a class="Mt" href="mailto:gjb@FreeBSD.org">gjb@FreeBSD.org</a>> to - include the <var class="Fa">release.sh</var> script used for the - <span class="Ux">FreeBSD 9.2</span> release cycle.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">October 13, 2025</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
