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