release revision 1e730144b4cbb0767510f5f6adef6666bf861bbb
499b34cea04a46823d003d4c0520c8b03e8513cbBrian WellingtonCopyright (C) 2000-2002 Internet Software Consortium.
816e576f77e2c46df3e3d97d65822aa8aded7c4bDavid LawrenceSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson$Id: release,v 1.56 2003/07/22 06:03:54 marka Exp $
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonPreparing a bind9 release
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas GustafssonHere's a rough outline of the steps to follow in preparing a new bind9
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson - Update the README file
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Send the new README file to webteam@nominum.com at least 48
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson hours prior to the planned release and ask them to prepare
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson the web pages for the new version. If there have been only
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson minor changes, send context diffs relative to the previous
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson release instead.
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson - Do a "cvs update" to check that all changes have been committed.
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 - If building from a release branch, check that any important
77527513f94fe78413221a63fd6d383cec32bcafAndreas Gustafsson bug fixes made on the mainline since the last release have
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson been pulled up. You can do this by comparing the CHANGES
b3651a8e87c12ea0428eeb5cf4b304be5bcd9db0Brian Wellington 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.2/CHANGES ../9.2/EXCLUDED
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson This will list all bug fixes on the mainline that are not
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson on the 9.2 release branch.
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson - Before creating a new release branch, update the lib/*/api files
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson as needed. See the libtool info file for information about what
65dfcdc392b93f9d67684adce8b33a1d8168e67cAndreas Gustafsson the various numbers mean.
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson - Check that http://status.isc.org/bind9/bind9.html
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson shows a clean build and test status for all supported
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson systems and that the tests are actually being run on the
0e873a120279dbae16ec3773d7c67d473602b7c6Andreas Gustafsson version being released (the version can be found in the
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson page behind the "Source tar build" link).
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson - Check that running "make all_tests" in bin/tests does not
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson produce compile errors.
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson - Regenerate the documentation by running "make man" (mainline/9.2)
d075bd326e34600c036c905eea6c80f565ea951fAndreas Gustafsson or by running genhtml.sh in doc/arm (9.1 release branch)
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson and commit it. Note that not all machines have the
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson necessary XML tools, but at least trebuchet, cuba,
b976f9c60a09f4a098852d0653ad5df6842557a7Andreas Gustafsson and Scanner's machine do. Commit any files that were
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas 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.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson $ make distclean
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas 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
63404af69b0b99b8fa551e92702921f01c3bbfd7Andreas 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. :-)
72e278abc7c73059de68017eceae7d5138ee98c1Andreas Gustafsson $ cvs ci -m'update_copyrights'
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson - Announce a CVS freeze if doing an alpha or beta release from
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson the mainline, or stop doing pullups if building from a release branch.
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson - Run util/altbuild.sh. This is to make sure that
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson builds using libtool, separate source/object directories, and other
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson obscure build options work. This script may need some hacking if run
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson on anything other than NetBSD. Save the output (it's big) and look
3d4a70fe38769e42b943717256208b63fec05f32Andreas Gustafsson for error and warning messages.
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson cd $top_of_mainline_tree
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson cd $top_of_9_1_tree
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence Alteratively, you can do this after building the kit, by giving
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence the kit .tar.gz file as an argument to altbuild.sh instad of
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - If you can (= your system is similar enough to the one Tale is using),
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence check the header files for cruft by running the command
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence [ This step is quite imperfect and should probably be skipped
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson for now -- Tale ]
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence find lib -name '*.h' -print | xargs perl util/check-includes.pl
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence - Ensure that the JPNIC patch applies cleanly:
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence If you don't have the "iconv" library, you need to get it from
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence 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.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence If all succeeded but some were offset or had fuzz, the patch will be
04bdb234571448ed6194e1d4048e6512f2446f1cDavid 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 FreeBSD has giconv.
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence ./configure --with-iconv-include=/usr/local/include \
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence '--with-iconv=-L/usr/local/lib -lgiconv'
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ cd ../../.. ; : cd back to top level
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ ./configure
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence ... should cleanly compile
04bdb234571448ed6194e1d4048e6512f2446f1cDavid Lawrence $ make distclean
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ cp $idn/lib/.libs/libidnkit.so* /tmp/idn/lib
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ cp -r $idn/include/mdn $idn/include/idn /tmp/idn/include
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ ./configure --with-idn=/tmp/idn --with-iconv="-L/usr/local/lib -liconv"
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/idn/lib:/usr/lib make
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence ... should cleanly compile
1ae59f0202d4dd5f41f978804b092115c6e053eaDavid Lawrence [ Some tests will be added to bin/tests/system to validate operation. ]
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson Generate a fresh copy of the diffs:
76458ec215a57c6806afdd831b9c9a30b93344b0Andreas Gustafsson $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson while read i; do
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson $ cvs diff -u2 configure > $patchd/patch.configure
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson $ mv $patchd/patch.most.new $patchd/patch.most
20df5357b17d31a3adc4d6f7cfdd9d4f1c5addf2Andreas Gustafsson - Add a marker line like " --- 9.0.0rc10 released ---"
6f6fbed6eb4d755198a452e557eead49f215d54bAndreas Gustafsson to the CHANGES file.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson - Tag the CVS source tree with the final tag, as in
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson "cvs rtag v9_0_0rc1 bind9" (mainline) or
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson "cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
021a3183ec1db24e2b9627bdd059a121c56ab886Andreas Gustafsson - Build the release kit. This procedure differs
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson between the 9.0 release branch and later versions.
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson On the 9.0 release branch,
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson cd <temporary directory>
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson cvs export -r v9_0_0rc10 bind9
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson On the 9.[1-2] release branch or mainline, use the
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson - Build bind9 from the kit on ns-ext (phred)
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson and ns-int (rc), install it, and let it run for
f7aa8ce0b3cf7f5df618a42beecf8d5517c000acAndreas Gustafsson a day keeping an eye on it for any problems.
2357f291c53de433c39ce844d2f0abc0bccfa9fcAndreas Gustafsson gunzip <bind-$ver.tar.gz | tar xfv -
361a4334ec8ef9d678dcd6c94f96547efedb02bdAndreas Gustafsson ps -elf | grep named
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson # kill both the keep-running script and named itself
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson gunzip <bind-$ver.tar.gz | tar xfv -
36bc6a0a8312de762caf1e984efe15c8e7170d9dAndreas Gustafsson mv /usr/local/sbin/named /usr/local/sbin/named9
2d54cf04fc02db7c369592b6f91bbd1330df3387Andreas Gustafsson ps -elf | grep named
/var/named/keep-running9 rc-res1 &
/var/named/keep-running9 ns-int &
pgp -sba bind-$ver.tar.gz -u 0x51BAB2ED
chmod 644 bind-$ver.tar.gz.asc
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc