release revision 0e873a120279dbae16ec3773d7c67d473602b7c6
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark AndrewsCopyright (C) 2000, 2001 Internet Software Consortium.
816e576f77e2c46df3e3d97d65822aa8aded7c4bDavid LawrenceSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews$Id: release,v 1.36 2001/06/08 23:45:50 gson Exp $
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonPreparing a bind9 release
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonHere's a rough outline of the steps to follow in preparing a new bind9
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Do a "cvs update" to check that all changes have been committed.
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Update the README file
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson - Send the new README file to webteam@nominum.com at least 48
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson hours prior to the planned release and ask them to prepare
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson the web pages for the new version. If there have been only
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson minor changes, send context diffs relative to the previous
aff4e48c82c1de198a627fe7a57fb6f400d6d3c1Andreas Gustafsson release instead.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Verify that the file "version" contains the correct version
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson number (it should have been incremented after the
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson previous release)
b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0Brian Wellington - Update the lib/*/api files as needed. See the libtool
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson info file for information about what the various numbers mean.
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson - If building from a release branch, check that any important
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson bug fixes made on the mainline since the last release have
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson been pulled up. You can do this by comparing the CHANGES
bfe7da9c6b20573c2da09ad2e7cac0a54c8cd47bMark Andrews files using the util/check-pullups.pl script. For example,
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson running the script from a mainline tree:
c5b14e2676e8832de77bf63b8f58890d13a6c1e2Andreas Gustafsson perl util/check-pullups.pl CHANGES ../9.1/CHANGES
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews This will list all bug fixes on the mainline that are not
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews on the 9.1 release branch.
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews - Check that http://status.isc.org/bind9/bind9.html
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson shows a clean build and test status for all supported
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson systems and that the tests are actually being run on the
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson version being released (the version can be found in the
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson page behind the "Source tar build" link).
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Check that running "make all_tests" in bin/tests does not
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson produce compile errors.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Regenerate the documentation by running "make man" (mainline)
c5b14e2676e8832de77bf63b8f58890d13a6c1e2Andreas Gustafsson or by running genhtml.sh in doc/arm (9.1 release branch)
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson and commit it. Note that not all machines have the
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson necessary XML tools, but at least trebuchet, cuba,
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson and Scanner's machine do.
7f800a6b10b0172e36e6fef855f48109717b6a2cAndreas Gustafsson - Verify that the documents in doc/misc are up-to-date.
a1bb4b0e4f71fb2878050905087d279cfa87b786Andreas Gustafsson - Update the copyrights. According to tale:
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson Go to the root of the source tree.
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson The scripts need to be run from there; they reference the util
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson subdirectory internally.
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ make distclean
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... [I prefer to check out a fresh source tree --gson]
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson $ diff util/copyrights util/newcopyrights
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson ... examine output, particularly any files with the "?" type, and
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... then edit util/newcopyrights if necessary
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ cvs ci -m'merge_copyrights' util/copyrights
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ perl util/update_copyrights < util/copyrights
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson ... examine output, edit as necessary. mail me about anything that
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... the script should have been able to do itself. :-)
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ cvs ci -m'update_copyrights'
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson - Announce a CVS freeze if doing a beta release from the mainline,
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson or stop doing pullups if building from a release branch.
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson - Run util/altbuild.sh. This is to make sure that
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson builds using libtool, separate source/object directories, and other
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson obscure build options work. This script may need some hacking if run
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson on anything other than NetBSD. Save the output (it's big) and look
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson for error and warning messages.
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson cd $top_of_mainline_tree
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson cd $top_of_9_1_tree
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson - If you can (= your system is similar enough to the one Tale is using),
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson check the header files for cruft by running the command
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson [ This step is quite imperfect and should probably be skipped
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson for now -- Tale ]
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson find lib -name '*.h' -print | xargs perl util/check-includes.pl
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Ensure that the JPNIC patch applies cleanly:
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence If you don't have the "iconv" library, you need to get it from
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson http://clisp.cons.org/~haible/packages-libiconv.html and install it.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson All hunks should have applied successfully with no offset or fuzz.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence If all succeeded but some were offset or had fuzz, the patch will be
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence regenerated at the end of this stage.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ Sample on netbsd ... ]
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ cd ../../.. ; : cd back to top level
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews ... should cleanly compile
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews $ make distclean
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews $ mkdir -p /tmp/mdn/{lib,include}
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence ... should cleanly compile
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ Some tests will be added to bin/tests/system to validate operation. ]
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews Generate a fresh copy of the diffs:
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews while read i; do
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ cvs diff -u2 configure > $patchd/patch.configure
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ cvs ci -ko $patchd/patch.*
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence - Add a marker line like " --- 9.0.0rc1 released ---"
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence to the CHANGES file.
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence - Tag the CVS source tree with the final tag, as in
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence "cvs rtag v9_0_0rc1 bind9" (mainline) or
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence "cvs rtag -r v9_1 v9_1_1rc7 bind9" (release branch).
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence - Build the release kit. This procedure differs
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews between the 9.0 release branch and later versions.
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence On the 9.0 release branch,
fdf2eaf21bf4530114049f3c77421a56d585aabcAndreas Gustafsson cd <temporary directory>
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson cvs export -r v9_0_0rc7 bind9
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson On the 9.1 release branch or mainline, use the
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson - Build bind9 from the kit on at least one machine
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson and test it. Run it as a caching name server.
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson If you can, try resolving some IPv6 addresses and
fdf2eaf21bf4530114049f3c77421a56d585aabcAndreas Gustafsson doing queries over IPv6.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - If problems are found at this stage, fix them, move the
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson release tag up using "rtag -F", and respin the kit.
c5b14e2676e8832de77bf63b8f58890d13a6c1e2Andreas Gustafsson - Sign the distribution files with the ISC signing PGP key
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson and fix the permissions on the signature file:
d5a0b9c15c0a81a982fd7375a195f368c30a47b9Andreas Gustafsson pgp -sba bind-9.1.3rc1.tar.gz -u 0x51BAB2ED
d5a0b9c15c0a81a982fd7375a195f368c30a47b9Andreas Gustafsson - Verify the PGP signature:
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson pgp bind-9.1.3rc1.tar.gz.asc bind-9.1.3rc1.tar.gz
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson (Look for the words "Good signature" in the output.)
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Prepare a release announcement based on the previous one.
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Copy the distribution and PGP signature files to the FTP site:
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Download using FTP (or Netscape) using the URLs in the release
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson announcement and verify the PGP signature again
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Increment the version in the file "version"
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Resume doing pullups
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Announce the release on bind-announce@isc.org