release revision 31f15d225d716df580dd3859908ea2449367513c
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark AndrewsCopyright (C) 2000, 2001 Internet Software Consortium.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan HuntSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
71cef386fae61275b03e203825680b39fedaa8c6Tinderbox User
bef75d63d74f58abc0f834ed271526672777ba29Automatic Updater$Id: release,v 1.47 2001/10/16 21:56:31 gson Exp $
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox UserPreparing a bind9 release
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User
0f66aced2640d964aeb6db41210711ba0640d7f2Evan HuntHere's a rough outline of the steps to follow in preparing a new bind9
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrewsrelease.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Update the README file
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Send the new README file to webteam@nominum.com at least 48
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt hours prior to the planned release and ask them to prepare
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User the web pages for the new version. If there have been only
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt minor changes, send context diffs relative to the previous
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt release instead.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Do a "cvs update" to check that all changes have been committed.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Verify that the file "version" contains the correct version
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt number (it should have been incremented after the
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt previous release)
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Update the lib/*/api files as needed. See the libtool
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt info file for information about what the various numbers mean.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - If building from a release branch, check that any important
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt bug fixes made on the mainline since the last release have
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt been pulled up. You can do this by comparing the CHANGES
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt files using the util/check-pullups.pl script. For example,
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt running the script from a mainline tree:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt perl util/check-pullups.pl CHANGES ../9.2/CHANGES
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User This will list all bug fixes on the mainline that are not
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User on the 9.2 release branch.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Check that http://status.isc.org/bind9/bind9.html
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User shows a clean build and test status for all supported
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt systems and that the tests are actually being run on the
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User version being released (the version can be found in the
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User page behind the "Source tar build" link).
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Check that running "make all_tests" in bin/tests does not
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt produce compile errors.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Regenerate the documentation by running "make man" (mainline/9.2)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User or by running genhtml.sh in doc/arm (9.1 release branch)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User and commit it. Note that not all machines have the
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt necessary XML tools, but at least trebuchet, cuba,
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User and Scanner's machine do.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Verify that the documents in doc/misc are up-to-date.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Update the copyrights. According to tale:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Go to the root of the source tree.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User The scripts need to be run from there; they reference the util
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User subdirectory internally.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ make distclean
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt ... [I prefer to check out a fresh source tree --gson]
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ perl util/merge_copyrights
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ diff util/copyrights util/newcopyrights
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt ... examine output, particularly any files with the "?" type, and
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt ... then edit util/newcopyrights if necessary
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ mv util/newcopyrights util/copyrights
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ cvs ci -m'merge_copyrights' util/copyrights
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ perl util/update_copyrights < util/copyrights
17fdbf542a0db30107b200403c51a72fe62c218dTinderbox User $ cvs diff
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt ... examine output, edit as necessary. mail me about anything that
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt ... the script should have been able to do itself. :-)
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ cvs ci -m'update_copyrights'
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Announce a CVS freeze if doing an alpha or beta release from
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt the mainline, or stop doing pullups if building from a release branch.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Run util/altbuild.sh. This is to make sure that
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt builds using libtool, separate source/object directories, and other
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt obscure build options work. This script may need some hacking if run
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt on anything other than NetBSD. Save the output (it's big) and look
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt for error and warning messages.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cd $top_of_mainline_tree
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User sh util/altbuild.sh v9_0
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User or
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cd $top_of_9_1_tree
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sh util/altbuild.sh v9_1
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt Alteratively, you can do this after building the kit, by giving
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt the kit .tar.gz file as an argument to altbuild.sh instad of
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt the CVS tag.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - If you can (= your system is similar enough to the one Tale is using),
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User check the header files for cruft by running the command
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User [ This step is quite imperfect and should probably be skipped
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User for now -- Tale ]
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User find lib -name '*.h' -print | xargs perl util/check-includes.pl
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt - Ensure that the JPNIC patch applies cleanly:
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt If you don't have the "iconv" library, you need to get it from
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User http://clisp.cons.org/~haible/packages-libiconv.html and install it.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ sh util/sanitize_all.sh
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ egrep Hunk patch.out
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt All hunks should have applied successfully with no offset or fuzz.
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt If all succeeded but some were offset or had fuzz, the patch will be
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt regenerated at the end of this stage.
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $ cd contrib/idn/mdnkit
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt [ Sample on netbsd ... ]
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ make
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ cd ../../.. ; : cd back to top level
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ cp configure configure.orig
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ autoconf
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $ ./configure
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ make
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt ... should cleanly compile
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ make distclean
350e5eecadfc5ee72b11b2cc46828c9a0bcd717cTinderbox User $ rm -rf /tmp/mdn
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ mkdir -p /tmp/mdn/{lib,include}
0f66aced2640d964aeb6db41210711ba0640d7f2Evan Hunt $ mdn=`pwd`/contrib/idn/mdnkit
$ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
$ cp -r $mdn/include/mdn /tmp/mdn/include
$ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
$ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
... should cleanly compile
[ Some tests will be added to bin/tests/system to validate operation. ]
Generate a fresh copy of the diffs:
$ patchd=$mdn/patch/bind9
$ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
while read i; do
diff -u2 $i.orig $i
done > $patchd/patch.most.new
$ cvs diff -u2 configure > $patchd/patch.configure
$ mv $patchd/patch.most.new $patchd
$ cvs ci -ko $patchd/patch.*
- Add a marker line like " --- 9.0.0rc7 released ---"
to the CHANGES file.
- 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_0rc7 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-2] 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.2.0rc7.tar.gz -u 0x51BAB2ED
chmod 644 bind-9.2.0rc7.tar.gz.asc
- Verify the PGP signature:
pgp bind-9.2.0rc7.tar.gz.asc bind-9.2.0rc7.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.2.0rc7
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
- If there is a companion binary kit for NT, sign it and release it:
scp shell.nominum.com:/udir/mayer/BIND$ver.zip .
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc
pgp BIND$ver.zip.asc BIND$ver.zip
ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
scp BIND$ver.zip BIND$ver.zip.asc \
isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$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