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