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