release revision c33679b400a69afeeb719addc390a3134f61ecfc
c2a5a4a3cf815bce5fcc28180d9301a3d76023a5Mark AndrewsCopyright (C) 2000, 2001 Internet Software Consortium.
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
7c74e180c206e6ed99e8beb820da5f399d845c3eDavid Lawrence$Id: release,v 1.46 2001/10/15 21:56:04 gson Exp $
7c74e180c206e6ed99e8beb820da5f399d845c3eDavid LawrencePreparing a bind9 release
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsHere'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
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence the web pages for the new version. If there have been only
866d106459313499d0ca7bfccb4b2d23d5e4377cDavid Lawrence minor changes, send context diffs relative to the previous
74cb99072c4b0ebd2ccafcfa284288fa760f7a1aMark Andrews release instead.
866d106459313499d0ca7bfccb4b2d23d5e4377cDavid Lawrence - Do a "cvs update" to check that all changes have been committed.
01b8bc018d83e757b0578723977b0a71e1e626f8Mark Andrews - Verify that the file "version" contains the correct version
ea31416b4fcdf23732355a8002f93f29e3b3d2dbAndreas Gustafsson number (it should have been incremented after the
866d106459313499d0ca7bfccb4b2d23d5e4377cDavid Lawrence previous release)
a5d43b72413db3edd6b36a58f9bdf2cf6ff692f2Bob Halley - Update the lib/*/api files as needed. See the libtool
a5d43b72413db3edd6b36a58f9bdf2cf6ff692f2Bob Halley info file for information about what the various numbers mean.
a5d43b72413db3edd6b36a58f9bdf2cf6ff692f2Bob Halley - If building from a release branch, check that any important
a5d43b72413db3edd6b36a58f9bdf2cf6ff692f2Bob Halley bug fixes made on the mainline since the last release have
a5d43b72413db3edd6b36a58f9bdf2cf6ff692f2Bob Halley been pulled up. You can do this by comparing the CHANGES
ccdac53c027e8964753b36c4d8c7b0e98af501c2Michael Graff files using the util/check-pullups.pl script. For example,
ccdac53c027e8964753b36c4d8c7b0e98af501c2Michael Graff running the script from a mainline tree:
a903095bf4512dae561c7f6fc7854a51bebf334aMark Andrews perl util/check-pullups.pl CHANGES ../9.2/CHANGES
ccdac53c027e8964753b36c4d8c7b0e98af501c2Michael Graff This will list all bug fixes on the mainline that are not
ccdac53c027e8964753b36c4d8c7b0e98af501c2Michael Graff on the 9.2 release branch.
3d776d762914d1b675b4fd49728ce353ccf6f77eBrian Wellington - Check that http://status.isc.org/bind9/bind9.html
ccdac53c027e8964753b36c4d8c7b0e98af501c2Michael Graff shows a clean build and test status for all supported
75a4dd0d377dca2f85cea44e28bf110314c1fe8cDavid Lawrence systems and that the tests are actually being run on the
75a4dd0d377dca2f85cea44e28bf110314c1fe8cDavid Lawrence version being released (the version can be found in the
75a4dd0d377dca2f85cea44e28bf110314c1fe8cDavid Lawrence page behind the "Source tar build" link).
75a4dd0d377dca2f85cea44e28bf110314c1fe8cDavid Lawrence - Check that running "make all_tests" in bin/tests does not
91306d962f9d147d94b82fb14edb28f8d907cae7Andreas Gustafsson produce compile errors.
91306d962f9d147d94b82fb14edb28f8d907cae7Andreas Gustafsson - Regenerate the documentation by running "make man" (mainline/9.2)
91306d962f9d147d94b82fb14edb28f8d907cae7Andreas Gustafsson or by running genhtml.sh in doc/arm (9.1 release branch)
91306d962f9d147d94b82fb14edb28f8d907cae7Andreas Gustafsson and commit it. Note that not all machines have the
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence necessary XML tools, but at least trebuchet, cuba,
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence and Scanner's machine do.
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence - Verify that the documents in doc/misc are up-to-date.
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence - Update the copyrights. According to tale:
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence Go to the root of the source tree.
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence The scripts need to be run from there; they reference the util
e893dce91279d7313a579f72caae3941f6dc5a27David Lawrence subdirectory internally.
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley $ make distclean
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley ... [I prefer to check out a fresh source tree --gson]
ce8c568e0d6106bb87069453505e09bc66754b40Andreas Gustafsson $ diff util/copyrights util/newcopyrights
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley ... examine output, particularly any files with the "?" type, and
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley ... then edit util/newcopyrights if necessary
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley $ cvs ci -m'merge_copyrights' util/copyrights
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley ... examine output, edit as necessary. mail me about anything that
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley ... the script should have been able to do itself. :-)
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley $ cvs ci -m'update_copyrights'
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley - Announce a CVS freeze if doing an alpha or beta release from
3b77946b751f39bd4db5a7d1fe48a81e6b1e7a28Bob Halley the mainline, or stop doing pullups if building from a release branch.
8e06cea14c857429ab7e7299af2dce5eeeaa5ff0Michael Graff - Run util/altbuild.sh. This is to make sure that
8e06cea14c857429ab7e7299af2dce5eeeaa5ff0Michael Graff builds using libtool, separate source/object directories, and other
3ecf3394e37dc2848a09ffc643565d454e9e6974Andreas Gustafsson obscure build options work. This script may need some hacking if run
3ecf3394e37dc2848a09ffc643565d454e9e6974Andreas Gustafsson on anything other than NetBSD. Save the output (it's big) and look
3ecf3394e37dc2848a09ffc643565d454e9e6974Andreas Gustafsson for error and warning messages.
3ecf3394e37dc2848a09ffc643565d454e9e6974Andreas Gustafsson cd $top_of_mainline_tree
b587e1d83f007ce68a9ae93097c461d8eb7aa373Mark Andrews cd $top_of_9_1_tree
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence Alteratively, you can do this after building the kit, by giving
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence the kit .tar.gz file as an argument to altbuild.sh instad of
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence - If you can (= your system is similar enough to the one Tale is using),
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence check the header files for cruft by running the command
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence [ This step is quite imperfect and should probably be skipped
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence for now -- Tale ]
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence find lib -name '*.h' -print | xargs perl util/check-includes.pl
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence - Ensure that the JPNIC patch applies cleanly:
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence If you don't have the "iconv" library, you need to get it from
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence http://clisp.cons.org/~haible/packages-libiconv.html and install it.
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence All hunks should have applied successfully with no offset or fuzz.
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence If all succeeded but some were offset or had fuzz, the patch will be
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence regenerated at the end of this stage.
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence [ Sample on netbsd ... ]
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
ae4cbb69eef32ced103fe4561e8d2031ee4c3497David Lawrence $ cd ../../.. ; : cd back to top level
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence $ ./configure
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence ... should cleanly compile
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence $ make distclean
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence $ mkdir -p /tmp/mdn/{lib,include}
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence ... should cleanly compile
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence [ Some tests will be added to bin/tests/system to validate operation. ]
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence Generate a fresh copy of the diffs:
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence while read i; do
0293ad13207aa29bd5844cdc87d085ffc009d749David Lawrence $ cvs diff -u2 configure > $patchd/patch.configure
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence $ cvs ci -ko $patchd/patch.*
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence - Add a marker line like " --- 9.0.0rc7 released ---"
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence to the CHANGES file.
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence - Tag the CVS source tree with the final tag, as in
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence "cvs rtag v9_0_0rc1 bind9" (mainline) or
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff "cvs rtag -r v9_2 v9_2_0rc7 bind9" (release branch).
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff - Build the release kit. This procedure differs
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff between the 9.0 release branch and later versions.
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff On the 9.0 release branch,
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence cd <temporary directory>
df3c4c7988b9bae7d121a8ac9ed17a23366a948dDavid Lawrence cvs export -r v9_0_0rc7 bind9
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence On the 9.[1-2] release branch or mainline, use the
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence - Build bind9 from the kit on at least one machine
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence and test it. Run it as a caching name server.
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence If you can, try resolving some IPv6 addresses and
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence doing queries over IPv6.
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence - If problems are found at this stage, fix them, move the
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence release tag up using "rtag -F", and respin the kit.
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence - Sign the distribution files with the ISC signing PGP key
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence and fix the permissions on the signature file:
4bcaefbcd3ced942139fdc830e007c6ea2b8d2feDavid Lawrence pgp -sba bind-9.2.0rc7.tar.gz -u 0x51BAB2ED
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff - Verify the PGP signature:
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff pgp bind-9.2.0rc7.tar.gz.asc bind-9.2.0rc7.tar.gz
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff (Look for the words "Good signature" in the output.)
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff - Prepare a release announcement based on the previous one.
657ce0b9d84fbd66514df53d61a087e8f1161187Michael Graff - Copy the distribution and PGP signature files to the FTP site:
641da3ca1184d9951d5cf91538524a345bf5f271Mark Andrews ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
641da3ca1184d9951d5cf91538524a345bf5f271Mark Andrews - If there is a companion binary kit for NT, sign it and release it:
641da3ca1184d9951d5cf91538524a345bf5f271Mark Andrews pgp -sba BIND$ver.zip -u 0x51BAB2ED
641da3ca1184d9951d5cf91538524a345bf5f271Mark Andrews chmod 644 BIND$ver.zip.asc
641da3ca1184d9951d5cf91538524a345bf5f271Mark Andrews ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
9fe28a624c659e380d47dbf45527637dab03b998Mark Andrews isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$ver
9fe28a624c659e380d47dbf45527637dab03b998Mark Andrews - Download using FTP (or Netscape) using the URLs in the release
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews announcement and verify the PGP signature again
9fe28a624c659e380d47dbf45527637dab03b998Mark Andrews - Increment the version in the file "version"
9fe28a624c659e380d47dbf45527637dab03b998Mark Andrews - Resume doing pullups
774c3a62d9adca187b44fe90919bb409a43a2f2aMark Andrews - Announce the release on bind-announce@isc.org