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