155N/ACopyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
155N/ACopyright (C) 2000-2003 Internet Software Consortium.
155N/A$Id: release,v 1.73 2009/08/06 01:31:50 marka Exp $
155N/APreparing a bind9 release
155N/AHere's a rough outline of the steps to follow in preparing a new bind9
155N/A - Update the README file
155N/A - Send the new README file to webteam@nominum.com at least 48
155N/A hours prior to the planned release and ask them to prepare
155N/A the web pages for the new version. If there have been only
155N/A minor changes, send context diffs relative to the previous
155N/A - Do a "cvs update" to check that all changes have been committed.
155N/A - Verify that the file "version" contains the correct version
155N/A number (it should have been incremented after the
485N/A - If building from a release branch, check that any important
277N/A bug fixes made on the mainline since the last release have
277N/A been pulled up. You can do this by comparing the CHANGES
277N/A running the script from a mainline tree:
618N/A This will list all bug fixes on the mainline that are not
155N/A on the 9.2 release branch.
155N/A - Before creating a new release branch, update the lib/*/api files
155N/A as needed. See the libtool info file for information about what
155N/A the various numbers mean.
215N/A shows a clean build and test status for all supported
215N/A systems and that the tests are actually being run on the
215N/A version being released (the version can be found in the
215N/A page behind the "Source tar build" link).
215N/A produce compile errors.
215N/A - Regenerate the documentation by running "make man" (mainline/9.2)
215N/A and commit it. Note that not all machines have the
215N/A necessary XML tools, but at least trebuchet, cuba,
155N/A and Scanner's machine do. Commit any files that were
155N/A ssh tbox@docs.lab.isc.org
155N/A run this command from crontab.
155N/A Check to see if the ARM has changed since the last release
155N/A - Update the copyrights.
155N/A run these two command from the crontab
155N/A# Merge and Update copyrights
155N/A When tbox@cvs.isc.org is not available:
155N/A Go to the root of the source tree.
155N/A The scripts need to be run from there; they reference the util
155N/A subdirectory internally.
155N/A ... [I prefer to check out a fresh source tree --gson]
155N/A ... examine output, particularly any files with the "?" type, and
155N/A ... examine output, edit as necessary. mail me about anything that
155N/A ... the script should have been able to do itself. :-)
155N/A $ cvs ci -m'update_copyrights'
155N/A - Announce a CVS freeze if doing an alpha or beta release from
155N/A the mainline, or stop doing pullups if building from a release branch.
155N/A obscure build options work. This script may need some hacking if run
155N/A on anything other than NetBSD. Save the output (it's big) and look
155N/A for error and warning messages.
155N/A cd $top_of_mainline_tree
181N/A Alteratively, you can do this after building the kit, by giving
- If you can (= your system is similar enough to the one Tale is using),
check the header files for cruft by running the command
[ This step is quite imperfect and should probably be skipped
- Ensure that the JPNIC patch applies cleanly (9.2 and 9.3):
If you don't have the "iconv" library, you need to get it from
If you're reading this part of these instructions in order to generate
a version of the patch for a new release, you'll need to pick a
version of the patch from some prior release to use as a starting
point. In general, the patch corresponding to the most recent
prior release will be the best starting point.
All hunks should have applied successfully with no offset or fuzz.
If all succeeded but some were offset or had fuzz, the patch will be
regenerated at the end of this stage.
Note that two of the files which the patch attempts to update
(configure and
config.h.in) are generated automatically. When
generating a new patch, the old version of the patch may not apply
correctly to these files, but that's ok so long as the patch does
apply correctly to the source files from which these files are
generated. The steps below will regenerate these files.
[ Sample on freebsd -- formerly used giconv, now uses iconv ]
$ cd ../../.. ; : cd back to top level
$ autoconf ; : regenerate configure
... should cleanly compile
$ (cd
bin/dig ; rm host.1 dig.1 ; make host.1 dig.1 ; cvs update host.1 dig.1 )
... should cleanly compile
Generate a fresh copy of the diffs:
$ files=`awk '/^Index:/ && NF == 2 {print $2}' $patchd/$old_patch`
$ missing=`cvs status $files | awk '/Status: Unknown/ { print $2; }'`
$ sed '/^Index:/,$d' $patchd/$old_patch > $patchd/$new_patch
do echo Index: $i; diff -u
/dev/null $i; done >> $patchd/$new_patch
$ cvs -f diff -U 2 -N $files >> $patchd/$new_patch
$ cvs add -ko $patchd/$new_patch
$ cvs ci $patchd/$new_patch
- Add a marker line like " --- 9.0.0rc10 released ---"
- Tag the CVS source tree with the final tag, as in
"cvs rtag v9_0_0rc1 bind9" (mainline) or
"cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
- Build the release kit. This procedure differs
between the 9.0 release branch and later versions.
On the 9.0 release branch,
cvs export -r v9_0_0rc10 bind9
On the 9.[1-2] release branch or mainline, use the
- Build bind9 from the kit on ns-ext (phred)
and ns-int (rc), install it, and let it run for
a day keeping an eye on it for any problems.
# kill both the keep-running script and named itself
# kill both keep-running scripts and both named9:s
- If you can, try resolving some IPv6 addresses and
- If problems are found at this stage, fix them, move the
release tag up using "rtag -F", and respin the kit.
- Sign the distribution files with the ISC signing PGP key
and fix the permissions on the signature file:
- Verify the PGP signature:
(Look for the words "Good signature" in the output.)
- If there is a companion binary kit for NT, sign it and verify the
pgp -sba BIND$
ver.zip -u 0x51BAB2ED
- Prepare a release announcement based on the previous one.
- Copy the distribution and PGP signature files to the FTP site:
- If there is a companion binary kit for NT, copy it, too:
- Download using FTP (or a web browser) using the URLs in the release
announcement and verify the PGP signature again
- Ask webteam@nominum.com to publish the updated web pages
- When the web pages are up, announce the release on
- Increment the version in the file "version"