release revision 7f800a6b10b0172e36e6fef855f48109717b6a2c
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas GustafssonaCopyright (C) 2000, 2001 Internet Software Consortium.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas GustafssonSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson$Id: release,v 1.48 2001/10/23 18:44:09 gson Exp $
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas GustafssonPreparing a bind9 release
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas GustafssonHere's a rough outline of the steps to follow in preparing a new bind9
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Update the README file
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Send the new README file to webteam@nominum.com at least 48
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson hours prior to the planned release and ask them to prepare
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson the web pages for the new version. If there have been only
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson minor changes, send context diffs relative to the previous
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson release instead.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Do a "cvs update" to check that all changes have been committed.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Verify that the file "version" contains the correct version
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson number (it should have been incremented after the
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson previous release)
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Before creating a new release branch, update the lib/*/api files
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson as needed. See the libtool info file for information about what
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson the various numbers mean.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - If building from a release branch, check that any important
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson bug fixes made on the mainline since the last release have
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson been pulled up. You can do this by comparing the CHANGES
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson files using the util/check-pullups.pl script. For example,
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson running the script from a mainline tree:
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson perl util/check-pullups.pl CHANGES ../9.2/CHANGES
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson This will list all bug fixes on the mainline that are not
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson on the 9.2 release branch.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Check that http://status.isc.org/bind9/bind9.html
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson shows a clean build and test status for all supported
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson systems and that the tests are actually being run on the
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson version being released (the version can be found in the
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson page behind the "Source tar build" link).
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Check that running "make all_tests" in bin/tests does not
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson produce compile errors.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Regenerate the documentation by running "make man" (mainline/9.2)
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson or by running genhtml.sh in doc/arm (9.1 release branch)
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson and commit it. Note that not all machines have the
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson necessary XML tools, but at least trebuchet, cuba,
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson and Scanner's machine do. Commit any files that were
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Verify that the documents in doc/misc are up-to-date.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Update the copyrights. According to tale:
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson Go to the root of the source tree.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson The scripts need to be run from there; they reference the util
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson subdirectory internally.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ make distclean
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... [I prefer to check out a fresh source tree --gson]
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ diff util/copyrights util/newcopyrights
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... examine output, particularly any files with the "?" type, and
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... then edit util/newcopyrights if necessary
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cvs ci -m'merge_copyrights' util/copyrights
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ perl util/update_copyrights < util/copyrights
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... examine output, edit as necessary. mail me about anything that
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... the script should have been able to do itself. :-)
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cvs ci -m'update_copyrights'
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Announce a CVS freeze if doing an alpha or beta release from
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson the mainline, or stop doing pullups if building from a release branch.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Run util/altbuild.sh. This is to make sure that
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson builds using libtool, separate source/object directories, and other
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson obscure build options work. This script may need some hacking if run
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson on anything other than NetBSD. Save the output (it's big) and look
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson for error and warning messages.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson cd $top_of_mainline_tree
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson cd $top_of_9_1_tree
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson Alteratively, you can do this after building the kit, by giving
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson the kit .tar.gz file as an argument to altbuild.sh instad of
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - If you can (= your system is similar enough to the one Tale is using),
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson check the header files for cruft by running the command
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson [ This step is quite imperfect and should probably be skipped
e1f0415f3fc134cfc27757d7b015292bd623d9e4Brian Wellington for now -- Tale ]
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson find lib -name '*.h' -print | xargs perl util/check-includes.pl
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Ensure that the JPNIC patch applies cleanly:
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson If you don't have the "iconv" library, you need to get it from
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson http://clisp.cons.org/~haible/packages-libiconv.html and install it.
e1f0415f3fc134cfc27757d7b015292bd623d9e4Brian Wellington $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson All hunks should have applied successfully with no offset or fuzz.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson If all succeeded but some were offset or had fuzz, the patch will be
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson regenerated at the end of this stage.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson [ Sample on netbsd ... ]
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cd ../../.. ; : cd back to top level
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... should cleanly compile
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ make distclean
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ mkdir -p /tmp/mdn/{lib,include}
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cp -r $mdn/include/mdn /tmp/mdn/include
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson ... should cleanly compile
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson [ Some tests will be added to bin/tests/system to validate operation. ]
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson Generate a fresh copy of the diffs:
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson while read i; do
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson $ cvs diff -u2 configure > $patchd/patch.configure
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Add a marker line like " --- 9.0.0rc8 released ---"
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson to the CHANGES file.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Tag the CVS source tree with the final tag, as in
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson "cvs rtag v9_0_0rc1 bind9" (mainline) or
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson "cvs rtag -r v9_2 v9_2_0rc8 bind9" (release branch).
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson - Build the release kit. This procedure differs
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson between the 9.0 release branch and later versions.
c6ebabd5c3cb47ae8175abaeacbc1131f8117359Andreas Gustafsson On the 9.0 release branch,
e1f0415f3fc134cfc27757d7b015292bd623d9e4Brian Wellington cd <temporary directory>
"util/kit.sh" script.
pgp -sba bind-9.2.0rc8.tar.gz -u 0x51BAB2ED
chmod 644 bind-9.2.0rc8.tar.gz.asc
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc