Check out a copy of the freebsd-update-server code from CVS:
# cvs -d anoncvs@anoncvs1.freebsd.org:/home/ncvs co projects/freebsd-update-server
Create the patches/7.0-RELEASE directory:
# cd patches # mkdir 7.0-RELEASE # cd 7.0-RELEASE
Fetch the patches needed:
fetch -o 1-SA-08:05.openssh http://security.FreeBSD.org/patches/SA-08:05/openssh.patch fetch -o 2-SA-08:02.tcp http://security.FreeBSD.org/patches/EN-08:02/tcp.patch fetch -o 3-SA-08:06.bind7 http://security.FreeBSD.org/patches/SA-08:06/bind7.patch fetch -o 4-SA-08:07.amd64 http://security.FreeBSD.org/patches/SA-08:07/amd64.patch fetch -o 5-SA-08:08.nmount http://security.FreeBSD.org/patches/SA-08:08/nmount.patch fetch -o 6-SA-08:09.icmp6 http://security.FreeBSD.org/patches/SA-08:09/icmp6.patch fetch -o 7-SA-08:10.nd6 http://security.FreeBSD.org/patches/SA-08:10/nd6-7.patch fetch -o 8-SA-08:11.arc4random http://security.FreeBSD.org/patches/SA-08:11/arc4random.patch fetch -o 9-SA-08:12.ftpd http://security.FreeBSD.org/patches/SA-08:12/ftpd.patch fetch -o 10-SA-08:13.protosw http://security.FreeBSD.org/patches/SA-08:13/protosw.patch fetch -o 11-SA-09:01.lukemftpd http://security.FreeBSD.org/patches/SA-09:01/lukemftpd.patch fetch -o 12-SA-09:02.openssl http://security.FreeBSD.org/patches/SA-09:02/openssl.patch fetch -o 13-SA-09:03.ntpd http://security.FreeBSD.org/patches/SA-09:03/ntpd63.patch fetch -o 14-SA-09:04.bind http://security.FreeBSD.org/patches/SA-09:04/bind.patch fetch -o 15-SA-09:05.telnetd http://security.FreeBSD.org/patches/SA-09:05/telnetd.patch fetch -o 16-SA-09:06.ktimer http://security.FreeBSD.org/patches/SA-09:06/ktimer.patch fetch -o 17-SA-09:07.libc http://security.FreeBSD.org/patches/SA-09:07/libc.patch fetch -o 18-SA-09:08.openssl http://security.FreeBSD.org/patches/SA-09:08/openssl.patch
Make the local path where freebsd-update-server can find the ISO, I'm using my home dir:
# mkdir -p ~/amd64/ISO-IMAGES/7.0/
Grab the FreeBSD 7.0 amd64 ISO and stuff it into the local path:
# fetch ftp://freebsd.isc.org/pub/FreeBSD/ISO-IMAGES-amd64/7.0/7.0-RELEASE-amd64-disc1.iso
Edit scripts/build.conf appropriately. This is what mine looks like:
# $FreeBSD: projects/freebsd-update-server/scripts/build.conf,v 1.1 2006/08/31 07:48:40 cperciva Exp $ # 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 export FTP=/home/brd # Host platform export HOSTPLATFORM=`uname -m` # Host name to use inside jails #export BUILDHOSTNAME=${HOSTPLATFORM}-builder.daemonology.net export BUILDHOSTNAME=denbuild01.so14k.com # Location of SSH key #export SSHKEY=/root/.ssh/id_dsa export SSHKEY=/root/.ssh/id_rsa # SSH account into which files are uploaded #MASTERACCT=builder@wadham.daemonology.net MASTERACCT=builder@densec01.so14k.com # Directory into which files are uploaded #MASTERDIR=update-master.freebsd.org MASTERDIR=updates
Update the scripts/7.0-RELEASE/amd64 with the following:
# $FreeBSD: projects/freebsd-update-server/scripts/6.2-RELEASE/i386/build.conf,v 1.1 2007/01/14 21:42:03 cperciva Exp $ # SHA256 hash of RELEASE disc1.iso image. export RELH=d3b206eb74df7559041dd9054de7352b9a67d4f350e75f433c7fb001bf4b5c6f # Components of the world, source, and kernels export WORLDPARTS="base catpages dict doc games lib32 info manpages proflibs" export SOURCEPARTS="base bin cddl compat contrib crypto etc games gnu include krb5 \ lib libexec release rescue sbin secure share sys tools \ ubin usbin" export KERNELPARTS="generic" # EOL date (my personal EoL date (May 6th, 2010) export EOL=1273125600
Run scripts/make.sh and populate with the key and a passphrase.
Run `scripts/init.sh amd64 7.0-RELEASE'.