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