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