release revision 31f15d225d716df580dd3859908ea2449367513c
9ec65cbae2f760e485a1c54df5b19853688d5c91wroweCopyright (C) 2000, 2001 Internet Software Consortium.
e296cd58fd352dd39ca28ccb4da39969a3c0b405wroweSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe$Id: release,v 1.47 2001/10/16 21:56:31 gson Exp $
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowePreparing a bind9 release
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wroweHere's a rough outline of the steps to follow in preparing a new bind9
8cc01204a878dc5f39bba11aa279564b81b15803wrowerelease.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe - Update the README file
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Send the new README file to webteam@nominum.com at least 48
8cc01204a878dc5f39bba11aa279564b81b15803wrowe hours prior to the planned release and ask them to prepare
8cc01204a878dc5f39bba11aa279564b81b15803wrowe the web pages for the new version. If there have been only
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe minor changes, send context diffs relative to the previous
8cc01204a878dc5f39bba11aa279564b81b15803wrowe release instead.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Do a "cvs update" to check that all changes have been committed.
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe - Verify that the file "version" contains the correct version
8cc01204a878dc5f39bba11aa279564b81b15803wrowe number (it should have been incremented after the
8cc01204a878dc5f39bba11aa279564b81b15803wrowe previous release)
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
e296cd58fd352dd39ca28ccb4da39969a3c0b405wrowe - Update the lib/*/api files as needed. See the libtool
8cc01204a878dc5f39bba11aa279564b81b15803wrowe info file for information about what the various numbers mean.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - If building from a release branch, check that any important
8cc01204a878dc5f39bba11aa279564b81b15803wrowe bug fixes made on the mainline since the last release have
8cc01204a878dc5f39bba11aa279564b81b15803wrowe been pulled up. You can do this by comparing the CHANGES
8cc01204a878dc5f39bba11aa279564b81b15803wrowe files using the util/check-pullups.pl script. For example,
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe running the script from a mainline tree:
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe perl util/check-pullups.pl CHANGES ../9.2/CHANGES
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe This will list all bug fixes on the mainline that are not
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe on the 9.2 release branch.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Check that http://status.isc.org/bind9/bind9.html
8cc01204a878dc5f39bba11aa279564b81b15803wrowe shows a clean build and test status for all supported
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe systems and that the tests are actually being run on the
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe version being released (the version can be found in the
8cc01204a878dc5f39bba11aa279564b81b15803wrowe page behind the "Source tar build" link).
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
1e83c8de3aa48b316b28057d53995272baf1260cwrowe - Check that running "make all_tests" in bin/tests does not
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe produce compile errors.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Regenerate the documentation by running "make man" (mainline/9.2)
a05bf8787a5ebc31d7ee35ed47daa7bf61d7d8bdwrowe or by running genhtml.sh in doc/arm (9.1 release branch)
a05bf8787a5ebc31d7ee35ed47daa7bf61d7d8bdwrowe and commit it. Note that not all machines have the
8cc01204a878dc5f39bba11aa279564b81b15803wrowe necessary XML tools, but at least trebuchet, cuba,
8cc01204a878dc5f39bba11aa279564b81b15803wrowe and Scanner's machine do.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Verify that the documents in doc/misc are up-to-date.
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe
fd17b124e2965430b3cf53126281038f3417b120ake - Update the copyrights. According to tale:
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe Go to the root of the source tree.
3650179099116e01ae64f9eb9f81c1b4efa55f6awrowe The scripts need to be run from there; they reference the util
3650179099116e01ae64f9eb9f81c1b4efa55f6awrowe subdirectory internally.
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ make distclean
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe ... [I prefer to check out a fresh source tree --gson]
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ perl util/merge_copyrights
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ diff util/copyrights util/newcopyrights
8cc01204a878dc5f39bba11aa279564b81b15803wrowe ... examine output, particularly any files with the "?" type, and
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe ... then edit util/newcopyrights if necessary
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe $ mv util/newcopyrights util/copyrights
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ cvs ci -m'merge_copyrights' util/copyrights
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ perl util/update_copyrights < util/copyrights
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ cvs diff
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe ... examine output, edit as necessary. mail me about anything that
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe ... the script should have been able to do itself. :-)
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ cvs ci -m'update_copyrights'
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
1e83c8de3aa48b316b28057d53995272baf1260cwrowe - Announce a CVS freeze if doing an alpha or beta release from
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe the mainline, or stop doing pullups if building from a release branch.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - Run util/altbuild.sh. This is to make sure that
a05bf8787a5ebc31d7ee35ed47daa7bf61d7d8bdwrowe builds using libtool, separate source/object directories, and other
a05bf8787a5ebc31d7ee35ed47daa7bf61d7d8bdwrowe obscure build options work. This script may need some hacking if run
8cc01204a878dc5f39bba11aa279564b81b15803wrowe on anything other than NetBSD. Save the output (it's big) and look
8cc01204a878dc5f39bba11aa279564b81b15803wrowe for error and warning messages.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe cd $top_of_mainline_tree
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe sh util/altbuild.sh v9_0
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe or
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe
3650179099116e01ae64f9eb9f81c1b4efa55f6awrowe cd $top_of_9_1_tree
3650179099116e01ae64f9eb9f81c1b4efa55f6awrowe sh util/altbuild.sh v9_1
35d1320d3d0d35befecfec36f60ab300c97ed379wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe Alteratively, you can do this after building the kit, by giving
8cc01204a878dc5f39bba11aa279564b81b15803wrowe the kit .tar.gz file as an argument to altbuild.sh instad of
8cc01204a878dc5f39bba11aa279564b81b15803wrowe the CVS tag.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
8cc01204a878dc5f39bba11aa279564b81b15803wrowe - If you can (= your system is similar enough to the one Tale is using),
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe check the header files for cruft by running the command
9ec65cbae2f760e485a1c54df5b19853688d5c91wrowe [ This step is quite imperfect and should probably be skipped
10078223775df7373bee05db4423a2074b4e94f7wrowe for now -- Tale ]
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe find lib -name '*.h' -print | xargs perl util/check-includes.pl
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Ensure that the JPNIC patch applies cleanly:
10078223775df7373bee05db4423a2074b4e94f7wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe If you don't have the "iconv" library, you need to get it from
8cc01204a878dc5f39bba11aa279564b81b15803wrowe http://clisp.cons.org/~haible/packages-libiconv.html and install it.
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
10078223775df7373bee05db4423a2074b4e94f7wrowe $ sh util/sanitize_all.sh
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
8cc01204a878dc5f39bba11aa279564b81b15803wrowe $ egrep Hunk patch.out
8cc01204a878dc5f39bba11aa279564b81b15803wrowe
10078223775df7373bee05db4423a2074b4e94f7wrowe All hunks should have applied successfully with no offset or fuzz.
6001c2b751ba380362e79f6882c7c59dd66ea077wrowe If all succeeded but some were offset or had fuzz, the patch will be
6001c2b751ba380362e79f6882c7c59dd66ea077wrowe regenerated at the end of this stage.
6001c2b751ba380362e79f6882c7c59dd66ea077wrowe
0d46e76597d1856f9520ea0639f636d9e282818ewrowe $ cd contrib/idn/mdnkit
0d46e76597d1856f9520ea0639f636d9e282818ewrowe [ Sample on netbsd ... ]
0d46e76597d1856f9520ea0639f636d9e282818ewrowe $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
0d46e76597d1856f9520ea0639f636d9e282818ewrowe $ make
d11b7841115068dac9217012fd94df40010bcdc3wrowe $ cd ../../.. ; : cd back to top level
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ cp configure configure.orig
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ autoconf
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ ./configure
d11b7841115068dac9217012fd94df40010bcdc3wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ make
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe ... should cleanly compile
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ make distclean
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ rm -rf /tmp/mdn
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ mkdir -p /tmp/mdn/{lib,include}
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ mdn=`pwd`/contrib/idn/mdnkit
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
d11b7841115068dac9217012fd94df40010bcdc3wrowe $ cp -r $mdn/include/mdn /tmp/mdn/include
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe ... should cleanly compile
d11b7841115068dac9217012fd94df40010bcdc3wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe [ Some tests will be added to bin/tests/system to validate operation. ]
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe Generate a fresh copy of the diffs:
2a82c148954b3b0115f5079b6e3222348ee87401wrowe
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ patchd=$mdn/patch/bind9
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
2a82c148954b3b0115f5079b6e3222348ee87401wrowe while read i; do
2a82c148954b3b0115f5079b6e3222348ee87401wrowe diff -u2 $i.orig $i
2a82c148954b3b0115f5079b6e3222348ee87401wrowe done > $patchd/patch.most.new
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ cvs diff -u2 configure > $patchd/patch.configure
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ mv $patchd/patch.most.new $patchd
2a82c148954b3b0115f5079b6e3222348ee87401wrowe $ cvs ci -ko $patchd/patch.*
2a82c148954b3b0115f5079b6e3222348ee87401wrowe
2a82c148954b3b0115f5079b6e3222348ee87401wrowe - Add a marker line like " --- 9.0.0rc7 released ---"
2a82c148954b3b0115f5079b6e3222348ee87401wrowe to the CHANGES file.
d11b7841115068dac9217012fd94df40010bcdc3wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Tag the CVS source tree with the final tag, as in
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe "cvs rtag v9_0_0rc1 bind9" (mainline) or
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe "cvs rtag -r v9_2 v9_2_0rc7 bind9" (release branch).
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Build the release kit. This procedure differs
1e83c8de3aa48b316b28057d53995272baf1260cwrowe between the 9.0 release branch and later versions.
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe On the 9.0 release branch,
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe cd <temporary directory>
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe cvs export -r v9_0_0rc7 bind9
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe cd bind9
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe sh configure
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe make kit
769f52b55c8a1af9eee6358f46e72544bf94e6a5wrowe
1e83c8de3aa48b316b28057d53995272baf1260cwrowe On the 9.[1-2] release branch or mainline, use the
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe "util/kit.sh" script.
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Build bind9 from the kit on at least one machine
1e83c8de3aa48b316b28057d53995272baf1260cwrowe and test it. Run it as a caching name server.
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe If you can, try resolving some IPv6 addresses and
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe doing queries over IPv6.
d11b7841115068dac9217012fd94df40010bcdc3wrowe
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe - If problems are found at this stage, fix them, move the
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe release tag up using "rtag -F", and respin the kit.
769f52b55c8a1af9eee6358f46e72544bf94e6a5wrowe
1e83c8de3aa48b316b28057d53995272baf1260cwrowe - Sign the distribution files with the ISC signing PGP key
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe and fix the permissions on the signature file:
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe pgp -sba bind-9.2.0rc7.tar.gz -u 0x51BAB2ED
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe chmod 644 bind-9.2.0rc7.tar.gz.asc
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Verify the PGP signature:
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe pgp bind-9.2.0rc7.tar.gz.asc bind-9.2.0rc7.tar.gz
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe (Look for the words "Good signature" in the output.)
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe - Prepare a release announcement based on the previous one.
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe - Copy the distribution and PGP signature files to the FTP site:
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe ver=9.2.0rc7
769f52b55c8a1af9eee6358f46e72544bf94e6a5wrowe ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe - If there is a companion binary kit for NT, sign it and release it:
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe scp shell.nominum.com:/udir/mayer/BIND$ver.zip .
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe pgp -sba BIND$ver.zip -u 0x51BAB2ED
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe chmod 644 BIND$ver.zip.asc
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe pgp BIND$ver.zip.asc BIND$ver.zip
f5d85dbf1e689639bdcfae06845bcb17c2490dd9wrowe ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
769f52b55c8a1af9eee6358f46e72544bf94e6a5wrowe scp BIND$ver.zip BIND$ver.zip.asc \
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$ver
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe - Download using FTP (or Netscape) using the URLs in the release
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe announcement and verify the PGP signature again
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe
fa37f3b5860c420de057e550615a21d3a40a7a06wrowe - Increment the version in the file "version"
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Resume doing pullups
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
ff72463d40dfaec35f4fb3170a82e6e4cb40f597wrowe - Announce the release on bind-announce@isc.org
1e83c8de3aa48b316b28057d53995272baf1260cwrowe
25808b028fcfdd4d1d5d044635ae47b84be87390wrowe