release revision a1bb4b0e4f71fb2878050905087d279cfa87b786
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter MajorCopyright (C) 2000 Internet Software Consortium.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter MajorSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major$Id: release,v 1.20 2000/12/15 00:22:52 gson Exp $
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter MajorPreparing a bind9 release
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter MajorHere's a rough outline of the steps to follow in preparing a new bind9
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Majorrelease.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Update the README file
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Send the new README file to webteam@nominum.com at least 48
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest hours prior to the planned release and ask them to prepare
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major the web pages for the new version.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Verify that the file "version" contains the correct version
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major number (it should have been incremented after the
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major previous release)
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Update the lib/*/api files as needed. See the libtool
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major info file for information about what the various numbers mean.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Check that http://status.isc.org/bind9/bind9.html shows
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major a clean build and test status for all supported systems.
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna - Check that running "make all_tests" in bin/tests does not
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna produce compile errors.
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna - Regenerate the .html files in doc/arm by running genhtml.sh
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna and check them in. Note that not all machines have the
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna necessary XML tools, but at least trebuchet and Scanner's
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna machine do.
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest - Verify that the documents in doc/misc are up-to-date.
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna - Update the copyrights. According to tale:
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest Go to the root of the source tree.
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest The scripts need to be run from there; they reference the util
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major subdirectory internally.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest $ make distclean
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ... [I prefer to check out a fresh source tree --gson]
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ perl util/merge_copyrights
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ diff util/copyrights util/newcopyrights
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ... examine output, particularly any files with the "?" type, and
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna ... then edit util/newcopyrights if necessary
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ mv util/newcopyrights util/copyrights
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest $ cvs ci -m'merge_copyrights' util/copyrights
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest $ perl util/update_copyrights < util/copyrights
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cvs diff
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ... examine output, edit as necessary. mail me about anything that
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ... the script should have been able to do itself. :-)
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cvs ci -m'update_copyrights'
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Announce a CVS freeze if doing a beta release from the mainline,
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major or stop doing pullups if building from a release branch.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Run util/altbuild.sh (from the mainline). This is to make sure that
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major builds using libtool, separate source/object directories, and other
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major obscure build options work. This script may need some hacking if run
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major on anything other than NetBSD. Save the output (it's big) and look
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major for error and warning messages.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major cd $top_of_mainline_tree
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major sh util/altbuild.sh v9_0
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - If you can (= your system is similar enough to the one Tale is using),
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major check the header files for cruft by running the command
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major [ This step is quite imperfect and should probably be skipped
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major for now -- Tale ]
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major find lib -name '*.h' -print | xargs perl util/check-includes.pl
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Ensure that the JPNIC patch applies cleanly:
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major XXX This is impacted by sanitize.pl
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ egrep Hunk patch.out
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major All hunks should have applied successfully with no offset or fuzz.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major Check any that did not, and regenerate the patch as appropriate.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major the build tests.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cd contrib/idn/mdnkit
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major [ Sample on netbsd ... ]
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ make
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cd ../../.. ; : cd back to top level
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cp configure configure.orig
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ autoconf
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ ./configure
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ make
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ... should cleanly compile
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ make distclean
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ rm -rf /tmp/mdn
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ mkdir -p /tmp/mdn/{lib,include}
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ mdn=`pwd`/contrib/idn/mdnkit
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cp -r $mdn/include/mdn /tmp/mdn/include
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
74dca04245920444925c2544c591c3da5dad607eAndrew Forrest ... should cleanly compile
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major [ Some tests will be added to bin/tests/system to validate operation. ]
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major Generate a fresh copy of the configure diffs, and append to the patch.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major $ cvs diff -u2 configure >> contrib/idn/mdnkit/patch/bind9/patch.configure
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Add a marker line like " --- 9.0.0b3 released ---"
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major to the CHANGES file.
7cf8246793803e081cbd8dd09720b1f2eed41949David Luna
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Tag the CVS source tree with the final tag, as in
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major "cvs rtag v9_0_0b3 bind9" (mainline) or
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major "cvs rtag -r v9_0 v9_0_0rc1 bind9" (release branch).
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Build the release kit. This procedure differs
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major between the 9.0 release branch and the mainline.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major On the release branch,
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major cd <temporary directory>
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major cvs export -r v9_0_0rc6 bind9
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major cd bind9
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major sh configure
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major make kit
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major On the mainline, use the "util/kit.sh" script.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Build bind9 from the kit on at least one machine
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major and test it. Run it as a caching name server.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major If you can, try resolving some IPv6 addresses and
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major doing queries over IPv6.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - If problems are found at this stage, fix them, move the
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major release tag up using "rtag -F", and respin the kit.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Take the resulting distribution files to a secure system
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major and sign them with the ISC signing PGP key:
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major pgp -sba bind-9.1.0b1.tar.gz -u 0x51BAB2ED
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Fix the permissions on the signature file:
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major chmod 644 bind-9.1.0b1.tar.gz.asc
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Verify the PGP signature:
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major pgp bind-9.1.0b1.tar.gz.asc bind-9.1.0b1.tar.gz
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Prepare a release announcement based on the previous one.
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Copy the distribution and PGP signature files to the FTP site:
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ver=9.1.0b1
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Download using FTP (or Netscape) using the URLs in the release
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major announcement and verify the PGP signature again
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Increment the version in the file "version"
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Resume doing pullups
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major - Announce the release on bind-announce@isc.org
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major
4a5f76e173fa7e8164ad9743bcdae43b1b8075caPeter Major