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