release revision 04bdb234571448ed6194e1d4048e6512f2446f1c
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark AndrewsCopyright (C) 2000 Internet Software Consortium.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews$Id: release,v 1.18 2000/12/07 00:52:30 tale Exp $
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox UserPreparing a bind9 release
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsHere's a rough outline of the steps to follow in preparing a new bind9
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Update the README file
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Send the new README file to webteam@nominum.com at least 48
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt hours prior to the planned release and ask them to prepare
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User the web pages for the new version.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Verify that the file "version" contains the correct version
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews number (it should have been incremented after the
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews previous release)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Update the lib/*/api files as needed. See the libtool
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews info file for information about what the various numbers mean.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Check that http://status.isc.org/bind9/bind9.html shows
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater a clean build and test status for all supported systems.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Check that "make all_tests" does not produce compile errors.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Make sure that the most recent version of the ARM has been
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews checked in. Look for any obvious broken links in the
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews .html files. If "fgrep .HTML *.html" produces output,
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews there is a problem.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Verify that the documents in doc/misc are up-to-date
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Update the copyrights. According to tale:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Go to the root of the source tree.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User The scripts need to be run from there; they reference the util
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User subdirectory internally.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ make distclean
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ... [I prefer to check out a fresh source tree --gson]
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews ... examine output, particularly any files with the "?" type, and
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ... then edit util/newcopyrights if necessary
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ cvs ci -m'merge_copyrights' util/copyrights
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ perl util/update_copyrights < util/copyrights
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ... examine output, edit as necessary. mail me about anything that
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ... the script should have been able to do itself. :-)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ cvs ci -m'update_copyrights'
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Stop doing pullups.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Run util/altbuild.sh (from the mainline). This is to make sure that
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User builds using libtool, separate source/object directories, and other
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User obscure build options work. This script may need some hacking if run
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User on anything other than NetBSD. Save the output (it's big) and look
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User for error and warning messages.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cd $top_of_mainline_tree
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - If you can (= your system is similar enough to the one Tale is using),
7e71f05d8643aca84914437c900cb716444507e4Tinderbox User check the header files for cruft by running the command
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User [ This step is quite imperfect and should probably be skipped
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User for now -- Tale ]
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt find lib -name '*.h' -print | xargs perl util/check-includes.pl
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt - Ensure that the JPNIC patch applies cleanly:
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews XXX This is impacted by sanitize.pl
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User All hunks should have applied successfully with no offset or fuzz.
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User Check any that did not, and regenerate the patch as appropriate.
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User the build tests.
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User [ Sample on netbsd ... ]
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $ cd ../../.. ; : cd back to top level
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $ ./configure
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews ... should cleanly compile
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $ make distclean
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ mkdir -p /tmp/mdn/{lib,include}
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ... should cleanly compile
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User [ Some tests will be added to bin/tests/system to validate operation. ]
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User Generate a fresh copy of the configure diffs, and append to the patch.
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User $ cvs diff -u2 configure >> contrib/idn/mdnkit/patch/bind9/patch.configure
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User - Add a marker line like " --- 9.0.0b3 released ---"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User to the CHANGES file.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews - Tag the CVS source tree with the final tag, as in
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User "cvs rtag v9_0_0b3 bind9" (mainline) or
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User "cvs rtag -r v9_0 v9_0_0rc1 bind9" (release branch).
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User - Build the release kit. This procedure differs
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User between the 9.0 release branch and the mainline.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User On the release branch,
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cd <temporary directory>
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cvs export -r v9_0_0rc6 bind9
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User On the mainline, use the "util/kit.sh" script.
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User - Build bind9 from the kit on at least one machine
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User and test it. Run it as a caching name server.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User If you can, try resolving some IPv6 addresses and
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User doing queries over IPv6.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - If problems are found at this stage, fix them, move the
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User release tag up using "rtag -F", and respin the kit.
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User - Take the resulting distribution files to a secure system
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt and sign them with the ISC signing PGP key:
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt pgp -sba bind-9.0.0rc5.tar.gz -u 0x51BAB2ED
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Fix the permissions on the signature file:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Verify the PGP signature:
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User pgp bind-9.0.0rc5.tar.gz.asc bind-9.0.0rc5.tar.gz
659d063f23a35d77ad5826e6556d3137672bb937Tinderbox User - Prepare a release announcement based on the previous one.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Copy the distribution and PGP signature files to the FTP site:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Download using FTP (or Netscape) using the URLs in the release
6d45011a65dfc43f476ca15c3fd9ee5227eb968fTinderbox User announcement and verify the PGP signature again
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Increment the version in the file "version"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt - Resume doing pullups
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User - Announce the release on bind-announce@isc.org