release revision 7736b3327ede0998c44c925b8301de7d61b0f4ab
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsaCopyright (C) 2000, 2001 Internet Software Consortium.
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson$Id: release,v 1.49 2001/10/29 18:40:12 gson Exp $
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid LawrencePreparing a bind9 release
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonHere's a rough outline of the steps to follow in preparing a new bind9
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Update the README file
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Send the new README file to webteam@nominum.com at least 48
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson hours prior to the planned release and ask them to prepare
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson the web pages for the new version. If there have been only
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson minor changes, send context diffs relative to the previous
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson release instead.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Do a "cvs update" to check that all changes have been committed.
aff4e48c82c1de198a627fe7a57fb6f400d6d3c1Andreas Gustafsson - Verify that the file "version" contains the correct version
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson number (it should have been incremented after the
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson previous release)
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Before creating a new release branch, update the lib/*/api files
b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0Brian Wellington as needed. See the libtool info file for information about what
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson 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.2/CHANGES
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews This will list all bug fixes on the mainline that are not
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews on the 9.2 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/9.2)
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. Commit any files that were
b976f9c60a09f4a098852d0653ad5df6842557a7Andreas Gustafsson - Verify that the documents in doc/misc are up-to-date.
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas 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
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas 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
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas 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 an alpha or beta release from
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson the mainline, or stop doing pullups if building from a release branch.
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Run util/altbuild.sh. This is to make sure that
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson builds using libtool, separate source/object directories, and other
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson obscure build options work. This script may need some hacking if run
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas 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
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson Alteratively, you can do this after building the kit, by giving
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson the kit .tar.gz file as an argument to altbuild.sh instad of
6af37648dd5e0cb407cbef1fed5255dd874e61efAndreas Gustafsson - If you can (= your system is similar enough to the one Tale is using),
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence check the header files for cruft by running the command
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson [ This step is quite imperfect and should probably be skipped
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence for now -- Tale ]
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson find lib -name '*.h' -print | xargs perl util/check-includes.pl
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Ensure that the JPNIC patch applies cleanly:
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence If you don't have the "iconv" library, you need to get it from
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson http://clisp.cons.org/~haible/packages-libiconv.html and install it.
3494f301f7d3897a56350010005a5758aad32711Rob Austein $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein All hunks should have applied successfully with no offset or fuzz.
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein If all succeeded but some were offset or had fuzz, the patch will be
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein 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
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein $ ./configure
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein ... should cleanly compile
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein $ make distclean
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein $ mkdir -p /tmp/mdn/{lib,include}
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12Mark Andrews $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
3494f301f7d3897a56350010005a5758aad32711Rob Austein ... should cleanly compile
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein [ Some tests will be added to bin/tests/system to validate operation. ]
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence Generate a fresh copy of the diffs:
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence while read i; do
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ cvs diff -u2 configure > $patchd/patch.configure
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews $ cvs ci -ko $patchd/patch.*
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews - Add a marker line like " --- 9.0.0rc8 released ---"
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews to the CHANGES file.
1e730144b4cbb0767510f5f6adef6666bf861bbbMark Andrews - Tag the CVS source tree with the final tag, as in
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence "cvs rtag v9_0_0rc1 bind9" (mainline) or
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence "cvs rtag -r v9_2 v9_2_0rc8 bind9" (release branch).
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence - Build the release kit. This procedure differs
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence between the 9.0 release branch and later versions.
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence On the 9.0 release branch,
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein cd <temporary directory>
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein cvs export -r v9_0_0rc8 bind9
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein sh configure
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein On the 9.[1-2] release branch or mainline, use the
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein - Build bind9 from the kit on at least one machine
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein and test it. Run it as a caching name server.
818bb50f16abdb79ada224cd910d500d5fd71278Rob Austein If you can, try resolving some IPv6 addresses and
2984f8f7bf213642e47affe710851ff0d6580083Mark Andrews doing queries over IPv6.
2984f8f7bf213642e47affe710851ff0d6580083Mark Andrews - If problems are found at this stage, fix them, move the
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence release tag up using "rtag -F", and respin the kit.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Sign the distribution files with the ISC signing PGP key
f5eb48652c7ec98514256b5b6e6fd7cbc22b1916Andreas Gustafsson and fix the permissions on the signature file:
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson pgp -sba bind-9.2.0rc8.tar.gz -u 0x51BAB2ED
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Verify the PGP signature:
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson pgp bind-9.2.0rc8.tar.gz.asc bind-9.2.0rc8.tar.gz
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson (Look for the words "Good signature" in the output.)
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Prepare a release announcement based on the previous one.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Copy the distribution and PGP signature files to the FTP site:
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
d5a0b9c15c0a81a982fd7375a195f368c30a47b9Andreas Gustafsson isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
d5a0b9c15c0a81a982fd7375a195f368c30a47b9Andreas Gustafsson - If there is a companion binary kit for NT, sign it and release it:
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson scp shell.nominum.com:/udir/mayer/BIND$ver.zip .
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson pgp -sba BIND$ver.zip -u 0x51BAB2ED
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$ver
b1e7bb6aef7f9c559a2b42d8fcc82001d8c83b21Andreas Gustafsson - Download using FTP (or a web browser) 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