release revision 08bed4d70afbae446384fef4c92f005fb2103cee
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyCopyright (C) 2000, 2001 Internet Software Consortium.
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark AndrewsSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
1633838b8255282d10af15c5c84cee5a51466712Bob Halley$Id: release,v 1.45 2001/10/02 17:20:43 gson Exp $
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyPreparing a bind9 release
15a44745412679c30a6d022733925af70a38b715David LawrenceHere's a rough outline of the steps to follow in preparing a new bind9
15a44745412679c30a6d022733925af70a38b715David Lawrence - Update the README file
15a44745412679c30a6d022733925af70a38b715David Lawrence - Send the new README file to webteam@nominum.com at least 48
15a44745412679c30a6d022733925af70a38b715David Lawrence hours prior to the planned release and ask them to prepare
15a44745412679c30a6d022733925af70a38b715David Lawrence the web pages for the new version. If there have been only
1633838b8255282d10af15c5c84cee5a51466712Bob Halley minor changes, send context diffs relative to the previous
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley release instead.
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence - Do a "cvs update" to check that all changes have been committed.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley - Verify that the file "version" contains the correct version
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley number (it should have been incremented after the
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley previous release)
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley - Update the lib/*/api files as needed. See the libtool
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley info file for information about what the various numbers mean.
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence - If building from a release branch, check that any important
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence bug fixes made on the mainline since the last release have
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence been pulled up. You can do this by comparing the CHANGES
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence files using the util/check-pullups.pl script. For example,
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence running the script from a mainline tree:
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence perl util/check-pullups.pl CHANGES ../9.2/CHANGES
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley This will list all bug fixes on the mainline that are not
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley on the 9.2 release branch.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Check that http://status.isc.org/bind9/bind9.html
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington shows a clean build and test status for all supported
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews systems and that the tests are actually being run on the
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews version being released (the version can be found in the
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews page behind the "Source tar build" link).
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Check that running "make all_tests" in bin/tests does not
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington produce compile errors.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Regenerate the documentation by running "make man" (mainline/9.2)
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington or by running genhtml.sh in doc/arm (9.1 release branch)
bcff3198111e329e89cde7dac9d432b002477d80Mark Andrews and commit it. Note that not all machines have the
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington necessary XML tools, but at least trebuchet, cuba,
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington and Scanner's machine do.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Verify that the documents in doc/misc are up-to-date.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Update the copyrights. According to tale:
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley Go to the root of the source tree.
84cb41f729e2a8526300dd7a6cffaa66da5cf6cdMark Andrews The scripts need to be run from there; they reference the util
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington subdirectory internally.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington $ make distclean
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington ... [I prefer to check out a fresh source tree --gson]
618e871c2eb80021673bedf083496ccd1bf65cd0Brian Wellington ... examine output, particularly any files with the "?" type, and
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington ... then edit util/newcopyrights if necessary
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington $ cvs ci -m'merge_copyrights' util/copyrights
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington $ perl util/update_copyrights < util/copyrights
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington ... examine output, edit as necessary. mail me about anything that
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington ... the script should have been able to do itself. :-)
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington $ cvs ci -m'update_copyrights'
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Announce a CVS freeze if doing an alpha or beta release from
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley the mainline, or stop doing pullups if building from a release branch.
b55c30f2de6e1baaa3a9ba69b92f428f2c255ac3Mark Andrews - Run util/altbuild.sh. This is to make sure that
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley builds using libtool, separate source/object directories, and other
308c7ad5f68301d19f023af616f62f3e7cbce632Andreas Gustafsson obscure build options work. This script may need some hacking if run
04b8111f2137a9cf9b0b71228f76b3e40ffa1173Brian Wellington on anything other than NetBSD. Save the output (it's big) and look
04b8111f2137a9cf9b0b71228f76b3e40ffa1173Brian Wellington for error and warning messages.
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington cd $top_of_mainline_tree
8224be5129daebea8f0f5e8be5f925679ec893f1Brian Wellington cd $top_of_9_1_tree
63d1ef9e771b748ca9bf241dfc1f07d3730203faBob Halley Alteratively, you can do this after building the kit, by giving
659175b7d430afe13b439e499442a964e2c9110fMark Andrews the kit .tar.gz file as an argument to altbuild.sh instad of
cd02757774252fe5b92dbd59a24b34721fb49ff4Bob Halley the CVS tag.
7b4dcbb89b71b17f5c16ca19a0e705e09509f063Bob Halley - If you can (= your system is similar enough to the one Tale is using),
73af6575e00f8cf4942abce177f435797b9cfe41Brian Wellington check the header files for cruft by running the command
322b0fb39dd1538c9f5021cd2f54d4c12684ecdbBrian Wellington [ This step is quite imperfect and should probably be skipped
3864eb0e9a73148ac744893b5367169761184db5Mark Andrews for now -- Tale ]
afbc02482008c58af2c98000209165f6880835f7Mark Andrews find lib -name '*.h' -print | xargs perl util/check-includes.pl
93d6dfaf66258337985427c86181f01fc51f0bb4Mark Andrews - Ensure that the JPNIC patch applies cleanly:
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews If you don't have the "iconv" library, you need to get it from
6850cdd4497424c9d42ade487edfde9fb9a47de9Brian Wellington http://clisp.cons.org/~haible/packages-libiconv.html and install it.
b20ee662a7c847c9ef7b96ab9e5e34543efe5c0dMark Andrews $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
6a56be50dd11702cb65347a57894ffd96a7e3501Andreas Gustafsson All hunks should have applied successfully with no offset or fuzz.
1275a72e8db349ce249c84804b2b4861d33d4db7Brian Wellington If all succeeded but some were offset or had fuzz, the patch will be
15af30dfc1c54a02d252dcf4c6f3b8759eaf0327Bob Halley regenerated at the end of this stage.
a93cf7e83be621d3d68f51e37121a47a70a6757bMark Andrews [ Sample on netbsd ... ]
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
a9ef4854464fcc56d95f72331b6e09e9563bb5f3Andreas Gustafsson $ cd ../../.. ; : cd back to top level
ff1b064f5e2bf19c8e25f8927d23df5714e666edMark Andrews $ ./configure
4b171ebd702d72200a4d7609f11c5f79d6b6f964Brian Wellington ... should cleanly compile
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews $ make distclean
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews $ mkdir -p /tmp/mdn/{lib,include}
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
c86eed4bdecad9df12f992f9d743dfee3a6c5bdcMark Andrews $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
421e4cf66e4cba0b0751a34a9c027e39fe0474f9Mark Andrews ... should cleanly compile
182a34004c7c48e2c1626f3ce7e787f413955126Mark Andrews [ Some tests will be added to bin/tests/system to validate operation. ]
182a34004c7c48e2c1626f3ce7e787f413955126Mark Andrews Generate a fresh copy of the diffs:
894a2f61c9e3e51463bf21957c003d7c5636bdc5David Lawrence $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley while read i; do
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley diff -u2 $i.orig $i
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ cvs diff -u2 configure > $patchd/patch.configure
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ cvs ci -ko $patchd/patch.*
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Add a marker line like " --- 9.0.0rc1 released ---"
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley to the CHANGES file.
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Tag the CVS source tree with the final tag, as in
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley "cvs rtag v9_0_0rc1 bind9" (mainline) or
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley "cvs rtag -r v9_1 v9_1_1rc7 bind9" (release branch).
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Build the release kit. This procedure differs
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley between the 9.0 release branch and later versions.
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley On the 9.0 release branch,
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington cd <temporary directory>
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley cvs export -r v9_0_0rc7 bind9
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley sh configure
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence On the 9.[1-2] release branch or mainline, use the
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence - Build bind9 from the kit on at least one machine
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence and test it. Run it as a caching name server.
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence If you can, try resolving some IPv6 addresses and
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence doing queries over IPv6.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley - If problems are found at this stage, fix them, move the
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley release tag up using "rtag -F", and respin the kit.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley - Sign the distribution files with the ISC signing PGP key
pgp -sba bind-9.2.0rc2.tar.gz -u 0x51BAB2ED
chmod 644 bind-9.2.0rc2.tar.gz.asc