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