Download the freebsd-update-server software by installing devel/subversion, and execute:
%
svn co http://svn.freebsd.org/base/user/cperciva/freebsd-update-build freebsd-update-server
Update scripts/build.conf
appropriately. It is sourced during all build
operations.
Here is the default build.conf
, which
should be modified to suit your environment.
# Main configuration file for FreeBSD Update builds. The # release-specific configuration data is lower down in # the scripts tree. # Location from which to fetch releases export FTP=ftp://ftp2.freebsd.org/pub/FreeBSD/releases# Host platform export HOSTPLATFORM=`uname -m` # Host name to use inside jails export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net
# Location of SSH key export SSHKEY=/root/.ssh/id_dsa
# SSH account into which files are uploaded [email protected]
# Directory into which files are uploaded MASTERDIR=update-master.freebsd.org
![]()
This is the location where ISO images are downloaded from (by the
fetchiso()
subroutine ofscripts/build.subr
). The location configured is not limited to FTP URIs. Any URI scheme supported by standard fetch(1) utility should work fine.Customizations to the
fetchiso()
code can be installed by copying the defaultbuild.subr
script to the release and architecture-specific area atscripts/RELEASE/ARCHITECTURE/build.subr
and applying local changes.The name of the build host. This information will be displayed on updated systems when issuing:
%
uname -v
The SSH key for uploading files to the update server. A key pair can be created by typing
ssh-keygen -t dsa
. This parameter is optional; standard password authentication will be used as a fallback authentication method whenSSHKEY
is not defined.The ssh-keygen(1) manual page has more detailed information about SSH and the appropriate steps for creating and using one.
Directory on the update server where files are uploaded to.
The default build.conf
shipped with the
freebsd-update-server sources is
suitable for building i386 releases of FreeBSD. As an
example of building an update server for other architectures,
the following steps outline the configuration changes needed for
amd64:
Create a build environment for amd64:
%
mkdir -p /usr/local/freebsd-update-server/scripts/7.2-RELEASE/amd64
Install a build.conf
in the newly
created build directory. The build configuration options
for FreeBSD 7.2-RELEASE on amd64 should be similar
to:
# SHA256 hash of RELEASE disc1.iso image. export RELH=1ea1f6f652d7c5f5eab7ef9f8edbed50cb664b08ed761850f95f48e86cc71ef5# Components of the world, source, and kernels export WORLDPARTS="base catpages dict doc games info manpages proflibs lib32" export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5 \ lib libexec release rescue sbin secure share sys tools \ ubin usbin cddl" export KERNELPARTS="generic" # EOL date export EOL=1275289200
![]()
The sha256(1) hash key for the desired release, is published within the respective release announcement.
To generate the "End of Life" number for
build.conf
, refer to the "Estimated EOL" posted on the FreeBSD Security Website. The value ofEOL
can be derived from the date listed on the web site, using the date(1) utility, for example:%
date -j -f '%Y%m%d-%H%M%S' '20090401-000000' '+%s'
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <[email protected]>.
Send questions about this document to <[email protected]>.