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
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn$Id: release,v 1.21 2000/12/21 17:39:17 tale Exp $
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge HallynPreparing a bind9 release
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge HallynHere's a rough outline of the steps to follow in preparing a new bind9
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallynrelease.
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn - Update the README file
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
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
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
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn - Update the lib/*/api files as needed. See the libtool
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn info file for information about what the various numbers mean.
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
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.
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
c26adb82536952e27b05d237049b938d697e8ed9Stéphane Graber - Check that running "make all_tests" in bin/tests does not
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn produce compile errors.
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
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 machine do.
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner - Verify that the documents in doc/misc are up-to-date.
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner - Update the copyrights. According to tale:
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner
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
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ make distclean
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner ... [I prefer to check out a fresh source tree --gson]
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ perl util/merge_copyrights
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ diff util/copyrights util/newcopyrights
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner ... examine output, particularly any files with the "?" type, and
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner ... then edit util/newcopyrights if necessary
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ mv util/newcopyrights util/copyrights
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ cvs ci -m'merge_copyrights' util/copyrights
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ perl util/update_copyrights < util/copyrights
569c5fe10365bb93d8773a7bd390353bcaafd3c5Christian Brauner $ cvs diff
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
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
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
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn cd $top_of_mainline_tree
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn sh util/altbuild.sh v9_0
3a5495cf2f6c1806f5a91d699448b15b510f146ePo-Hsu Lin
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 ]
3ad30ff74fcf8c00389c114ecc265be7b6764048Serge Hallyn
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber find lib -name '*.h' -print | xargs perl util/check-includes.pl
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber
061ba5d071e4c2b4bfe76c84875bc29cc5334c27Stéphane Graber - Ensure that the JPNIC patch applies cleanly:
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber XXX This is impacted by sanitize.pl
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ sh util/sanitize_all.sh
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ egrep Hunk patch.out
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
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
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ cd contrib/idn/mdnkit
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 $ make
198a3f10d2e9d28a3713abd8e63e02524240dbf6Stéphane Graber $ cd ../../.. ; : cd back to top level
198a3f10d2e9d28a3713abd8e63e02524240dbf6Stéphane Graber $ cp configure configure.orig
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ autoconf
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ ./configure
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ make
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn ... should cleanly compile
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ make distclean
fd2b7320e3562450111b5adaabcb7f6b9c8d9d13Stéphane Graber $ rm -rf /tmp/mdn
fd2b7320e3562450111b5adaabcb7f6b9c8d9d13Stéphane Graber $ mkdir -p /tmp/mdn/{lib,include}
fd2b7320e3562450111b5adaabcb7f6b9c8d9d13Stéphane Graber $ mdn=`pwd`/contrib/idn/mdnkit
fd2b7320e3562450111b5adaabcb7f6b9c8d9d13Stéphane Graber $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
fd2b7320e3562450111b5adaabcb7f6b9c8d9d13Stéphane Graber $ cp -r $mdn/include/mdn /tmp/mdn/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
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn [ Some tests will be added to bin/tests/system to validate operation. ]
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber Generate a fresh copy of the diffs:
9a64d3cf9fae39337943174fd7d680a62bade2faSerge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ patchd=$mdn/patch/bind9
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn while read i; do
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn diff -u2 $i.orig $i
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber done > $patchd/patch.most.new
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber $ cvs diff -u2 configure > $patchd/patch.configure
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ mv $patchd/patch.most.new $patchd
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn $ cvs ci -ko $patchd/patch.*
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn - Add a marker line like " --- 9.0.0b3 released ---"
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn to the CHANGES file.
79d88b03ed31a729bc0f4a0f8a8be506d25fd470Serge Hallyn
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
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
42e5c9878f0d20b3e9682ef441afed2f0228b298Stéphane Graber cd <temporary directory>
42e5c9878f0d20b3e9682ef441afed2f0228b298Stéphane Graber cvs export -r v9_0_0rc6 bind9
42e5c9878f0d20b3e9682ef441afed2f0228b298Stéphane Graber cd bind9
ef4deb7f20dea12dd4225bbcc4ab471d0454289dSerge Hallyn sh configure
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber make kit
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber On the mainline, use the "util/kit.sh" script.
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber
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
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
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber - Take the resulting distribution files to a secure system
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber and sign them with the ISC signing PGP key:
177f793ae07431b2db86b5fa1b63cd59f9a66319Serge Hallyn
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber pgp -sba bind-9.1.0b1.tar.gz -u 0x51BAB2ED
79d88b03ed31a729bc0f4a0f8a8be506d25fd470Serge Hallyn
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber - Fix the permissions on the signature file:
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber
3f458ed00479be6001b4e137b63b76c27fe7d8fdStéphane Graber chmod 644 bind-9.1.0b1.tar.gz.asc
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin - Verify the PGP signature:
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin pgp bind-9.1.0b1.tar.gz.asc bind-9.1.0b1.tar.gz
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin - Prepare a release announcement based on the previous one.
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin - Copy the distribution and PGP signature files to the FTP site:
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin ver=9.1.0b1
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
57221f67feb3b7ef23bba9a34a21640ce792ee09Stéphane Graber isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
57221f67feb3b7ef23bba9a34a21640ce792ee09Stéphane Graber
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
57221f67feb3b7ef23bba9a34a21640ce792ee09Stéphane Graber - Increment the version in the file "version"
01c05c821093dc854def146d4bab62885d8eb664Po-Hsu Lin
73d3e0903c728d5fdc4591c5d7cd157004461230Stéphane Graber - Resume doing pullups
a17d94a593b0ca096690d70a25cf3d434fbbc813Serge Hallyn
d08363afbb40a7a8f579fe1ce60e40ffeaee5959Serge Hallyn - Announce the release on bind-announce@isc.org
a17d94a593b0ca096690d70a25cf3d434fbbc813Serge Hallyn
a17d94a593b0ca096690d70a25cf3d434fbbc813Serge Hallyn