5. Release from head/

This section describes the general procedures of the FreeBSD release cycle from the head/ branch.

5.1. FreeBSD ALPHA Builds

Starting with the FreeBSD 10.0-RELEASE cycle, the notion of ALPHA builds was introduced. Unlike the BETA and RC builds, ALPHA builds are not included in the FreeBSD Release schedule.

The idea behind ALPHA builds is to provide regular FreeBSD-provided builds before the creation of the stable/ branch.

FreeBSD ALPHA snapshots should be built approximately once a week.

For the first ALPHA build, the BRANCH value in sys/conf/newvers.sh needs to be changed from CURRENT to ALPHA1. For subsequent ALPHA builds, increment each ALPHAN value by one.

See Section 7, “Building FreeBSD Installation Media” for information on building the ALPHA images.

5.2. Creating the stable/12/ Branch

When creating the stable/ branch, several changes are required in both the new stable/ branch and the head/ branch. The files listed are relative to the repository root. To create the new stable/12/ branch in Subversion:

% svn cp ^/head stable/12/

Once the stable/12/ branch has been committed, make the following edits:

File to EditWhat to Change
stable/12/UPDATINGUpdate the FreeBSD version, and remove the notice about WITNESS
stable/12/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
#ifndef MALLOC_PRODUCTION
#define MALLOC_PRODUCTION
#endif
stable/12/lib/clang/llvm.build.mkUncomment -DNDEBUG
stable/12/sys/*/conf/GENERIC*Remove debugging support
stable/12/sys/*/conf/MINIMALRemove debugging support
stable/12/release/release.conf.sampleUpdate SRCBRANCH
stable/12/sys/*/conf/GENERIC-NODEBUGRemove these kernel configurations
stable/12/sys/arm/conf/std.arm*Remove debugging options
stable/12/sys/conf/newvers.shUpdate the BRANCH value to reflect BETA1
stable/12/share/mk/src.opts.mkMove REPRODUCIBLE_BUILD from __DEFAULT_NO_OPTIONS to __DEFAULT_YES_OPTIONS
stable/12/share/mk/src.opts.mkMove LLVM_ASSERTIONS from __DEFAULT_YES_OPTIONS to __DEFAULT_NO_OPTIONS (FreeBSD 13.x and later only)
stable/12/libexec/rc/rc.confSet dumpdev from AUTO to NO (it is configurable via bsdinstall(8) for those that want it enabled by default)
stable/12/release/MakefileRemove the debug.witness.trace entries

Then in the head/ branch, which will now become a new major version:

File to EditWhat to Change
head/UPDATINGUpdate the FreeBSD version
head/sys/conf/newvers.shUpdate the BRANCH value to reflect CURRENT, and increment REVISION
head/Makefile.inc1Update TARGET_TRIPLE and MACHINE_TRIPLE
head/sys/sys/param.hUpdate __FreeBSD_version
head/gnu/usr.bin/cc/cc_tools/freebsd-native.hUpdate FBSD_MAJOR and FBSD_CC_VER
head/contrib/gcc/config.gccAppend the freebsd<version>.h section
head/lib/clang/llvm.build.mkUpdate the value of OS_VERSION
head/lib/clang/freebsd_cc_version.hUpdate FREEBSD_CC_VERSION
head/lib/clang/include/lld/Common/Version.incUpdate LLD_REVISION_STRING
head/Makefile.libcompatUpdate LILB32CPUFLAGS

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.