Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Mar 2013 00:52:14 +0000 (UTC)
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r247826 - in user/cperciva: freebsd-update-build freebsd-update-build/patches freebsd-update-build/patches/5.5-RELEASE freebsd-update-build/patches/6.0-RELEASE freebsd-update-build/patc...
Message-ID:  <201303050052.r250qEkk060105@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cperciva
Date: Tue Mar  5 00:52:14 2013
New Revision: 247826
URL: http://svnweb.freebsd.org/changeset/base/247826

Log:
  Add FreeBSD Update build and mirroring code (formerly in the now-defunct
  CVS projects repository).

Added:
  user/cperciva/freebsd-update-build/
  user/cperciva/freebsd-update-build/README
  user/cperciva/freebsd-update-build/USAGE
  user/cperciva/freebsd-update-build/build-upgrade-patches.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/patches/
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-mail0.nr
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-ms.diffs
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-newvers.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-pxin0.n
  user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-vi.ref
  user/cperciva/freebsd-update-build/patches/6.0-RELEASE/
  user/cperciva/freebsd-update-build/patches/6.0-RELEASE/0-cm.4   (contents, props changed)
  user/cperciva/freebsd-update-build/patches/6.1-RELEASE/
  user/cperciva/freebsd-update-build/patches/6.2-RELEASE/
  user/cperciva/freebsd-update-build/patches/6.3-RELEASE/
  user/cperciva/freebsd-update-build/patches/6.4-RELEASE/
  user/cperciva/freebsd-update-build/patches/7.0-RELEASE/
  user/cperciva/freebsd-update-build/patches/7.1-RELEASE/
  user/cperciva/freebsd-update-build/patches/7.2-RELEASE/
  user/cperciva/freebsd-update-build/patches/7.3-RELEASE/
  user/cperciva/freebsd-update-build/patches/7.4-RELEASE/
  user/cperciva/freebsd-update-build/patches/8.0-RELEASE/
  user/cperciva/freebsd-update-build/patches/8.1-RELEASE/
  user/cperciva/freebsd-update-build/patches/8.2-RELEASE/
  user/cperciva/freebsd-update-build/patches/8.3-RELEASE/
  user/cperciva/freebsd-update-build/patches/9.0-RELEASE/
  user/cperciva/freebsd-update-build/patches/9.0-RELEASE/0-clang.patch
  user/cperciva/freebsd-update-build/patches/9.1-RELEASE/
  user/cperciva/freebsd-update-build/scripts/
  user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/
  user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/
  user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/
  user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/
  user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/
  user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/
  user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/
  user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/
  user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/
  user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/
  user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/
  user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/amd64/
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/amd64/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/build.subr
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/i386/
  user/cperciva/freebsd-update-build/scripts/9.1-RELEASE/i386/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/approve.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/build.conf   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/build.subr
  user/cperciva/freebsd-update-build/scripts/diff.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/encryptkey.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/init.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/make.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/mountkey.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/multi.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/restage.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/umountkey.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/scripts/upload.sh   (contents, props changed)
  user/cperciva/freebsd-update-build/src/
  user/cperciva/freebsd-update-build/src/Makefile   (contents, props changed)
  user/cperciva/freebsd-update-build/src/findstamps.c   (contents, props changed)
  user/cperciva/freebsd-update-build/src/unstamp.c   (contents, props changed)
  user/cperciva/freebsd-update-build/tools/
  user/cperciva/freebsd-update-build/tools/build-upgrade-patches.sh   (contents, props changed)
  user/cperciva/freebsd-update-mirror/
  user/cperciva/freebsd-update-mirror/umirror-init.sh   (contents, props changed)
  user/cperciva/freebsd-update-mirror/umirror-package.sh   (contents, props changed)
  user/cperciva/freebsd-update-mirror/umirror-release.sh   (contents, props changed)
  user/cperciva/freebsd-update-mirror/umirror.sh   (contents, props changed)

Added: user/cperciva/freebsd-update-build/README
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/README	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,39 @@
+$FreeBSD$
+
+This directory contains FreeBSD Update build code.
+
+File				Description
+----				-----------
+scripts/build.subr		The routines which do all the work.
+
+scripts/build.conf		Configuration settings.
+
+scripts/*.sh			User-accessible scripts.
+
+scripts/X.Y-Z/bar/build.conf	Configuration for FreeBSD/bar X.Y-Z
+
+scripts/X.Y-Z/build.subr and	These files, if present, can override
+scripts/X.Y-Z/bar/build.subr	the routines defined in scripts/build.subr
+				in order to provide special treatment for
+				a particular release or platform.
+
+src/findstamp.c			Utility for comparing two binaries which
+				were built from the same source code and
+				printing out the locations where they
+				differ due to timestamps.
+
+src/unstamp.c			Utility for erasing timestamps found by
+				findstamp.c.
+
+patches/X.Y-Z/0-*		Patches to FreeBSD X.Y-Z which we pretend
+				were part of the release.  In FreeBSD 5.5
+				and FreeBSD 6.0 some of these are necessary
+				in order to get rid of some problematic
+				timestamps.
+
+patches/X.Y-Z/W-*		Patches to FreeBSD X.Y-Z.  These are applied
+				in order of increasing W (assuming it is an
+				integer), so a naming convention of setting
+				W equal to the FreeBSD patch level (e.g., 9
+				for FreeBSD 6.0-RELEASE-p9) is strongly
+				recommended.

Added: user/cperciva/freebsd-update-build/USAGE
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/USAGE	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,86 @@
+$FreeBSD$
+
+How to use the FreeBSD Update build code
+========================================
+
+0. Extract the files in this directory and the src, scripts, and 
+patches subdirectories somewhere; /usr/freebsd-update-server/ is a
+good option.
+
+1. Edit scripts/build.conf as appropriate.
+
+2. Run `scripts/make.sh'.  This will build some binaries, create some
+directories, and generate an RSA signing key.  You will be prompted to
+enter a passphrase with which to encrypt the signing key.
+
+3. Run `scripts/init.sh ${ARCHITECTURE} ${RELEASE}' for each pair
+(architecture, release) for which you want to be able to build updates.
+Note that as of 6.1-RELEASE, cross-building releases doesn't work (some
+files don't cross-build correctly); but once those problems are fixed
+it will be possible to cross build updates.
+
+4. Read the output of each `init.sh' run, and check that everything
+looks right.  Problem signs to watch out for include:
+ * Files which are listed as "built but not released".
+ * Files which are listed as "released but not build".
+ * Files listed are "differ by more than contents" (this would include
+files which have incorrect permissions or file flags).
+ * A very long list of files listed as "differ between release and build".
+ * A list of build stamps which includes any non-text characters.
+
+5. Run `scripts/mountkey.sh' to prepare the signing key for use.
+
+6. Run `scripts/approve.sh ${ARCHITECTURE} ${RELEASE}' for each
+architecture / release pair.  This signs the build, prepares it for
+uploading, and "commits" various internal bookkeeping changes (e.g.,
+the list of locations of build stamps) in order to prepare for the
+next build.
+
+7. Run `scripts/umountkey.sh' to remove the unencrypted signing key
+from memory.
+
+8. Run `scripts/upload.sh ${ARCHITECTURE} ${RELEASE}' to upload the 
+files to your server.
+
+9. For each security / errata update, copy the patch distributed by the
+security team into the appropriate `patches/${RELEASE}' directory(s),
+and run `scripts/diff.sh ${ARCHITECTURE} ${RELEASE} ${PATCHNUM}', where
+${PATCHNUM} is the patch number (e.g., 9 for 6.0-RELEASE-p9).
+
+10. Assuming the output from `diff.sh' looks ok, repeat steps 5-8 to
+sign and upload the binary updates built.
+
+Tips
+----
+
+* If you want to allow two different users to sign updates, have the
+person who ran `make.sh' run `mountkey.sh' to mount the key, then have
+the other(s) run `encryptkey.sh' to save a copy of the key encrypted
+with their own passphrase.  (Obviously, everybody involved must use
+su or sudo to become root in order to do this.)
+
+* If you want to distribute and update a customized version of FreeBSD,
+there are two options:
+
+  1. Building a custom release.  If you have a custom release and the
+  source code in your custom-build ISO matches the binaries you are
+  distributing, everything will Just Work once you edit the appropriate
+  build.conf files to reflect the location and SHA256 hash of the custom
+  release ISO.
+
+  2. Treating local customizations as a patch.  Construct a patch file
+  via `cd /usr/src && cvs diff' (note that the patches MUST be relative
+  to /usr/src), and place it into the appropriate patches directory.
+  Run `diff.sh' specifying a patch number of zero; then install the
+  original FreeBSD release onto systems and use the FreeBSD Update
+  client to download "updates"; they will end up with your customized
+  release.
+
+* If something goes wrong in the `diff' run and you need to modify the
+build by hand, BE VERY CAREFUL and modify the files in newworld/R/trees
+and the build manifest newworld-index.  Then run `restage.sh' before
+running `approve.sh'.
+
+* If you're building updates for multiple releases, the `multi.sh' script
+can be very helpful.  It will run the same operation (e.g., "diff") on a
+number of architectures and releases, and log the output of each.

Added: user/cperciva/freebsd-update-build/build-upgrade-patches.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/build-upgrade-patches.sh	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+if [ $# -lt 3 ]; then
+	echo "usage: $0 ARCH TARGETREL OLDRELS"
+	exit 1
+fi
+
+BASEDIR=/usr/freebsd-update-server
+ARCH=$1
+TARGETREL=$2
+OLDRELS=$3
+
+WWWDIR=${BASEDIR}/pub
+
+mkdir -p ${WWWDIR}/to-${TARGETREL}/${ARCH}/bp/
+for V in ${OLDRELS}; do
+	zcat ${WWWDIR}/${V}/${ARCH}/m/* |
+	    cut -f 3,4,9 -d '|' |
+	    fgrep '|f|' |
+	    cut -f 1,3 -d '|' |
+	    sort -u |
+	    grep -E '\|[0-9a-f]{64}' |
+	    lam -s "${V}|" -
+done |
+    sort -k 2,2 -t '|' > hashtab
+
+zcat ${WWWDIR}/${TARGETREL}/${ARCH}/m/* |
+    cut -f 3,4,9 -d '|' |
+    fgrep '|f|' |
+    cut -f 1,3 -d '|' |
+    sort -u |
+    grep -E '\|[0-9a-f]{64}' |
+    lam -s "${TARGETREL}|" - |
+    sort -k 2,2 -t '|' |
+    join -1 2 -2 2 -t '|' hashtab - |
+    cut -f 2- -d '|' |
+    sort -k 2,2 -t '|' |
+    tr '|' ' ' |
+    while read OR OH NR NH; do
+	if [ -f ${WWWDIR}/to-${TARGETREL}/${ARCH}/bp/${OH}-${NH} ]; then
+		continue
+	fi
+	if [ ${OH} = ${NH} ]; then
+		continue
+	fi
+	gunzip < ${WWWDIR}/${OR}/${ARCH}/f/${OH}.gz > ${OH}
+	gunzip < ${WWWDIR}/${NR}/${ARCH}/f/${NH}.gz > ${NH}
+	bsdiff ${OH} ${NH} ${WWWDIR}/to-${TARGETREL}/${ARCH}/bp/${OH}-${NH}
+	rm ${OH} ${NH}
+    done
+
+rm hashtab

Added: user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-mail0.nr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-mail0.nr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,15 @@
+Index: usr.bin/mail/USD.doc/mail0.nr
+===================================================================
+RCS file: /home/ncvs/src/usr.bin/mail/USD.doc/mail0.nr,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -I__FBSDID -r1.1 -r1.2
+--- usr.bin/mail/USD.doc/mail0.nr	27 May 1994 12:32:07 -0000	1.1
++++ usr.bin/mail/USD.doc/mail0.nr	17 Aug 2005 15:56:04 -0000	1.2
+@@ -66,6 +66,5 @@
+ Version 5.5
+ 
+ 
+-\*(td
+ .)l
+ .pn 2

Added: user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-ms.diffs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-ms.diffs	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,13 @@
+Index: share/doc/usd/18.msdiffs/ms.diffs
+===================================================================
+RCS file: /home/ncvs/src/share/doc/usd/18.msdiffs/ms.diffs,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -I__FBSDID -r1.2 -r1.3
+--- share/doc/usd/18.msdiffs/ms.diffs	1 Jan 2003 18:48:47 -0000	1.2
++++ share/doc/usd/18.msdiffs/ms.diffs	1 Aug 2005 12:10:14 -0000	1.3
+@@ -286,4 +286,3 @@
+ The code for the \*ms package lives in /usr/lib/tmac/tmac.s,
+ and sourced files reside in the directory /usr/ucb/lib/ms.
+ .sp
+-.tl '''\*(DY'

Added: user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-newvers.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-newvers.sh	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,31 @@
+Index: sys/conf/newvers.sh
+--- sys/conf/newvers.sh	23 May 2006 04:09:11 -0000
++++ sys/conf/newvers.sh	27 Aug 2006 01:55:22 -0000
+@@ -33,6 +33,9 @@
+ TYPE="FreeBSD"
+ REVISION="5.5"
+ BRANCH="RELEASE"
++if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
++	BRANCH=${BRANCH_OVERRIDE}
++fi
+ RELEASE=5.5-RELEASE
+ VERSION="${TYPE} ${RELEASE}"
+ 
+@@ -85,10 +88,14 @@
+ i=`${MAKE:-make} -V KERN_IDENT`
+ cat << EOF > vers.c
+ $COPYRIGHT
+-char sccs[] =  "@(#)${VERSION} #${v}: ${t}";
+-char version[] = "${VERSION} #${v}: ${t}\\n    ${u}@${h}:${d}\\n";
++#define SCCSSTR "@(#)${VERSION} #${v}: ${t}"
++#define VERSTR "${VERSION} #${v}: ${t}\\n    ${u}@${h}:${d}\\n"
++#define RELSTR "${RELEASE}"
++
++char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
++char version[sizeof(VERSTR) > 256 ? sizeof(VERSTR) : 256] = VERSTR;
+ char ostype[] = "${TYPE}";
+-char osrelease[] = "${RELEASE}";
++char osrelease[sizeof(RELSTR) > 32 ? sizeof(RELSTR) : 32] = RELSTR;
+ int osreldate = ${RELDATE};
+ char kern_ident[] = "${i}";
+ EOF

Added: user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-pxin0.n
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-pxin0.n	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,15 @@
+Index: share/doc/papers/px/pxin0.n
+===================================================================
+RCS file: /home/ncvs/src/share/doc/papers/px/Attic/pxin0.n,v
+retrieving revision 1.2
+diff -u -I__FBSDID -r1.2 pxin0.n
+--- share/doc/papers/px/pxin0.n	30 Nov 2000 17:06:28 -0000	1.2
++++ share/doc/papers/px/pxin0.n	16 Jul 2006 00:19:53 -0000
+@@ -32,6 +32,7 @@
+ .\"	@(#)pxin0.n	5.2 (Berkeley) 4/17/91
+ .\" $FreeBSD: src/share/doc/papers/px/pxin0.n,v 1.2 2000/11/30 17:06:28 ru Exp $
+ .\"
++.ND 17 Apr 1991
+ .RP
+ .TL
+ Berkeley Pascal

Added: user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-vi.ref
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/5.5-RELEASE/0-vi.ref	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,16 @@
+Index: contrib/nvi/docs/USD.doc/vi.ref/vi.ref
+===================================================================
+RCS file: /home/ncvs/src/contrib/nvi/docs/USD.doc/vi.ref/vi.ref,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -I__FBSDID -r1.1 -r1.2
+--- contrib/nvi/docs/USD.doc/vi.ref/vi.ref	1 Nov 1996 06:45:34 -0000	1.1
++++ contrib/nvi/docs/USD.doc/vi.ref/vi.ref	17 Aug 2005 15:56:04 -0000	1.2
+@@ -27,7 +27,6 @@
+ University of California, Berkeley
+ Berkeley, California  94720
+ .sp 1
+-\*(td
+ .)l
+ .sp 3
+ .(l C

Added: user/cperciva/freebsd-update-build/patches/6.0-RELEASE/0-cm.4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/6.0-RELEASE/0-cm.4	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,17 @@
+Index: share/man/man4/cm.4
+===================================================================
+RCS file: /home/ncvs/src/share/man/man4/cm.4,v
+retrieving revision 1.6.2.1
+retrieving revision 1.6.2.2
+diff -u -I__FBSDID -r1.6.2.1 -r1.6.2.2
+--- share/man/man4/cm.4	24 Sep 2005 01:59:37 -0000	1.6.2.1
++++ share/man/man4/cm.4	2 Feb 2006 07:50:00 -0000	1.6.2.2
+@@ -25,7 +25,7 @@
+ .\"
+ .\" $FreeBSD$
+ .\"
+-.Dd July 16,2005
++.Dd July 16, 2005
+ .Dt CM 4
+ .Os
+ .Sh NAME

Added: user/cperciva/freebsd-update-build/patches/9.0-RELEASE/0-clang.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/patches/9.0-RELEASE/0-clang.patch	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,11 @@
+Index: lib/clang/clang.build.mk
+--- lib/clang/clang.build.mk	2011-10-20 05:42:19.000000000 -0700
++++ lib/clang/clang.build.mk	2011-10-20 05:42:54.000000000 -0700
+@@ -6,6 +6,7 @@
+ 	-I${LLVM_SRCS}/${SRCDIR} ${INCDIR:C/^/-I${LLVM_SRCS}\//} -I. \
+ 	-I${LLVM_SRCS}/../../lib/clang/include \
+ 	-DLLVM_ON_UNIX -DLLVM_ON_FREEBSD \
++	-frandom-seed=RepeatabilityConsideredGood \
+ 	-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS #-DNDEBUG
+ 
+ # Correct for gcc miscompilation when compiling on PPC with -O2

Added: user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=f71eedf18ab24d973c938b473ca127018eb87ab1d1b4c96a5d8d1e9cd8f261d3
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS=""
+
+# EOL date
+export EOL=1212303600
+

Added: user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/5.5-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,13 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=40d41ec7b567e7952d0f85729f340d409911368808256dae123ff1b97155c1ae
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs	\
+		compat1x compat20 compat21 compat22 compat3x compat4x"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS=""
+
+# EOL date
+export EOL=1212303600

Added: user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=449b08c98acc73508219e2a19de0787334fd9237123346b2c7949c3009540170
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS=""
+
+# EOL date
+export EOL=1164960000
+

Added: user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.0-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,13 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=0ad601dae704e941beb7d4617bf96b04055849a24835275c716f518eee7a12f1
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS=""
+
+# EOL date
+export EOL=1164960000
+

Added: user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=99f596f65f7860f2f7d1be7b926faab7c3a3561d8659527127ca39760afb0e00
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1212303600
+

Added: user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.1-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,13 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=cbc6f9389c85f3130baff5270316ece18d5e324e82f8aa167c61ab49174dd4d1
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1212303600
+

Added: user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=60d2d13a23c0e6ecac5547c5e83c53c378c37ae40a04ef4f5f0964c79955cc6f
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1212303600

Added: user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.2-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=2099715d561df721833322bc56a4fa8b02c2b77713a1e0bc17fc4b2dded20212
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1212303600

Added: user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=6ee1c2f00f8a1bc9d38b04b058b0549df9904ded52ddd19bae9dad070a5868e3
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1264982400

Added: user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.3-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=15081a56d184a18c7cc3a5c3cd0d7d5b7d9304c9cc1d5fc40d875b0fd3047721
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1264982400

Added: user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=6e8f24e153d78518268129db62e5efd3cd7b75e428a3c22bddf89eb901efa79e
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1291161600

Added: user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/6.4-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=c4f688013a27632e97caefc71296f59c9597abdb4e724385130d72dbd9abd218
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin contrib crypto etc games gnu include krb5	\
+		lib libexec release rescue sbin secure share sys tools	\
+		ubin usbin"
+export KERNELPARTS="generic smp"
+
+# EOL date
+export EOL=1291161600

Added: user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=d3b206eb74df7559041dd9054de7352b9a67d4f350e75f433c7fb001bf4b5c6f
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 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
+export EOL=1241136000

Added: user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.0-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=7480c74dda9a78805ab0d647b23eb71cac43f4afce83ff65ad9f2019423583af
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games 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
+export EOL=1241136000

Added: user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=4f7deebbd5e3211d144c6e630b808e918fcbb901ff4689b64087ed4c2d6e781d
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1296518400

Added: user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.1-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=58e588c26d06b84d8c3c01d8507b2ffe2e237b167f72604c82d34011dc850a46
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1296518400

Added: user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# 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 lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1277942400

Added: user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.2-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=bf4d00102215b07f5a4c8acac80b9d9bd9bf8bd93ac554fe09b21302f0b41380
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1277942400

Added: user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=7f5970e095774c0cdf802e9a15b4419d0166fa7641c2b65f1a1431429105b98b
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1333238400

Added: user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.3-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=e1623209b45df700e624ed37d8526b298fddc48af14e40fbe8a62c0b3801819b
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1333238400

Added: user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=c6d560a010808929570818c6e5947ff4e488085de690dd2d8489d393cf59ddd2
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1362096000

Added: user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/7.4-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=3a4437fbd10a516f365d169457f9413fe1e8cbc28792935edd83145bd4d20f9d
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1362096000

Added: user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=7d4583c20c651093b208170a7fd4ed5f38ee5af0cbe19fb742f67175a9fee10f
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1291161600

Added: user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/build.subr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/build.subr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,6 @@
+# Add extra docs to ${WORKDIR}/$1
+addextradocs () {
+	log "Extracting extra docs"
+
+	# 8.0 doesn't have any extra docs
+}

Added: user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.0-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=d7ef47a76a20a716c006a635b476ed3515830b8442ded2702ed015f0bde32bcf
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1291161600

Added: user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=2b87563d876cfe6095d1a7fef164d0eb0d63a6a889320b4bb91f138dc29e01e1
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1343779200

Added: user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/build.subr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/build.subr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,6 @@
+# Add extra docs to ${WORKDIR}/$1
+addextradocs () {
+	log "Extracting extra docs"
+
+	# 8.0 doesn't have any extra docs
+}

Added: user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.1-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=7b80c34ad0cb49ace8def6261561ab22ab9346c58b69e79a82c148682a62bdc1
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1343779200

Added: user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=009938b49e9b989277fe93aae474b054918acaca5f5919fbabdfcb0b04cd8c60
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1343779200

Added: user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/build.subr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/build.subr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,6 @@
+# Add extra docs to ${WORKDIR}/$1
+addextradocs () {
+	log "Extracting extra docs"
+
+	# 8.0 doesn't have any extra docs
+}

Added: user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.2-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,12 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=fbfc3950674b3845a6cf0b74bd175b9ba19475b97bdc8bef23b50344bc33866c
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1343779200

Added: user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,14 @@
+# $FreeBSD$
+
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=26d4870f3a310a95e488ed14dd8e36eb52e857878f2b238b3b91e65c101eee93
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info lib32 manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1398902400

Added: user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/build.subr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/build.subr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,6 @@
+# Add extra docs to ${WORKDIR}/$1
+addextradocs () {
+	log "Extracting extra docs"
+
+	# 8.0 doesn't have any extra docs
+}

Added: user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/i386/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/8.3-RELEASE/i386/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,13 @@
+# SHA256 hash of RELEASE disc1.iso image.
+export RELH=a83919b5104d8ec4e905693a6bd6b90b88b1c30923029146d1dab62b62a038e9
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base catpages dict doc games info manpages proflibs"
+export SOURCEPARTS="base bin cddl contrib crypto etc games gnu	\
+		include	krb5 lib libexec release rescue sbin secure	\
+		share sys tools	ubin usbin"
+export KERNELPARTS="generic"
+
+# EOL date
+export EOL=1398902400
+

Added: user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/amd64/build.conf
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/amd64/build.conf	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,11 @@
+# SHA256 hash of dvd1.iso image.
+export RELH=bcc69320cd2f227411d55967113abc8ffa5ede0a6526090ca3fb5ab776fead9d
+
+# Components of the world, source, and kernels
+export WORLDPARTS="base doc games lib32"
+export SOURCEPARTS="src"
+export KERNELPARTS="kernel"
+
+# EOL date
+# Mon  1 Apr 2013 00:00:00 UTC
+export EOL=1364774400

Added: user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/build.subr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/cperciva/freebsd-update-build/scripts/9.0-RELEASE/build.subr	Tue Mar  5 00:52:14 2013	(r247826)
@@ -0,0 +1,199 @@
+# Overrides to FreeBSD Update build subroutines for FreeBSD 9.0.
+
+# Download and verify a release ISO image.
+fetchiso () {
+	log "Starting fetch"
+
+	# Figure out where the disc1 ISO image is
+	RELNUM=${REL%-*}
+#	ISO=${FTP}/${TARGET}/ISO-IMAGES/${RELNUM}/${REL}-${TARGET}-disc1.iso
+	ISO=${FTP}/FreeBSD-${REL}-${TARGET}-disc1.iso
+
+	# Fetch the ISO image.  We consider the ISO image to be
+	# the One True Release and don't look at the files used
+	# for FTP installs.  The FreeBSD 4.7-RELEASE ISO and FTP
+	# files were not identical, but this should never happen
+	# again.
+	fetch -o ${WORKDIR}/iso.img -rR ${ISO} 2>&1
+
+	log "Verifying dvd1 hash"
+
+	# Check that the downloaded ISO has the correct hash.
+	if ! [ "`sha256 -q ${WORKDIR}/iso.img`" = "${RELH}" ]; then
+		echo "FreeBSD ${REL}-${TARGET}-dvd1.iso has incorrect hash."
+		rm ${WORKDIR}/iso.img
+		return 1
+	fi
+}
+
+# Extract the released trees and, if appropriate, construct a world (base
+# plus source code) in which to perform builds.
+extractiso () {
+	# Create and mount a md(4) attached to the ISO image.
+	ISOMD=`mdconfig -a -t vnode -f ${WORKDIR}/iso.img -n`
+	mkdir -p ${WORKDIR}/iso
+	mount -t cd9660 -o ro,nosuid /dev/md${ISOMD} ${WORKDIR}/iso
+
+	# Extract the various components into different directories
+	log "Extracting components"
+	for C in ${WORLDPARTS}; do
+		mkdir -p ${WORKDIR}/release/R/trees/world/${C}
+		cat ${WORKDIR}/iso/usr/freebsd-dist/${C}.txz |
+		    tar -xpzf - -C ${WORKDIR}/release/R/trees/world/${C}
+	done
+	for C in ${KERNELPARTS}; do
+		mkdir -p ${WORKDIR}/release/R/trees/kernel/${C}
+		cat ${WORKDIR}/iso/usr/freebsd-dist/${C}.txz |
+		    tar -xpzf - -C ${WORKDIR}/release/R/trees/kernel/${C}
+	done
+	for C in ${SOURCEPARTS}; do
+		mkdir -p ${WORKDIR}/release/R/trees/src/${C}
+		cat ${WORKDIR}/iso/usr/freebsd-dist/${C}.txz |
+		    tar -xpzf - -C ${WORKDIR}/release/R/trees/src/${C}
+	done
+
+	# If the release ISO we're handling belongs to the platform
+	# we're running right now, create a world image for future use.
+	if [ ${TARGET} = ${HOSTPLATFORM} ]; then
+		log "Constructing world+src image"
+
+		# Create directory for world
+		mkdir ${WORKDIR}/world/
+
+		# Extract world and source distributions
+		for C in ${WORLDPARTS}; do
+			cat ${WORKDIR}/iso/usr/freebsd-dist/${C}.txz |
+			    tar -xpzf - -C ${WORKDIR}/world/
+		done
+		for C in ${SOURCEPARTS}; do
+			cat ${WORKDIR}/iso/usr/freebsd-dist/${C}.txz |
+			    tar -xpzf - -C ${WORKDIR}/world/
+		done
+
+		# build a single tarball of them.
+		tar -czf ${WORKDIR}/../world.tgz -C ${WORKDIR}/world .
+
+		# clean up
+		nuke world
+	fi
+
+	# Unmount and detach the ISO image md(4).
+	umount ${WORKDIR}/iso
+	rmdir ${WORKDIR}/iso
+	mdconfig -d -u ${ISOMD}
+}
+
+# Perform a build in ${WORKDIR}/$1 with BRANCH_OVERRIDE set to $2
+buildworld () {
+	# We need a devfs inside the jail.  Note that we are using a
+	# jail here in order to keep the environment as "clean" as
+	# possible, not for security reasons; we assume that the
+	# original source code plus patches we add personally will
+	# not do anything evil.
+	mount -t devfs devfs ${WORKDIR}/$1/dev
+
+	# We need to be able to set file flags
+	sysctl security.jail.chflags_allowed=1 >/dev/null
+
+	# Build stuff.
+	jail ${WORKDIR}/$1 ${BUILDHOSTNAME} 127.1.2.3			\
+	    /usr/bin/env -i PATH=${PATH} RELP=${RELP}			\
+		BRANCH_OVERRIDE=$2 JFLAG=${JFLAG}			\
+		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH}		\
+	    /bin/sh -e <<-"EOF" 2>&1 >${WORKDIR}/$1-build.log
+		# Function for logging what we're doing
+		log () {
+			echo "`date` $1 for FreeBSD/${TARGET} ${RELP}" 1>&2
+		}
+
+		# Build the world
+		log "Building world"
+		cd /usr/src &&
+		    make buildworld ${JFLAG} 2>&1
+
+		# Build and kernel
+		log "Building kernel"
+		cd /usr/src &&
+		    make buildkernel ${JFLAG} 2>&1
+
+		# Build and install release images
+		log "Building release"
+		cd /usr/src/release &&
+		    make release 2>&1 &&
+		    make install DESTDIR=/R 2>&1
+	EOF
+
+	# Put all the components into the right places.
+	log "Moving components into staging area"
+	jail ${WORKDIR}/$1 ${BUILDHOSTNAME} 127.1.2.3			\
+	    /usr/bin/env -i PATH=${PATH}				\
+		WORLDPARTS="${WORLDPARTS}"				\
+		KERNELPARTS="${KERNELPARTS}"				\
+		SOURCEPARTS="${SOURCEPARTS}"				\
+	    /bin/sh -e <<-"EOF" 2>&1 >>${WORKDIR}/$1-build.log
+		# Create area for uncompressed components
+		mkdir -p /R/trees

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303050052.r250qEkk060105>