release revision fdf2eaf21bf4530114049f3c77421a56d585aabc
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo SirainenaCopyright (C) 2000, 2001 Internet Software Consortium.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo SirainenSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
7586eb9be41bf2de90790ab1c50ba6bfb85402b4Timo Sirainen$Id: release,v 1.50 2001/11/22 00:35:36 gson Exp $
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo SirainenPreparing a bind9 release
56956c0bba7b2bf734699ed198a1b2ad84a494cfTimo SirainenHere's a rough outline of the steps to follow in preparing a new bind9
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Update the README file
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Send the new README file to webteam@nominum.com at least 48
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen hours prior to the planned release and ask them to prepare
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen the web pages for the new version. If there have been only
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen minor changes, send context diffs relative to the previous
31277bf6e9bdfec5c72739a95b6885b52a64deacTimo Sirainen release instead.
2dc23f3416724163cc5d7162c577a8ed9f985fedTimo Sirainen - Do a "cvs update" to check that all changes have been committed.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Verify that the file "version" contains the correct version
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen number (it should have been incremented after the
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen previous release)
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen - Before creating a new release branch, update the lib/*/api files
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen as needed. See the libtool info file for information about what
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen the various numbers mean.
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen - If building from a release branch, check that any important
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen bug fixes made on the mainline since the last release have
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen been pulled up. You can do this by comparing the CHANGES
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen files using the util/check-pullups.pl script. For example,
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen running the script from a mainline tree:
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen perl util/check-pullups.pl CHANGES ../9.2/CHANGES
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen This will list all bug fixes on the mainline that are not
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen on the 9.2 release branch.
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen - Check that http://status.isc.org/bind9/bind9.html
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen shows a clean build and test status for all supported
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen systems and that the tests are actually being run on the
0db42260be85e797aa9909a29b20296996f52e75Timo Sirainen version being released (the version can be found in the
0db42260be85e797aa9909a29b20296996f52e75Timo Sirainen page behind the "Source tar build" link).
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Check that running "make all_tests" in bin/tests does not
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen produce compile errors.
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Regenerate the documentation by running "make man" (mainline/9.2)
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen or by running genhtml.sh in doc/arm (9.1 release branch)
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen and commit it. Note that not all machines have the
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen necessary XML tools, but at least trebuchet, cuba,
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen and Scanner's machine do. Commit any files that were
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Verify that the documents in doc/misc are up-to-date.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Update the copyrights. According to tale:
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen Go to the root of the source tree.
1228c0604b8e21e170bba3e2060331599a378110Timo Sirainen The scripts need to be run from there; they reference the util
51b9807b22a0342064cc6c7583cd229ebe47eb87Timo Sirainen subdirectory internally.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen $ make distclean
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen ... [I prefer to check out a fresh source tree --gson]
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen ... examine output, particularly any files with the "?" type, and
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen ... then edit util/newcopyrights if necessary
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen $ cvs ci -m'merge_copyrights' util/copyrights
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen $ perl util/update_copyrights < util/copyrights
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen ... examine output, edit as necessary. mail me about anything that
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen ... the script should have been able to do itself. :-)
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ cvs ci -m'update_copyrights'
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Announce a CVS freeze if doing an alpha or beta release from
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen the mainline, or stop doing pullups if building from a release branch.
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Run util/altbuild.sh. This is to make sure that
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen builds using libtool, separate source/object directories, and other
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen obscure build options work. This script may need some hacking if run
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen on anything other than NetBSD. Save the output (it's big) and look
9bc29938d8df24e64db865cba3b03d6c6cd95237Timo Sirainen for error and warning messages.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen cd $top_of_mainline_tree
d15b2fc29cc14709a36503d21bfb0488ee6f4006Timo Sirainen cd $top_of_9_1_tree
d15b2fc29cc14709a36503d21bfb0488ee6f4006Timo Sirainen Alteratively, you can do this after building the kit, by giving
d15b2fc29cc14709a36503d21bfb0488ee6f4006Timo Sirainen the kit .tar.gz file as an argument to altbuild.sh instad of
1228c0604b8e21e170bba3e2060331599a378110Timo Sirainen - If you can (= your system is similar enough to the one Tale is using),
31277bf6e9bdfec5c72739a95b6885b52a64deacTimo Sirainen check the header files for cruft by running the command
31277bf6e9bdfec5c72739a95b6885b52a64deacTimo Sirainen [ This step is quite imperfect and should probably be skipped
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen for now -- Tale ]
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen find lib -name '*.h' -print | xargs perl util/check-includes.pl
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Ensure that the JPNIC patch applies cleanly:
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen If you don't have the "iconv" library, you need to get it from
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen http://clisp.cons.org/~haible/packages-libiconv.html and install it.
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen All hunks should have applied successfully with no offset or fuzz.
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen If all succeeded but some were offset or had fuzz, the patch will be
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen regenerated at the end of this stage.
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen [ Sample on netbsd ... ]
51130f00bbd1e119ec042d63c148a78ac06ab85eTimo Sirainen $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
51130f00bbd1e119ec042d63c148a78ac06ab85eTimo Sirainen $ cd ../../.. ; : cd back to top level
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ ./configure
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen ... should cleanly compile
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ make distclean
ce7c2091ca9f19a13c835d1d522832a73f7cfaa0Timo Sirainen $ mkdir -p /tmp/mdn/{lib,include}
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
51130f00bbd1e119ec042d63c148a78ac06ab85eTimo Sirainen ... should cleanly compile
51130f00bbd1e119ec042d63c148a78ac06ab85eTimo Sirainen [ Some tests will be added to bin/tests/system to validate operation. ]
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen Generate a fresh copy of the diffs:
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen while read i; do
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen $ cvs diff -u2 configure > $patchd/patch.configure
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen $ cvs ci -ko $patchd/patch.*
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen - Add a marker line like " --- 9.0.0rc10 released ---"
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen to the CHANGES file.
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen - Tag the CVS source tree with the final tag, as in
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen "cvs rtag v9_0_0rc1 bind9" (mainline) or
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen "cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen - Build the release kit. This procedure differs
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen between the 9.0 release branch and later versions.
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen On the 9.0 release branch,
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen cd <temporary directory>
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen cvs export -r v9_0_0rc10 bind9
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen On the 9.[1-2] release branch or mainline, use the
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen - Build bind9 from the kit on at least one machine
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen and test it. Run it as a caching name server.
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen If you can, try resolving some IPv6 addresses and
f97b503210435b74de3b26cba07315cbc9ea1dfcTimo Sirainen doing queries over IPv6.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - If problems are found at this stage, fix them, move the
e925d6db5ff447811ca9c5825581a6d8d3218958Timo Sirainen release tag up using "rtag -F", and respin the kit.
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Sign the distribution files with the ISC signing PGP key
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen and fix the permissions on the signature file:
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen ver=9.2.0rc10
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen pgp -sba bind-$ver.tar.gz -u 0x51BAB2ED
2b0fe8606fc0d980b63d9150a8f1cadebe0cc6d6Timo Sirainen chmod 644 bind-$ver.tar.gz.asc
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Verify the PGP signature:
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen (Look for the words "Good signature" in the output.)
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - If there is a companion binary kit for NT, sign it and verify the
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen pgp -sba BIND$ver.zip -u 0x51BAB2ED
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen chmod 644 BIND$ver.zip.asc
56956c0bba7b2bf734699ed198a1b2ad84a494cfTimo Sirainen - Prepare a release announcement based on the previous one.
e925d6db5ff447811ca9c5825581a6d8d3218958Timo Sirainen - Copy the distribution and PGP signature files to the FTP site:
e925d6db5ff447811ca9c5825581a6d8d3218958Timo Sirainen ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - If there is a companion binary kit for NT, copy it, too:
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$ver
8e1dbcb9b249c37d00b420705777b103ffa6145dTimo Sirainen - Download using FTP (or a web browser) using the URLs in the release
c5c71245fec4331d6598376f0ff2f3b9d4372cc8Timo Sirainen announcement and verify the PGP signature again
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Ask webteam@nominum.com to publish the updated web pages
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - When the web pages are up, announce the release on
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen bind-announce@isc.org
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Increment the version in the file "version"
90de49eb151c2be7655ce6aef5aa3b58295d5c84Timo Sirainen - Resume doing pullups