release revision b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0
499b34cea04a46823d003d4c0520c8b03e8513cbBrian WellingtonCopyright (C) 2000, 2001 Internet Software Consortium.
816e576f77e2c46df3e3d97d65822aa8aded7c4bDavid LawrenceSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0Brian Wellington$Id: release,v 1.35 2001/05/30 23:05:12 bwelling Exp $
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonPreparing a bind9 release
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonHere's a rough outline of the steps to follow in preparing a new bind9
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson - Do a "cvs update" to check that all changes have been committed.
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Update the README file
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Send the new README file to webteam@nominum.com at least 48
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson hours prior to the planned release and ask them to prepare
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson the web pages for the new version. If there have been only
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson minor changes, send context diffs relative to the previous
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson release instead.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Verify that the file "version" contains the correct version
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson number (it should have been incremented after the
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson previous release)
77527513f94fe78413221a63fd6d383cec32bcafAndreas Gustafsson - Update the lib/*/api files as needed. See the libtool
77527513f94fe78413221a63fd6d383cec32bcafAndreas Gustafsson info file for information about what the various numbers mean.
b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0Brian Wellington - If building from a release branch, check that any important
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson bug fixes made on the mainline since the last release have
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson been pulled up. You can do this by comparing the CHANGES
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson files using the util/check-pullups.pl script. For example,
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson running the script from a mainline tree:
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson perl util/check-pullups.pl CHANGES ../9.1/CHANGES
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson This will list all bug fixes on the mainline that are not
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson on the 9.1 release branch.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence - Check that http://status.isc.org/bind9/bind9.html shows
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson a clean build and test status for all supported systems.
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson - Check that running "make all_tests" in bin/tests does not
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson produce compile errors.
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson - Regenerate the documentation by running "make man" (mainline)
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson or by running genhtml.sh in doc/arm (9.1 release branch)
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson and commit it. Note that not all machines have the
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson necessary XML tools, but at least trebuchet, cuba,
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson and Scanner's machine do.
a1bb4b0e4f71fb2878050905087d279cfa87b786Andreas Gustafsson - Verify that the documents in doc/misc are up-to-date.
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson - Update the copyrights. According to tale:
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson Go to the root of the source tree.
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson The scripts need to be run from there; they reference the util
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson subdirectory internally.
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ make distclean
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson ... [I prefer to check out a fresh source tree --gson]
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ diff util/copyrights util/newcopyrights
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... examine output, particularly any files with the "?" type, and
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... then edit util/newcopyrights if necessary
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ cvs ci -m'merge_copyrights' util/copyrights
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson $ perl util/update_copyrights < util/copyrights
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... examine output, edit as necessary. mail me about anything that
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson ... the script should have been able to do itself. :-)
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas Gustafsson $ cvs ci -m'update_copyrights'
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson - Announce a CVS freeze if doing a beta release from the mainline,
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson or stop doing pullups if building from a release branch.
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson - Run util/altbuild.sh. This is to make sure that
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson builds using libtool, separate source/object directories, and other
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson obscure build options work. This script may need some hacking if run
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson on anything other than NetBSD. Save the output (it's big) and look
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson for error and warning messages.
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson cd $top_of_mainline_tree
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson cd $top_of_9_1_tree
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence - If you can (= your system is similar enough to the one Tale is using),
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson check the header files for cruft by running the command
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ This step is quite imperfect and should probably be skipped
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence for now -- Tale ]
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson find lib -name '*.h' -print | xargs perl util/check-includes.pl
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence - Ensure that the JPNIC patch applies cleanly:
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson If you don't have the "iconv" library, you need to get it from
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson http://clisp.cons.org/~haible/packages-libiconv.html and install it.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence All hunks should have applied successfully with no offset or fuzz.
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence If all succeeded but some were offset or had fuzz, the patch will be
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence regenerated at the end of this stage.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ Sample on netbsd ... ]
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ cd ../../.. ; : cd back to top level
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence ... should cleanly compile
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ make distclean
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ mkdir -p /tmp/mdn/{lib,include}
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence ... should cleanly compile
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ Some tests will be added to bin/tests/system to validate operation. ]
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence Generate a fresh copy of the diffs:
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence while read i; do
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ cvs diff -u2 configure > $patchd/patch.configure
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ cvs ci -ko $patchd/patch.*
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson - Add a marker line like " --- 9.0.0rc1 released ---"
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson to the CHANGES file.
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Tag the CVS source tree with the final tag, as in
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson "cvs rtag v9_0_0rc1 bind9" (mainline) or
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson "cvs rtag -r v9_1 v9_1_1rc7 bind9" (release branch).
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Build the release kit. This procedure differs
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson between the 9.0 release branch and later versions.
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson On the 9.0 release branch,
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson cd <temporary directory>
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson cvs export -r v9_0_0rc7 bind9
55dce8c024d8c52c202071cae91e9c755cb6d89cAndreas Gustafsson On the 9.1 release branch or mainline, use the
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Build bind9 from the kit on at least one machine
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson and test it. Run it as a caching name server.
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson If you can, try resolving some IPv6 addresses and
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson doing queries over IPv6.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - If problems are found at this stage, fix them, move the
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson release tag up using "rtag -F", and respin the kit.
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson - Sign the distribution files with the ISC signing PGP key
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson and fix the permissions on the signature file:
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson pgp -sba bind-9.1.3rc1.tar.gz -u 0x51BAB2ED
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Verify the PGP signature:
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson pgp bind-9.1.3rc1.tar.gz.asc bind-9.1.3rc1.tar.gz
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson (Look for the words "Good signature" in the output.)
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Prepare a release announcement based on the previous one.
b976f9c60a09f4a098852d0653ad5df6842557a7Andreas Gustafsson - Copy the distribution and PGP signature files to the FTP site:
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Download using FTP (or Netscape) using the URLs in the release
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson announcement and verify the PGP signature again
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson - Increment the version in the file "version"
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Resume doing pullups
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Announce the release on bind-announce@isc.org