release revision 361a4334ec8ef9d678dcd6c94f96547efedb02bd
25cf1a301a396c38e8adf52c15f537b80d2483f7jlCopyright (C) 2000, 2001 Internet Software Consortium.
25cf1a301a396c38e8adf52c15f537b80d2483f7jlSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl$Id: release,v 1.34 2001/05/24 00:43:57 gson Exp $
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jlPreparing a bind9 release
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jlHere's a rough outline of the steps to follow in preparing a new bind9
25cf1a301a396c38e8adf52c15f537b80d2483f7jlrelease.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Do a "cvs update" to check that all changes have been committed.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Update the README file
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Send the new README file to webteam@nominum.com at least 48
25cf1a301a396c38e8adf52c15f537b80d2483f7jl hours prior to the planned release and ask them to prepare
25cf1a301a396c38e8adf52c15f537b80d2483f7jl the web pages for the new version. If there have been only
25cf1a301a396c38e8adf52c15f537b80d2483f7jl minor changes, send context diffs relative to the previous
25cf1a301a396c38e8adf52c15f537b80d2483f7jl release instead.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Verify that the file "version" contains the correct version
25cf1a301a396c38e8adf52c15f537b80d2483f7jl number (it should have been incremented after the
25cf1a301a396c38e8adf52c15f537b80d2483f7jl previous release)
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Update the lib/*/api files as needed. See the libtool
25cf1a301a396c38e8adf52c15f537b80d2483f7jl info file for information about what the various numbers mean.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - If building from a relese branch, check that any important
25cf1a301a396c38e8adf52c15f537b80d2483f7jl bug fixes made on the mainline since the last release have
25cf1a301a396c38e8adf52c15f537b80d2483f7jl been pulled up. You can do this by comparing the CHANGES
25cf1a301a396c38e8adf52c15f537b80d2483f7jl files using the util/check-pullups.pl script. For example,
25cf1a301a396c38e8adf52c15f537b80d2483f7jl running the script from a mainline tree:
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl perl util/check-pullups.pl CHANGES ../9.1/CHANGES
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl This will list all bug fixes on the mainline that are not
25cf1a301a396c38e8adf52c15f537b80d2483f7jl on the 9.1 release branch.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Check that http://status.isc.org/bind9/bind9.html shows
25cf1a301a396c38e8adf52c15f537b80d2483f7jl a clean build and test status for all supported systems.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Check that running "make all_tests" in bin/tests does not
25cf1a301a396c38e8adf52c15f537b80d2483f7jl produce compile errors.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Regenerate the documentation by running "make man" (mainline)
25cf1a301a396c38e8adf52c15f537b80d2483f7jl or by running genhtml.sh in doc/arm (9.1 release branch)
25cf1a301a396c38e8adf52c15f537b80d2483f7jl and commit it. Note that not all machines have the
25cf1a301a396c38e8adf52c15f537b80d2483f7jl necessary XML tools, but at least trebuchet, cuba,
25cf1a301a396c38e8adf52c15f537b80d2483f7jl and Scanner's machine do.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Verify that the documents in doc/misc are up-to-date.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Update the copyrights. According to tale:
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl Go to the root of the source tree.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl The scripts need to be run from there; they reference the util
25cf1a301a396c38e8adf52c15f537b80d2483f7jl subdirectory internally.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ make distclean
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... [I prefer to check out a fresh source tree --gson]
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ perl util/merge_copyrights
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ diff util/copyrights util/newcopyrights
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... examine output, particularly any files with the "?" type, and
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... then edit util/newcopyrights if necessary
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ mv util/newcopyrights util/copyrights
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cvs ci -m'merge_copyrights' util/copyrights
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ perl util/update_copyrights < util/copyrights
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cvs diff
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... examine output, edit as necessary. mail me about anything that
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... the script should have been able to do itself. :-)
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cvs ci -m'update_copyrights'
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Announce a CVS freeze if doing a beta release from the mainline,
25cf1a301a396c38e8adf52c15f537b80d2483f7jl or stop doing pullups if building from a release branch.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Run util/altbuild.sh. This is to make sure that
25cf1a301a396c38e8adf52c15f537b80d2483f7jl builds using libtool, separate source/object directories, and other
25cf1a301a396c38e8adf52c15f537b80d2483f7jl obscure build options work. This script may need some hacking if run
25cf1a301a396c38e8adf52c15f537b80d2483f7jl on anything other than NetBSD. Save the output (it's big) and look
25cf1a301a396c38e8adf52c15f537b80d2483f7jl for error and warning messages.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl cd $top_of_mainline_tree
25cf1a301a396c38e8adf52c15f537b80d2483f7jl sh util/altbuild.sh v9_0
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl or
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl cd $top_of_9_1_tree
25cf1a301a396c38e8adf52c15f537b80d2483f7jl sh util/altbuild.sh v9_1
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - If you can (= your system is similar enough to the one Tale is using),
25cf1a301a396c38e8adf52c15f537b80d2483f7jl check the header files for cruft by running the command
25cf1a301a396c38e8adf52c15f537b80d2483f7jl [ This step is quite imperfect and should probably be skipped
25cf1a301a396c38e8adf52c15f537b80d2483f7jl for now -- Tale ]
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl find lib -name '*.h' -print | xargs perl util/check-includes.pl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Ensure that the JPNIC patch applies cleanly:
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl If you don't have the "iconv" library, you need to get it from
25cf1a301a396c38e8adf52c15f537b80d2483f7jl http://clisp.cons.org/~haible/packages-libiconv.html and install it.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ sh util/sanitize_all.sh
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ egrep Hunk patch.out
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl All hunks should have applied successfully with no offset or fuzz.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl If all succeeded but some were offset or had fuzz, the patch will be
25cf1a301a396c38e8adf52c15f537b80d2483f7jl regenerated at the end of this stage.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cd contrib/idn/mdnkit
25cf1a301a396c38e8adf52c15f537b80d2483f7jl [ Sample on netbsd ... ]
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ make
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cd ../../.. ; : cd back to top level
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cp configure configure.orig
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ autoconf
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ ./configure
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ make
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... should cleanly compile
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ make distclean
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ rm -rf /tmp/mdn
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ mkdir -p /tmp/mdn/{lib,include}
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ mdn=`pwd`/contrib/idn/mdnkit
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cp -r $mdn/include/mdn /tmp/mdn/include
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
25cf1a301a396c38e8adf52c15f537b80d2483f7jl ... should cleanly compile
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl [ Some tests will be added to bin/tests/system to validate operation. ]
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl Generate a fresh copy of the diffs:
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ patchd=$mdn/patch/bind9
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
25cf1a301a396c38e8adf52c15f537b80d2483f7jl while read i; do
25cf1a301a396c38e8adf52c15f537b80d2483f7jl diff -u2 $i.orig $i
25cf1a301a396c38e8adf52c15f537b80d2483f7jl done > $patchd/patch.most.new
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cvs diff -u2 configure > $patchd/patch.configure
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ mv $patchd/patch.most.new $patchd
25cf1a301a396c38e8adf52c15f537b80d2483f7jl $ cvs ci -ko $patchd/patch.*
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Add a marker line like " --- 9.0.0rc1 released ---"
25cf1a301a396c38e8adf52c15f537b80d2483f7jl to the CHANGES file.
25cf1a301a396c38e8adf52c15f537b80d2483f7jl
25cf1a301a396c38e8adf52c15f537b80d2483f7jl - Tag the CVS source tree with the final tag, as in
"cvs rtag v9_0_0rc1 bind9" (mainline) or
"cvs rtag -r v9_1 v9_1_1rc7 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,
cd <temporary directory>
cvs export -r v9_0_0rc7 bind9
cd bind9
sh configure
make kit
On the 9.1 release branch or mainline, use the
"util/kit.sh" script.
- Build bind9 from the kit on at least one machine
and test it. Run it as a caching name server.
If you can, try resolving some IPv6 addresses and
doing queries over IPv6.
- 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:
pgp -sba bind-9.1.3rc1.tar.gz -u 0x51BAB2ED
chmod 644 bind-9.1.3rc1.tar.gz.asc
- Verify the PGP signature:
pgp bind-9.1.3rc1.tar.gz.asc bind-9.1.3rc1.tar.gz
(Look for the words "Good signature" in the output.)
- Prepare a release announcement based on the previous one.
- Copy the distribution and PGP signature files to the FTP site:
ver=9.1.3rc1
ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
- Download using FTP (or Netscape) using the URLs in the release
announcement and verify the PGP signature again
- Increment the version in the file "version"
- Resume doing pullups
- Announce the release on bind-announce@isc.org