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