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