release revision 2984f8f7bf213642e47affe710851ff0d6580083
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyCopyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark AndrewsCopyright (C) 2000-2003 Internet Software Consortium.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David LawrenceSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews$Id: release,v 1.62 2004/08/18 00:39:35 marka Exp $
1633838b8255282d10af15c5c84cee5a51466712Bob HalleyPreparing a bind9 release
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob HalleyHere's a rough outline of the steps to follow in preparing a new bind9
29747dfe5e073a299b3681e01f5c55540f8bfed7Mark Andrews - Update the README file
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley - Send the new README file to webteam@nominum.com at least 48
e4e071ae12aee942fefc2c0a3280e402938669deBob Halley hours prior to the planned release and ask them to prepare
904a5734375869ffb504ed8cde6b68cafadb6d64Bob Halley the web pages for the new version. If there have been only
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley minor changes, send context diffs relative to the previous
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley release instead.
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence - Do a "cvs update" to check that all changes have been committed.
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence - Verify that the file "version" contains the correct version
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence number (it should have been incremented after the
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence 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
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley files using the util/check-pullups.pl script. For example,
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington running the script from a mainline tree:
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews perl util/check-pullups.pl CHANGES ../9.2/CHANGES ../9.2/EXCLUDED
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews This will list all bug fixes on the mainline that are not
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews on the 9.2 release branch.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Before creating a new release branch, update the lib/*/api files
b6309ed962c4988a314d61742c4fbc4935467d68Mark Andrews as needed. See the libtool info file for information about what
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington the various numbers mean.
bcff3198111e329e89cde7dac9d432b002477d80Mark Andrews - Check that http://status.isc.org/bind9/bind9.html
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington shows a clean build and test status for all supported
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington systems and that the tests are actually being run on the
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington version being released (the version can be found in the
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington 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.
84cb41f729e2a8526300dd7a6cffaa66da5cf6cdMark Andrews - Regenerate the documentation by running "make man" (mainline/9.2)
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington 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
618e871c2eb80021673bedf083496ccd1bf65cd0Brian Wellington - Verify that the documents in doc/misc are up-to-date.
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - 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]
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley ... examine output, particularly any files with the "?" type, and
b55c30f2de6e1baaa3a9ba69b92f428f2c255ac3Mark Andrews ... then edit util/newcopyrights if necessary
308c7ad5f68301d19f023af616f62f3e7cbce632Andreas Gustafsson $ cvs ci -m'merge_copyrights' util/copyrights
04b8111f2137a9cf9b0b71228f76b3e40ffa1173Brian Wellington $ perl util/update_copyrights < util/copyrights
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington ... examine output, edit as necessary. mail me about anything that
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington ... the script should have been able to do itself. :-)
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington $ cvs ci -m'update_copyrights'
ccad3c9ecbe8a1060ff7b407a318ccd592de536eBrian Wellington - Announce a CVS freeze if doing an alpha or beta release from
8224be5129daebea8f0f5e8be5f925679ec893f1Brian Wellington the mainline, or stop doing pullups if building from a release branch.
a413f94248ceed48a6b7aaa2fa1d2401fb8b9f30Brian Wellington - Run util/altbuild.sh. This is to make sure that
d14b749789121d9d502fa1348e9e73270e9b039fBob Halley builds using libtool, separate source/object directories, and other
63d1ef9e771b748ca9bf241dfc1f07d3730203faBob Halley obscure build options work. This script may need some hacking if run
659175b7d430afe13b439e499442a964e2c9110fMark Andrews on anything other than NetBSD. Save the output (it's big) and look
cd02757774252fe5b92dbd59a24b34721fb49ff4Bob Halley for error and warning messages.
7b4dcbb89b71b17f5c16ca19a0e705e09509f063Bob Halley cd $top_of_mainline_tree
afbc02482008c58af2c98000209165f6880835f7Mark Andrews cd $top_of_9_1_tree
2ee24549b3dddd4046ee14257e1207cf2e34f29cBrian Wellington Alteratively, you can do this after building the kit, by giving
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews the kit .tar.gz file as an argument to altbuild.sh instad of
20a313a4581e7f85fb2ce37430a146b3538da841Mark Andrews - If you can (= your system is similar enough to the one Tale is using),
b20ee662a7c847c9ef7b96ab9e5e34543efe5c0dMark Andrews check the header files for cruft by running the command
b55c30f2de6e1baaa3a9ba69b92f428f2c255ac3Mark Andrews [ This step is quite imperfect and should probably be skipped
e21d199dca95aff5d50f133d6b064309e209af00Brian Wellington for now -- Tale ]
1275a72e8db349ce249c84804b2b4861d33d4db7Brian Wellington find lib -name '*.h' -print | xargs perl util/check-includes.pl
15af30dfc1c54a02d252dcf4c6f3b8759eaf0327Bob Halley - Ensure that the JPNIC patch applies cleanly:
a93cf7e83be621d3d68f51e37121a47a70a6757bMark Andrews If you don't have the "iconv" library, you need to get it from
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews http://clisp.cons.org/~haible/packages-libiconv.html and install it.
a9ef4854464fcc56d95f72331b6e09e9563bb5f3Andreas Gustafsson If you're reading this part of these instructions in order to generate
2c64908ae0d5b5a1cfead295d7526e7be550d3d3Mark Andrews a version of the patch for a new release, you'll need to pick a
01446841be2b73f9a2ead74056df2d5342414041Andreas Gustafsson version of the patch from some prior release to use as a starting
ff1b064f5e2bf19c8e25f8927d23df5714e666edMark Andrews point. In general, the patch corresponding to the most recent
b6279d0b4b19f041b29775e637074e09f38e5e11Brian Wellington prior release will be the best starting point.
4b171ebd702d72200a4d7609f11c5f79d6b6f964Brian Wellington $ patch -p0 < contrib/idn/idnkit-1.0-src/patch/bind9/bind-9.x.y-patch \
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews All hunks should have applied successfully with no offset or fuzz.
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews If all succeeded but some were offset or had fuzz, the patch will be
5bd76af084edfdcd1cb4db9453ac781d32dde6f7Mark Andrews regenerated at the end of this stage.
c86eed4bdecad9df12f992f9d743dfee3a6c5bdcMark Andrews Note that two of the files which the patch attempts to update
421e4cf66e4cba0b0751a34a9c027e39fe0474f9Mark Andrews (configure and config.h.in) are generated automatically. When
8b5de9701428e2b5eb50aba96af23dc1186124ddMark Andrews generating a new patch, the old version of the patch may not apply
182a34004c7c48e2c1626f3ce7e787f413955126Mark Andrews correctly to these files, but that's ok so long as the patch does
35541328a8c18ba1f984300dfe30ec8713c90031Mark Andrews apply correctly to the source files from which these files are
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews generated. The steps below will regenerate these files.
8d414d155953f89a4eff40f16878438a8c9228f3Mark Andrews [ Sample on netbsd ... ]
6fac7ff1f9ec9c3873d3b55c5079fa79aba1f146Mark Andrews $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
9b80f3a7c739a99b498a37a711a51b6a88df3a78Mark Andrews [ Sample on freebsd -- formerly used giconv, now uses iconv ]
6098d364b690cb9dabf96e9664c4689c8559bd2eMark Andrews ./configure --with-iconv-include=/usr/local/include \
77b8f88f144928eddcca144c348d6ef53e7d5c43Evan Hunt '--with-iconv=-L/usr/local/lib -liconv'
7cb226ec344f3996906c015ef58749c5565b2a05Evan Hunt $ cd ../../.. ; : cd back to top level
3a6d62c59f73d024d1b2ba2ac94d7600530166ffMark Andrews $ autoheader ; : regenerate config.h.in
0cfb24736841b3e98bb25853229a0efabab88bddEvan Hunt $ autoconf ; : regenerate configure
598b502695802c3d4e23316b85368e54f39f5cabMark Andrews $ ./configure
ce67023ae3ad39a77da5361d0187ab6f3f0219cbMark Andrews ... should cleanly compile
b66b333f59cf51ef87f973084a5023acd9317fb2Evan Hunt $ make distclean
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ cp -r $idn/include/mdn $idn/include/idn /tmp/idn/include
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ ./configure --with-idn=/tmp/idn --with-iconv="-L/usr/local/lib -liconv"
894a2f61c9e3e51463bf21957c003d7c5636bdc5David Lawrence $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/idn/lib:/usr/lib make
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley ... should cleanly compile
894a2f61c9e3e51463bf21957c003d7c5636bdc5David Lawrence [ Some tests will be added to bin/tests/system to validate operation. ]
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley Generate a fresh copy of the diffs:
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ files=`awk '/^Index:/ && NF == 2 {print $2}' $patchd/$old_patch`
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ missing=`cvs log -R $files 2>&1 >/dev/null | \
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley awk '/^cvs (log|server): nothing known about/ {print $6}'`
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ sed '/^Index:/,$d' $patchd/$old_patch > $patchd/$new_patch
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ for i in $missing; \
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley do echo Index: $i; diff -u /dev/null $i; done >> $patchd/$new_patch
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt $ cvs -f diff -U 2 -N $files >> $patchd/$new_patch
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt $ cvs add -ko $patchd/$new_patch
9e804040a29b9c3066c8471b43835f30707039b7Evan Hunt $ cvs ci $patchd/$new_patch
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley $ cvs update -C
125d72976ab6b8fa6629a5ace276a86e9fef91acBrian Wellington - Add a marker line like " --- 9.0.0rc10 released ---"
25e43e68b7431d5e4ff8b5427108cd7f5f9bcf3eBob Halley to the CHANGES file.
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley - Tag the CVS source tree with the final tag, as in
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence "cvs rtag v9_0_0rc1 bind9" (mainline) or
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence "cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence - Build the release kit. This procedure differs
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence between the 9.0 release branch and later versions.
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence On the 9.0 release branch,
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence cd <temporary directory>
09f22ac5b09e70bc526015f37168ba33e21ea91fDavid Lawrence cvs export -r v9_0_0rc10 bind9
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley sh configure
c50fd34a4e0e6978f8ca5f6f3ad8545549c3cfeeBob Halley On the 9.[1-2] release branch or mainline, use the
"util/kit.sh" script.
ssh phred.isc.org
gunzip <bind-$ver.tar.gz | tar xfv -
/var/named/keep-running ns-ext &
gunzip <bind-$ver.tar.gz | tar xfv -
/var/named/keep-running9 rc-res1 &
/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