summaryrefslogtreecommitdiff
path: root/static/freebsd/man7/release.7 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man7/release.7 3.html')
-rw-r--r--static/freebsd/man7/release.7 3.html562
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> &#x2014; <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
- &#x201C;<code class="Li">make release</code>&#x201D;.</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 &#x201C;<code class="Li">make
- release</code>&#x201D; 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
- &#x201C;<code class="Li">make buildworld</code>&#x201D; and
- &#x201C;<code class="Li">make buildkernel</code>&#x201D;. 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 &#x201C;<code class="Li">make buildworld</code>&#x201D; and
- &#x201C;<code class="Li">make installworld</code>&#x201D; to generate a
- <a class="Xr">chroot(8)</a> environment. Next, &#x201C;<code class="Li">make
- release</code>&#x201D; 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
- &#x201C;make targets&#x201D; 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
- &#x201C;buildworld&#x201D; 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
- &#x201C;buildkernel&#x201D; 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
- &quot;<code class="Cm">git clone</code>
- <code class="Fl">-q</code>&quot;.</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 &quot;CLOUD HOSTING MACHINE IMAGES&quot; 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
- &#x201C;<code class="Nm">uname</code> <code class="Fl">-m</code>&#x201D;
- 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
- &#x201C;<code class="Nm">uname</code> <code class="Fl">-p</code>&#x201D;
- 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;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/doc/Makefile</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/doc/share/mk/doc.project.mk</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/ports/Mk/bsd.port.mk</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/ports/Mk/bsd.sites.mk</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/share/examples/etc/make.conf</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/Makefile</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/Makefile.inc1</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/Makefile</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/Makefile.vm</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/release.sh</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/release.conf.sample</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/tools/*.conf</span></dt>
- <dd style="width: auto;">&#x00A0;</dd>
- <dt><span class="Pa">/usr/src/release/tools/vmimage.subr</span></dt>
- <dd style="width: auto;">&#x00A0;</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
- &#x201C;-CURRENT snapshot&#x201D;:</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
- &#x201C;-CURRENT snapshot&#x201D; 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>
- &lt;<a class="Mt" href="mailto:murray@FreeBSD.org">murray@FreeBSD.org</a>&gt;.</p>
-<p class="Pp">It was updated by <span class="An">Nathan Whitehorn</span>
- &lt;<a class="Mt" href="mailto:nwhitehorn@FreeBSD.org">nwhitehorn@FreeBSD.org</a>&gt;
- 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>
- &lt;<a class="Mt" href="mailto:gjb@FreeBSD.org">gjb@FreeBSD.org</a>&gt; 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>