release revision f11c81f4fe26ae9f1ef990257b3b2cac6ab5be12
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyCopyright (C) 2000-2002 Internet Software Consortium.
012142bbe07a89506d30fef12d2a4736a511567dTinderbox UserSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence$Id: release,v 1.55 2002/05/28 00:25:12 marka Exp $
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyPreparing a bind9 release
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David LawrenceHere's a rough outline of the steps to follow in preparing a new bind9
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews - Update the README file
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews - Send the new README file to webteam@nominum.com at least 48
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews hours prior to the planned release and ask them to prepare
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews 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.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley - Do a "cvs update" to check that all changes have been committed.
29747dfe5e073a299b3681e01f5c55540f8bfed7Mark Andrews - Verify that the file "version" contains the correct version
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein number (it should have been incremented after the
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley previous release)
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley - If building from a release branch, check that any important
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley bug fixes made on the mainline since the last release have
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley 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:
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence perl util/check-pullups.pl CHANGES ../9.2/CHANGES ../9.2/EXCLUDED
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence This will list all bug fixes on the mainline that are not
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence on the 9.2 release branch.
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Before creating a new release branch, update the lib/*/api files
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley as needed. See the libtool info file for information about what
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley the various numbers mean.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Check that http://status.isc.org/bind9/bind9.html
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews 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
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews produce compile errors.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Regenerate the documentation by running "make man" (mainline/9.2)
bcff3198111e329e89cde7dac9d432b002477d80Mark Andrews or by running genhtml.sh in doc/arm (9.1 release branch)
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington 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. Commit any files that were
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Verify that the documents in doc/misc are up-to-date.
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Update the copyrights. According to tale:
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington Go to the root of the source tree.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington 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]
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian 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'
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Announce a CVS freeze if doing an alpha or beta release from
b55c30f2de6e1baaa3a9ba69b92f428f2c255ac3Mark Andrews the mainline, or stop doing pullups if building from a release branch.
308c7ad5f68301d19f023af616f62f3e7cbce632Andreas Gustafsson - Run util/altbuild.sh. This is to make sure that
04b8111f2137a9cf9b0b71228f76b3e40ffa1173Brian Wellington builds using libtool, separate source/object directories, and other
04b8111f2137a9cf9b0b71228f76b3e40ffa1173Brian Wellington obscure build options work. This script may need some hacking if run
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington on anything other than NetBSD. Save the output (it's big) and look
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington for error and warning messages.
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington cd $top_of_mainline_tree
d14b749789121d9d502fa1348e9e73270e9b039fBob Halley cd $top_of_9_1_tree
cd02757774252fe5b92dbd59a24b34721fb49ff4Bob Halley Alteratively, you can do this after building the kit, by giving
cd02757774252fe5b92dbd59a24b34721fb49ff4Bob Halley the kit .tar.gz file as an argument to altbuild.sh instad of
7b4dcbb89b71b17f5c16ca19a0e705e09509f063Bob Halley the CVS tag.
322b0fb39dd1538c9f5021cd2f54d4c12684ecdbBrian Wellington - If you can (= your system is similar enough to the one Tale is using),
3864eb0e9a73148ac744893b5367169761184db5Mark Andrews check the header files for cruft by running the command
f53e43c37f2c978ccec0b49ed829426b213f9933Bob Halley [ This step is quite imperfect and should probably be skipped
afbc02482008c58af2c98000209165f6880835f7Mark Andrews for now -- Tale ]
93d6dfaf66258337985427c86181f01fc51f0bb4Mark Andrews find lib -name '*.h' -print | xargs perl util/check-includes.pl
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews - Ensure that the JPNIC patch applies cleanly:
20a313a4581e7f85fb2ce37430a146b3538da841Mark Andrews If you don't have the "iconv" library, you need to get it from
20a313a4581e7f85fb2ce37430a146b3538da841Mark Andrews http://clisp.cons.org/~haible/packages-libiconv.html and install it.
e21d199dca95aff5d50f133d6b064309e209af00Brian Wellington $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
15af30dfc1c54a02d252dcf4c6f3b8759eaf0327Bob Halley All hunks should have applied successfully with no offset or fuzz.
15af30dfc1c54a02d252dcf4c6f3b8759eaf0327Bob Halley If all succeeded but some were offset or had fuzz, the patch will be
58cbc05eb0b80510182496ad905cd407f3624dbeBrian Wellington regenerated at the end of this stage.
5ea0d11ca45bfd1ea9db8db07f18fbb02f500661Brian Wellington [ Sample on netbsd ... ]
a9ef4854464fcc56d95f72331b6e09e9563bb5f3Andreas Gustafsson $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
01446841be2b73f9a2ead74056df2d5342414041Andreas Gustafsson FreeBSD has giconv.
ff1b064f5e2bf19c8e25f8927d23df5714e666edMark Andrews ./configure --with-iconv-include=/usr/local/include \
b6279d0b4b19f041b29775e637074e09f38e5e11Brian Wellington '--with-iconv=-L/usr/local/lib -lgiconv'
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews $ cd ../../.. ; : cd back to top level
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews $ ./configure
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews ... should cleanly compile
c86eed4bdecad9df12f992f9d743dfee3a6c5bdcMark Andrews $ make distclean
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
d5ad558234adfef1b847b534dd7b4c6302cc5ea3Mark Andrews $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
c5cde9d5a70c921da901a23845e740ccc7a8c4e4Mark Andrews ... should cleanly compile
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews [ Some tests will be added to bin/tests/system to validate operation. ]
9b80f3a7c739a99b498a37a711a51b6a88df3a78Mark Andrews Generate a fresh copy of the diffs:
0cae66577c69c89086cd065bb297690072b471b4Mark Andrews $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
433e06a25cdd92d665abda3e64c2c65f4a3f9b21Mark Andrews while read i; do
7cb226ec344f3996906c015ef58749c5565b2a05Evan Hunt diff -u2 $i.orig $i
0cfb24736841b3e98bb25853229a0efabab88bddEvan Hunt $ cvs diff -u2 configure > $patchd/patch.configure
598b502695802c3d4e23316b85368e54f39f5cabMark Andrews $ cvs ci -ko $patchd/patch.*
b66b333f59cf51ef87f973084a5023acd9317fb2Evan Hunt - Add a marker line like " --- 9.0.0rc10 released ---"
8475bed9de77920f884f1ae296f581efbd1e42f8Mark Andrews to the CHANGES file.
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Tag the CVS source tree with the final tag, as in
8475bed9de77920f884f1ae296f581efbd1e42f8Mark Andrews "cvs rtag v9_0_0rc1 bind9" (mainline) or
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley "cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
894a2f61c9e3e51463bf21957c003d7c5636bdc5David Lawrence - 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,
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley cd <temporary directory>
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley cvs export -r v9_0_0rc10 bind9
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley sh configure
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley On the 9.[1-2] release branch or mainline, use the
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley - Build bind9 from the kit on ns-ext (phred)
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley and ns-int (rc), install it, and let it run for
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley a day keeping an eye on it for any problems.
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt gunzip <bind-$ver.tar.gz | tar xfv -
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley cd bind-$ver
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley sh configure
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley make install
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley ps -elf | grep named
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley # kill both the keep-running script and named itself
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence gunzip <bind-$ver.tar.gz | tar xfv -
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley ps -elf | grep named
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley # kill both keep-running scripts and both named9:s
/var/named/keep-running9 ns-int &
pgp -sba bind-$ver.tar.gz -u 0x51BAB2ED
chmod 644 bind-$ver.tar.gz.asc
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc