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