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